[jboss-jira] [JBoss JIRA] (DROOLS-355) Do not import com.sun.tools.xjc in drools-core and drools-compiler to fix drools on Karaff/Fuse and/or Java 9

Geoffrey De Smet (JIRA) issues at jboss.org
Fri Jul 15 09:23:00 EDT 2016


    [ https://issues.jboss.org/browse/DROOLS-355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266265#comment-13266265 ] 

Geoffrey De Smet commented on DROOLS-355:
-----------------------------------------

Some notes:

- Java 9 without the use of module-info.java might not crash on the com.sun import, because it's not coming from the JDK but from a normal dependency. In such a case, a com.sun import seems to be ok (*)
- Java 9 with the use of a module-info.java should be tested. (*)
- According to the maven metadata, the sun groupId dependency got changed to a glassfish groupId dependency. See http://mvnrepository.com/search?q=xjc and http://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-xjc
- (*) Sun is dead. Long term the package name com.sun.bind is unsustainable. We should not need it in our public API like we do now...


> Do not import com.sun.tools.xjc in drools-core and drools-compiler to fix drools on Karaff/Fuse and/or Java 9
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-355
>                 URL: https://issues.jboss.org/browse/DROOLS-355
>             Project: Drools
>          Issue Type: Task
>    Affects Versions: 6.0.0.Final
>            Reporter: Geoffrey De Smet
>            Assignee: Petr Široký
>            Priority: Blocker
>
> By importing com.sun.tools.xjc, 3 problems arise:
> * OSGi and Karaf trip over it.
> {code}
> [WARNING] No export found to match com.sun.tools.xjc (imported by mvn:org.drools/drools-core/6.0.0.Final)
> {code}
> * JDK 9 will break any java app that uses com.sun.* classes. See Mark Reinhold's Jigsaw presentation at devoxxBE 2013.
> * IBM JDK's etc don't have com.sun.* classes. Why don't they trip over this?
> Why do we have those imports in the first place? Looks like code for old JAXB code - which is hopefully stale now.
> Where do we use it?
> {code}
> Targets
>     String 'com.sun.tools.xjc'
> Found usages  (38 usages found)
>     drools-compiler  (7 usages found)
>         /home/gdesmet/projects/jboss/droolsjbpm/drools/drools-compiler  (1 usage found)
>             pom.xml  (1 usage found)
>                 (246: 15) com.sun.tools.xjc.*;resolution:=optional,
>         org.drools.compiler.builder.impl  (1 usage found)
>             KnowledgeBuilderFactoryServiceImpl.java  (1 usage found)
>                 (18: 8) import com.sun.tools.xjc.Options;
>         org.drools.compiler.runtime.pipeline.impl  (5 usages found)
>             DroolsJaxbHelperProviderImpl.java  (5 usages found)
>                 (77: 8) import com.sun.tools.xjc.BadCommandLineException;
>                 (78: 8) import com.sun.tools.xjc.ErrorReceiver;
>                 (79: 8) import com.sun.tools.xjc.ModelLoader;
>                 (80: 8) import com.sun.tools.xjc.Options;
>                 (81: 8) import com.sun.tools.xjc.model.Model;
>     drools-core  (2 usages found)
>         org.drools.core.builder.conf.impl  (2 usages found)
>             JaxbConfigurationImpl.java  (2 usages found)
>                 (28: 8) import com.sun.tools.xjc.Language;
>                 (34: 8) import com.sun.tools.xjc.Options;
>     kie-internal  (6 usages found)
>         /home/gdesmet/projects/jboss/droolsjbpm/droolsjbpm-knowledge/kie-internal  (1 usage found)
>             pom.xml  (1 usage found)
>                 (27: 15) com.sun.tools.xjc;resolution:=optional,
>         org.kie.internal.builder  (3 usages found)
>             JaxbConfiguration.java  (1 usage found)
>                 (23: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderFactory.java  (1 usage found)
>                 (24: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderFactoryService.java  (1 usage found)
>                 (24: 8) import com.sun.tools.xjc.Options;
>         org.kie.internal.builder.help  (2 usages found)
>             DroolsJaxbHelperProvider.java  (1 usage found)
>                 (29: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderHelper.java  (1 usage found)
>                 (30: 8) import com.sun.tools.xjc.Options;
>     knowledge-api  (8 usages found)
>         org.drools.builder  (3 usages found)
>             JaxbConfiguration.java  (1 usage found)
>                 (21: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderFactory.java  (1 usage found)
>                 (24: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderFactoryService.java  (1 usage found)
>                 (24: 8) import com.sun.tools.xjc.Options;
>         org.drools.builder.help  (3 usages found)
>             DroolsJaxbHelperProvider.java  (1 usage found)
>                 (29: 8) import com.sun.tools.xjc.Options;
>             KnowledgeBuilderHelper.java  (2 usages found)
>                 (32: 8) import com.sun.tools.xjc.Language;
>                 (33: 8) import com.sun.tools.xjc.Options;
>         org.drools.impl  (1 usage found)
>             KnowledgeBuilderFactoryServiceImpl.java  (1 usage found)
>                 (16: 8) import com.sun.tools.xjc.Options;
>         org.drools.impl.adapters  (1 usage found)
>             JaxbConfigurationAdapter.java  (1 usage found)
>                 (3: 8) import com.sun.tools.xjc.Options;
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the jboss-jira mailing list