Build on Java 10; modification to public API requires major version bump
diff --git a/ant/pom.xml b/ant/pom.xml index 247b51f..4407ec4 100644 --- a/ant/pom.xml +++ b/ant/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
diff --git a/build-tools/pom.xml b/build-tools/pom.xml index f856c89..03ac52f 100644 --- a/build-tools/pom.xml +++ b/build-tools/pom.xml
@@ -21,7 +21,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-base</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>commons-weaver-build-tools</artifactId>
diff --git a/dist/pom.xml b/dist/pom.xml index 32b5cb5..2adc395 100644 --- a/dist/pom.xml +++ b/dist/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
diff --git a/maven-plugin/pom.xml b/maven-plugin/pom.xml index 2548342..4ddf85d 100644 --- a/maven-plugin/pom.xml +++ b/maven-plugin/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
diff --git a/modules/normalizer/pom.xml b/modules/normalizer/pom.xml index 9d5378e..fbf6403 100644 --- a/modules/normalizer/pom.xml +++ b/modules/normalizer/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-modules-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>commons-weaver-normalizer</artifactId> <name>Apache Commons Weaver Normalizer</name> @@ -206,9 +206,9 @@ <version>${ant.version}</version> </dependency> <dependency> - <groupId>org.eclipse.jdt.core.compiler</groupId> + <groupId>org.eclipse.jdt</groupId> <artifactId>ecj</artifactId> - <version>4.4.2</version> + <version>3.14.0</version> </dependency> </dependencies> </plugin>
diff --git a/modules/normalizer/src/main/java/org/apache/commons/weaver/normalizer/Normalizer.java b/modules/normalizer/src/main/java/org/apache/commons/weaver/normalizer/Normalizer.java index 6d12d42..1bc29fd 100644 --- a/modules/normalizer/src/main/java/org/apache/commons/weaver/normalizer/Normalizer.java +++ b/modules/normalizer/src/main/java/org/apache/commons/weaver/normalizer/Normalizer.java
@@ -32,8 +32,6 @@ import java.util.Set; import java.util.stream.Stream; -import javax.activation.DataSource; - import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.Conversion; import org.apache.commons.lang3.Validate; @@ -275,7 +273,7 @@ super.visitEnd(); final byte[] bytecode = ((ClassWriter) cv).toByteArray(); - final DataSource classfile = env.getClassfile(className); + final WeaveEnvironment.Resource classfile = env.getClassfile(className); env.debug("Writing class %s to %s", className, classfile.getName()); try (OutputStream outputStream = classfile.getOutputStream()) { outputStream.write(bytecode);
diff --git a/modules/pom.xml b/modules/pom.xml index 127682d..ce924dd 100644 --- a/modules/pom.xml +++ b/modules/pom.xml
@@ -22,7 +22,7 @@ <parent> <artifactId>commons-weaver-parent</artifactId> <groupId>org.apache.commons</groupId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
diff --git a/modules/privilizer/api/pom.xml b/modules/privilizer/api/pom.xml index b694280..5c6d26a 100644 --- a/modules/privilizer/api/pom.xml +++ b/modules/privilizer/api/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-privilizer-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>commons-weaver-privilizer-api</artifactId>
diff --git a/modules/privilizer/pom.xml b/modules/privilizer/pom.xml index af7aedc..279ad8c 100644 --- a/modules/privilizer/pom.xml +++ b/modules/privilizer/pom.xml
@@ -23,7 +23,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-modules-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>commons-weaver-privilizer-parent</artifactId>
diff --git a/modules/privilizer/weaver/pom.xml b/modules/privilizer/weaver/pom.xml index 1119dc5..e9003a4 100644 --- a/modules/privilizer/weaver/pom.xml +++ b/modules/privilizer/weaver/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-privilizer-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>commons-weaver-privilizer</artifactId>
diff --git a/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java b/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java index 218cea3..0799bb0 100644 --- a/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java +++ b/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java
@@ -26,8 +26,6 @@ import java.util.HashSet; import java.util.Set; -import javax.activation.DataSource; - import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; @@ -109,7 +107,7 @@ if (verify) { verify(className, bytecode); } - final DataSource classfile = env.getClassfile(className); + final WeaveEnvironment.Resource classfile = env.getClassfile(className); env.debug("Writing class %s to resource %s", className, classfile.getName()); try (OutputStream outputStream = classfile.getOutputStream()) { outputStream.write(bytecode);
diff --git a/parent/pom.xml b/parent/pom.xml index 6acbe0d..e5f276c 100755 --- a/parent/pom.xml +++ b/parent/pom.xml
@@ -23,7 +23,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-base</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>commons-weaver-parent</artifactId>
diff --git a/pom.xml b/pom.xml index 16d2759..6d4224c 100644 --- a/pom.xml +++ b/pom.xml
@@ -27,7 +27,7 @@ </parent> <artifactId>commons-weaver-base</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Apache Commons Weaver</name> @@ -58,6 +58,8 @@ <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${commons.site.path}</commons.scmPubUrl> <commons.japicmp.version>0.11.1</commons.japicmp.version> + <!-- remove after 2.0 release: --> + <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications> <!-- most Java-related items are defined in parent/pom.xml; define these here for the animal-sniffer config of commons-parent: --> @@ -362,6 +364,35 @@ <profiles> <profile> + <id>java10plus</id> + <activation> + <jdk>[10,)</jdk> + </activation> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>com.github.siom79.japicmp</groupId> + <artifactId>japicmp-maven-plugin</artifactId> + <dependencies> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <version>2.3.0.1</version> + </dependency> + <!-- needed temporarily to compare against the 1.x API --> + <dependency> + <groupId>javax.activation</groupId> + <artifactId>javax.activation-api</artifactId> + <version>1.2.0</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + <profile> <id>release</id> <build> <plugins>
diff --git a/processor/pom.xml b/processor/pom.xml index e68d99f..f3b7413 100644 --- a/processor/pom.xml +++ b/processor/pom.xml
@@ -22,7 +22,7 @@ <parent> <groupId>org.apache.commons</groupId> <artifactId>commons-weaver-parent</artifactId> - <version>1.4-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java b/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java index 955f2d4..5785dff 100644 --- a/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java +++ b/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java
@@ -35,7 +35,10 @@ * Encapsulates the environment in which a {@link Weaver} or {@link Cleaner} must operate. */ public abstract class WeaveEnvironment { - private class Resource implements DataSource { + /** + * Represents a {@link WeaveEnvironment} resource. + */ + public class Resource { private final String name; Resource(final String name) { @@ -46,7 +49,6 @@ * Get the content type, always "application/octet-stream". * @return {@link String} */ - @Override public String getContentType() { return CONTENT_TYPE; } @@ -54,7 +56,6 @@ /** * Get an {@link InputStream} for reading this {@link Resource}. */ - @Override public InputStream getInputStream() throws IOException { return classLoader.getResourceAsStream(name); } @@ -63,7 +64,6 @@ * Get the name of this {@link Resource}. * @return {@link String} */ - @Override public String getName() { return name; } @@ -72,7 +72,6 @@ * Get an {@link OutputStream} for writing to this {@link Resource}. * @return {@link OutputStream} */ - @Override public OutputStream getOutputStream() throws IOException { return WeaveEnvironment.this.getOutputStream(name); } @@ -177,7 +176,7 @@ * @param cls type * @return {@link DataSource} */ - public final DataSource getClassfile(final Class<?> cls) { + public final Resource getClassfile(final Class<?> cls) { return getClassfile(cls.getName()); } @@ -186,7 +185,7 @@ * @param classname of type * @return {@link DataSource} */ - public final DataSource getClassfile(final String classname) { + public final Resource getClassfile(final String classname) { return getResource(getResourceName(classname)); } @@ -195,7 +194,7 @@ * @param name of resource * @return {@link DataSource} */ - public final DataSource getResource(final String name) { + public final Resource getResource(final String name) { return new Resource(name); }