Skip to content

Commit

Permalink
SONARJAVA-2506 include JAXB framework to avoid dependency on JDK module
Browse files Browse the repository at this point in the history
  • Loading branch information
saberduck authored and benzonico committed Oct 25, 2017
1 parent f62d3b9 commit 917376d
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 2 deletions.
18 changes: 18 additions & 0 deletions java-frontend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,24 @@
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>

<!-- JAXB is used to parse pom.xml files in PomParser -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<scope>runtime</scope>
</dependency>
<!-- JAXB runtime requires javax.activation.DataSource from JAF -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ private PomParser() {
@CheckForNull
public static MavenProject parseXML(File file) {
try (FileInputStream is = new FileInputStream(file)) {
JAXBContext context = JAXBContext.newInstance(org.sonar.maven.model.maven2.ObjectFactory.class);
// it is necessary to provide classloader explicitly, otherwise Thread.contextClassLoader will be used,
// which doesn't include jar of plugin
JAXBContext context = JAXBContext.newInstance("org.sonar.maven.model.maven2", PomParser.class.getClassLoader());
XMLInputFactory factory = XMLInputFactory.newInstance();
enableLocationPropertyForIBM(factory);
XMLStreamReader reader = factory.createXMLStreamReader(is);
Expand Down
17 changes: 17 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,23 @@
<version>2.6.2</version>
<scope>compile</scope>
</dependency>

<!-- JAXB API and implementation needed for Java 9 -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
</dependencyManagement>

Expand Down
51 changes: 50 additions & 1 deletion sonar-java-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
<configuration>
<rules>
<requireFilesSize>
<maxsize>5100000</maxsize>
<maxsize>7000000</maxsize>
<minsize>4500000</minsize>
<files>
<file>${project.build.directory}/${project.build.finalName}.jar</file>
Expand Down Expand Up @@ -156,6 +156,55 @@
<include>**</include>
</includes>
</filter>
<!-- Following classes are required to be included because they are accessed reflexively inside JAXB -->
<filter>
<artifact>org.sonarsource.java:java-maven-model</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>javax.xml.bind:jaxb-api</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.glassfish.jaxb:*</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>com.sun.activation:javax.activation</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>com.sun.xml.fastinfoset:FastInfoset</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>com.sun.istack:istack-commons-runtime</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.jvnet.staxex:stax-ex</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.glassfish.jaxb:txw2</artifact>
<includes>
<include>**</include>
</includes>
</filter>
</filters>
</configuration>
</execution>
Expand Down

0 comments on commit 917376d

Please sign in to comment.