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);
}