summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2020-03-24 22:02:21 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-03-24 22:02:21 +0000
commitdd43a30ffdcee878b661f373ea1d680577ec5ec6 (patch)
treeb7ce1a9db7dd24bb8107be96f40cc5d52b6fd9f5
parentd58e63f351ac75bb778abcad5a5ed1cc5a946585 (diff)
parent4fc5d4ca06f832204301e8e20ffa7ab313bdd7f7 (diff)
downloadplatform_external_doclava-androidx-core-core-role-release.tar.gz
platform_external_doclava-androidx-core-core-role-release.tar.bz2
platform_external_doclava-androidx-core-core-role-release.zip
Merge "Snap for 6328954 from 17bfa62ff68222b7333f74238caa73b908ceb2a0 to androidx-core-core-role-release" into androidx-core-core-role-releaseandroidx-core-core-role-release
-rw-r--r--build.gradle19
-rw-r--r--res/assets/templates-sdk/compatchanges.cs23
-rw-r--r--src/com/google/doclava/CompatInfo.java42
3 files changed, 65 insertions, 19 deletions
diff --git a/build.gradle b/build.gradle
index 3096e0e..7cd0f09 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,13 +22,6 @@ apply plugin: 'maven'
group = 'com.android'
version = '1.0.6'
-def currentJvmVersion = org.gradle.api.JavaVersion.current()
-if (currentJvmVersion.getMajorVersion() != "8") {
- throw new Exception("Unsupported java version '" + currentJvmVersion.toString() + "'. Please install java 8.\n" +
-"\n" +
-"If you have already installed java 8, you can instruct Gradle to use it by setting the environment variable JAVA_HOME equal to its file path.")
-}
-
/*
* With the build server you are given two env variables:
* 1. The OUT_DIR is a temporary directory you can use to put things during the build.
@@ -85,7 +78,17 @@ dependencies {
testCompile 'junit:junit:4.12'
// tools.jar required for com.sun.javadoc
- compile files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs())
+ def currentJvmVersion = org.gradle.api.JavaVersion.current()
+ def toolsJar;
+ if (currentJvmVersion.getMajorVersion() == "8") {
+ toolsJar = ((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()
+ } else if (System.env.JAVA_TOOLS_JAR != null) {
+ toolsJar = System.env.JAVA_TOOLS_JAR
+ } else {
+ throw new Exception("If you are not using Java 8, JAVA_TOOLS_JAR env variable " +
+ "needs to be set to build Doclava")
+ }
+ compile files(toolsJar)
}
sourceSets {
diff --git a/res/assets/templates-sdk/compatchanges.cs b/res/assets/templates-sdk/compatchanges.cs
index bcb0def..001b937 100644
--- a/res/assets/templates-sdk/compatchanges.cs
+++ b/res/assets/templates-sdk/compatchanges.cs
@@ -16,13 +16,22 @@
<?cs each:change=change ?>
<h3 class="api-name" id="<?cs var:change.name ?>"><?cs var:change.name ?></h3>
<div>Value: <?cs var:change.id ?></div>
- <!-- TODO: This will do the wrong thing for disabled changes; need to plumb through the
- disabled flag -->
- <div>Enabled for <?cs if:change.enableAfterTargetSdk ?>
- apps with a <code>targetSdkVersion</code> of greater than <?cs var:change.enableAfterTargetSdk ?>.
- <?cs else ?>
- all apps.
- <?cs /if ?>
+ <div>
+ <?cs if:change.loggingOnly ?>
+ Used for logging only.
+ <?cs else ?>
+ <?cs if:change.disabled ?>
+ Disabled for all apps.
+ <?cs else ?>
+ Enabled for
+ <?cs if:change.enableAfterTargetSdk ?>
+ apps with a <code>targetSdkVersion</code> of greater than
+ <?cs var:change.enableAfterTargetSdk ?>.
+ <?cs else ?>
+ all apps.
+ <?cs /if ?>
+ <?cs /if ?>
+ <?cs /if ?>
</div>
<?cs call:description(change) ?>
diff --git a/src/com/google/doclava/CompatInfo.java b/src/com/google/doclava/CompatInfo.java
index 5747d93..167f6ab 100644
--- a/src/com/google/doclava/CompatInfo.java
+++ b/src/com/google/doclava/CompatInfo.java
@@ -42,16 +42,22 @@ public class CompatInfo {
public final String definedInClass;
public final String sourceFile;
public final int sourceLine;
+ public final boolean disabled;
+ public final boolean loggingOnly;
public final int enableAfterTargetSdk;
+
CompatChange(String name, long id, String description, String definedInClass,
- String sourceFile, int sourceLine, int enableAfterTargetSdk) {
+ String sourceFile, int sourceLine, boolean disabled, boolean loggingOnly,
+ int enableAfterTargetSdk) {
this.name = name;
this.id = id;
this.description = description;
this.definedInClass = definedInClass;
this.sourceFile = sourceFile;
this.sourceLine = sourceLine;
+ this.disabled = disabled;
+ this.loggingOnly = loggingOnly;
this.enableAfterTargetSdk = enableAfterTargetSdk;
}
@@ -62,12 +68,14 @@ public class CompatInfo {
private String mDefinedInClass;
private String mSourceFile;
private int mSourceLine;
+ private boolean mDisabled;
+ private boolean mLoggingOnly;
private int mEnableAfterTargetSdk;
CompatChange build() {
return new CompatChange(
mName, mId, mDescription, mDefinedInClass, mSourceFile, mSourceLine,
- mEnableAfterTargetSdk);
+ mDisabled, mLoggingOnly, mEnableAfterTargetSdk);
}
Builder name(String name) {
@@ -106,6 +114,24 @@ public class CompatInfo {
return this;
}
+ boolean parseBool(String value) {
+ if (value == null) {
+ return false;
+ }
+ boolean result = Boolean.parseBoolean(value);
+ return result;
+ }
+
+ Builder disabled(String disabled) {
+ mDisabled = parseBool(disabled);
+ return this;
+ }
+
+ Builder loggingOnly(String loggingOnly) {
+ mLoggingOnly = parseBool(loggingOnly);
+ return this;
+ }
+
Builder enableAfterTargetSdk(String enableAfter) throws SAXException {
if (enableAfter == null) {
mEnableAfterTargetSdk = 0;
@@ -138,8 +164,10 @@ public class CompatInfo {
throw new SAXException("<compat-change> id is not a valid long", nfe);
}
mCurrentChange.name(attributes.getValue("name"))
- .description(attributes.getValue("description"))
- .enableAfterTargetSdk(attributes.getValue("enableAfterTargetSdk"));
+ .description(attributes.getValue("description"))
+ .enableAfterTargetSdk(attributes.getValue("enableAfterTargetSdk"))
+ .disabled(attributes.getValue("disabled"))
+ .loggingOnly(attributes.getValue("loggingOnly"));
} else if (qName.equals("meta-data")) {
if (mCurrentChange == null) {
@@ -215,6 +243,12 @@ public class CompatInfo {
hdf.setValue(path + ".enableAfterTargetSdk",
Integer.toString(change.enableAfterTargetSdk));
}
+ if (change.loggingOnly) {
+ hdf.setValue(path + ".loggingOnly", Boolean.toString(true));
+ }
+ if (change.disabled) {
+ hdf.setValue(path + ".disabled", Boolean.toString(true));
+ }
TagInfo.makeHDF(hdf, path + ".descr", comment.tags());
}
}