diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 19659f2d79..f81c1ad8b1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -27,7 +27,7 @@ jobs:
build:
strategy:
matrix:
- java-version: [8, 11]
+ java-version: [8, 11, 17]
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
diff --git a/tez-tools/pom.xml b/tez-tools/pom.xml
index 8811d80687..8640957497 100644
--- a/tez-tools/pom.xml
+++ b/tez-tools/pom.xml
@@ -50,6 +50,25 @@
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,6 +21,15 @@ import java.io.IOException; import java.util.Map; +import com.sun.javadoc.AnnotationDesc; +import com.sun.javadoc.AnnotationDesc.ElementValuePair; +import com.sun.javadoc.ClassDoc; +import com.sun.javadoc.DocErrorReporter; +import com.sun.javadoc.FieldDoc; +import com.sun.javadoc.LanguageVersion; +import com.sun.javadoc.RootDoc; +import com.sun.tools.doclets.standard.Standard; + import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceStability.Evolving; import org.apache.hadoop.classification.InterfaceStability.Unstable; @@ -31,21 +40,13 @@ import org.apache.tez.tools.javadoc.util.HtmlWriter; import org.apache.tez.tools.javadoc.util.XmlWriter; -import com.sun.javadoc.AnnotationDesc; -import com.sun.javadoc.AnnotationDesc.ElementValuePair; -import com.sun.javadoc.ClassDoc; -import com.sun.javadoc.DocErrorReporter; -import com.sun.javadoc.FieldDoc; -import com.sun.javadoc.LanguageVersion; -import com.sun.javadoc.RootDoc; -import com.sun.tools.doclets.standard.Standard; - public final class ConfigStandardDoclet { private static final String DEBUG_SWITCH = "-debug"; private static boolean debugMode = false; - private ConfigStandardDoclet() {} + private ConfigStandardDoclet() { + } public static LanguageVersion languageVersion() { return LanguageVersion.JAVA_1_5; @@ -144,16 +145,16 @@ private static void processDoc(ClassDoc doc) { + ", name=" + name + ", field=" + field.name() + ", val=" + field.constantValueExpression()); - configProperty.defaultValue = field.constantValueExpression(); + configProperty.setDefaultValue(field.constantValueExpression()); } else { - configProperty.defaultValue = field.constantValue().toString(); + configProperty.setDefaultValue(field.constantValue().toString()); } - configProperty.inferredType = field.type().simpleTypeName(); + configProperty.setInferredType(field.type().simpleTypeName()); - if (name.equals("TEZ_AM_STAGING_DIR") && configProperty.defaultValue != null) { - String defaultValue = configProperty.defaultValue; + if (name.equals("TEZ_AM_STAGING_DIR") && configProperty.getDefaultValue() != null) { + String defaultValue = configProperty.getDefaultValue(); defaultValue = defaultValue.replace(System.getProperty("user.name"), "${user.name}"); - configProperty.defaultValue = defaultValue; + configProperty.setDefaultValue(defaultValue); } continue; @@ -164,7 +165,7 @@ private static void processDoc(ClassDoc doc) { configProperties.put(name, new ConfigProperty()); } ConfigProperty configProperty = configProperties.get(name); - configProperty.propertyName = field.constantValue().toString(); + configProperty.setPropertyName(field.constantValue().toString()); AnnotationDesc[] annotationDescs = field.annotations(); @@ -172,53 +173,49 @@ private static void processDoc(ClassDoc doc) { if (annotationDesc.annotationType().qualifiedTypeName().equals( Private.class.getCanonicalName())) { - configProperty.isPrivate = true; + configProperty.setPrivate(true); } if (annotationDesc.annotationType().qualifiedTypeName().equals( Unstable.class.getCanonicalName())) { - configProperty.isUnstable = true; + configProperty.setUnstable(true); } if (annotationDesc.annotationType().qualifiedTypeName().equals( Evolving.class.getCanonicalName())) { - configProperty.isEvolving = true; + configProperty.setEvolving(true); } if (annotationDesc.annotationType().qualifiedTypeName().equals( ConfigurationProperty.class.getCanonicalName())) { - configProperty.isValidConfigProp = true; + configProperty.setValidConfigProp(true); for (ElementValuePair element : annotationDesc.elementValues()) { if (element.element().name().equals("type")) { - configProperty.type = stripQuotes(element.value().toString()); + configProperty.setType(stripQuotes(element.value().toString())); } else { logMessage("Unhandled annotation property: " + element.element().name()); } } } - } - - configProperty.description = field.commentText(); - } - - HtmlWriter writer = new HtmlWriter(); - try { - writer.write(config); - } catch (IOException e) { - throw new RuntimeException(e); - } + HtmlWriter writer = new HtmlWriter(); + try { + writer.write(config); + } catch (IOException e) { + throw new RuntimeException(e); + } - XmlWriter xmlWriter = new XmlWriter(); - try { - xmlWriter.write(config); - } catch (IOException e) { - throw new RuntimeException(e); + XmlWriter xmlWriter = new XmlWriter(); + try { + xmlWriter.write(config); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } - } private static String stripQuotes(String s) { - if (s.charAt(0) == '"' && s.charAt(s.length()-1) == '"') { - return s.substring(1, s.length()-1); + if (s.charAt(0) == '"' && s.charAt(s.length() - 1) == '"') { + return s.substring(1, s.length() - 1); } return s; } diff --git a/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/doclet/package-info.java b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/doclet/package-info.java new file mode 100644 index 0000000000..190ae4622e --- /dev/null +++ b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/doclet/package-info.java @@ -0,0 +1,22 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Private +package org.apache.tez.tools.javadoc.doclet; + +import org.apache.hadoop.classification.InterfaceAudience.Private; \ No newline at end of file diff --git a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/Config.java b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/Config.java similarity index 95% rename from tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/Config.java rename to tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/Config.java index 604d48ac5e..834c3ab1c2 100644 --- a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/Config.java +++ b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/Config.java @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -36,5 +36,4 @@ public Config(String configName, String templateName) { public Config() { this(null, null); } - } diff --git a/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java new file mode 100644 index 0000000000..4b4e9a7d53 --- /dev/null +++ b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java @@ -0,0 +1,125 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tez.tools.javadoc.model; + +public class ConfigProperty { + + private String propertyName; + private String defaultValue; + private String description; + private String type = "string"; + private boolean isPrivate = false; + private boolean isUnstable = false; + private boolean isEvolving = false; + private boolean isValidConfigProp = false; + private String[] validValues; + private String inferredType; + + public String getPropertyName() { + return propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public String getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public boolean isPrivate() { + return isPrivate; + } + + public void setPrivate(boolean aPrivate) { + isPrivate = aPrivate; + } + + public boolean isUnstable() { + return isUnstable; + } + + public void setUnstable(boolean unstable) { + isUnstable = unstable; + } + + public boolean isEvolving() { + return isEvolving; + } + + public void setEvolving(boolean evolving) { + isEvolving = evolving; + } + + public boolean isValidConfigProp() { + return isValidConfigProp; + } + + public void setValidConfigProp(boolean validConfigProp) { + isValidConfigProp = validConfigProp; + } + + public String[] getValidValues() { + return validValues; + } + + public void setValidValues(String[] validValues) { + this.validValues = validValues; + } + + public String getInferredType() { + return inferredType; + } + + public void setInferredType(String inferredType) { + this.inferredType = inferredType; + } + + @Override + public String toString() { + return "name=" + getPropertyName() + + ", defaultValue=" + getDefaultValue() + + ", description=" + getDescription() + + ", type=" + getType() + + ", inferredType=" + getInferredType() + + ", private=" + isPrivate() + + ", validValues=" + (getValidValues() == null ? "null" : getValidValues()) + + ", isConfigProp=" + isValidConfigProp(); + } +} diff --git a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/package-info.java similarity index 52% rename from tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java rename to tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/package-info.java index 89490c4a51..76acd05258 100644 --- a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/model/ConfigProperty.java +++ b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/model/package-info.java @@ -16,32 +16,7 @@ * limitations under the License. */ +@Private package org.apache.tez.tools.javadoc.model; -public class ConfigProperty { - - public String propertyName; - public String defaultValue; - public String description; - public String type = "string"; - public boolean isPrivate = false; - public boolean isUnstable = false; - public boolean isEvolving = false; - public boolean isValidConfigProp = false; - public String[] validValues; - public String inferredType; - - @Override - public String toString() { - return "name=" + propertyName - + ", defaultValue=" + defaultValue - + ", description=" + description - + ", type=" + type - + ", inferredType=" + inferredType - + ", private=" + isPrivate - + ", validValues=" + (validValues == null ? "null" : validValues) - + ", isConfigProp=" + isValidConfigProp; - } -} - - +import org.apache.hadoop.classification.InterfaceAudience.Private; \ No newline at end of file diff --git a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java similarity index 81% rename from tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java rename to tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java index 4b531e87e5..8723076de6 100644 --- a/tez-tools/tez-javadoc-tools/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java +++ b/tez-tools/tez-javadoc-tools-base-jdk8/src/main/java/org/apache/tez/tools/javadoc/util/HtmlWriter.java @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,13 +19,11 @@ package org.apache.tez.tools.javadoc.util; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; -import org.apache.tez.dag.api.TezException; import org.apache.tez.tools.javadoc.model.Config; import org.apache.tez.tools.javadoc.model.ConfigProperty; @@ -52,7 +50,7 @@ public void write(Config config) throws IOException { out.println("
"); out.println(""); - out.println("" + configProperty.propertyName + " | "); - out.println("" + configProperty.defaultValue + " | "); - out.println("" + configProperty.description + " | "); - out.println("" + configProperty.type + " | "); + out.println("" + configProperty.getPropertyName() + " | "); + out.println("" + configProperty.getDefaultValue() + " | "); + out.println("" + configProperty.getDescription() + " | "); + out.println("" + configProperty.getType() + " | "); // Re-enable after adding values // out.println("" + configProperty.validValues + " | "); - out.println("" + configProperty.isPrivate + " | "); - out.println("" + configProperty.isEvolving + " | "); - out.println("" + configProperty.isUnstable + " | "); + out.println( + "" + configProperty.isPrivate() + " | "); + out.println( + "" + + configProperty.isEvolving() + " | "); + out.println( + "" + + configProperty.isUnstable() + " | "); out.println("