Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generated module definitions contain optional dependencies #347

Closed
tdiesler opened this issue Mar 2, 2015 · 3 comments
Closed

Generated module definitions contain optional dependencies #347

tdiesler opened this issue Mar 2, 2015 · 3 comments
Assignees
Labels
Milestone

Comments

@tdiesler
Copy link
Contributor

tdiesler commented Mar 2, 2015

The gerated wildfly modules hierarchy should not contain optional dependencies

@tdiesler tdiesler added the bug label Mar 2, 2015
@tdiesler tdiesler added this to the 2.2.0 milestone Mar 2, 2015
@jamesnetherton
Copy link
Collaborator

To start with, here's a list of optional dependencies across all wildfly-camel modules:

org/springframework/orm/main/module.xml:    <module name="javax.jdo.jdo-api" optional="true" />
org/springframework/orm/main/module.xml:    <module name="javax.persistence.persistence-api" optional="true" />
org/springframework/orm/main/module.xml:    <module name="javax.servlet.api" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.apache.ibatis.ibatis-sqlmap" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.apache.openjpa" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.eclipse.persistence.org.eclipse.persistence.core" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.eclipse.persistence.org.eclipse.persistence.jpa" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.hibernate" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.hibernate.hibernate-annotations" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.hibernate.hibernate-entitymanager" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.springframework.aop" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.springframework.context" optional="true" />
org/springframework/orm/main/module.xml:    <module name="org.springframework.spring-web" optional="true" />
org/springframework/orm/main/module.xml:    <module name="toplink.essentials.toplink-essentials" optional="true" />
org/springframework/jms/main/module.xml:    <module name="javax.resource.connector-api" optional="true" />
org/springframework/jms/main/module.xml:    <module name="javax.transaction.api" optional="true" />
org/springframework/jms/main/module.xml:    <module name="org.codehaus.jackson.jackson-databind" optional="true" />
org/springframework/jms/main/module.xml:    <module name="org.codehaus.jackson.jackson-mapper-asl" optional="true" />
org/springframework/jms/main/module.xml:    <module name="org.springframework.aop" optional="true" />
org/springframework/jms/main/module.xml:    <module name="org.springframework.spring-oxm" optional="true" />
org/springframework/beans/main/module.xml:    <module name="javax.el" optional="true" />
org/springframework/beans/main/module.xml:    <module name="javax.inject.api" optional="true" />
org/springframework/context/main/module.xml:    <module name="backport-util-concurrent" optional="true" />
org/springframework/context/main/module.xml:    <module name="javax.ejb.ejb-api" optional="true" />
org/springframework/context/main/module.xml:    <module name="javax.inject.api" optional="true" />
org/springframework/context/main/module.xml:    <module name="javax.jms.api" optional="true" />
org/springframework/context/main/module.xml:    <module name="javax.persistence.persistence-api" optional="true" />
org/springframework/context/main/module.xml:    <module name="javax.validation.api" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.apache.camel.component.script" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.aspectj.aspectjweaver" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.codehaus.groovy.groovy-all" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.hibernate.hibernate-validator" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.jruby" optional="true" />
org/springframework/context/main/module.xml:    <module name="org.opensaml" optional="true" slot="2.6.1" />
org/springframework/context/main/module.xml:    <module name="org.springframework.spring-instrument" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="com.h2database.h2" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="hsqldb" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="javax.transaction.api" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="org.apache.camel.component.quartz2" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="org.apache.derby" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="org.apache.derby.derbyclient" optional="true" />
org/springframework/jdbc/main/module.xml:    <module name="org.springframework.context" optional="true" />
org/springframework/core/main/module.xml:    <module name="net.sf.jopt-simple" optional="true" />
org/springframework/core/main/module.xml:    <module name="org.apache.log4j" optional="true" />
org/springframework/core/main/module.xml:    <module name="org.aspectj.aspectjweaver" optional="true" />
org/springframework/aop/main/module.xml:    <module name="com.jamonapi.jamon" optional="true" />
org/springframework/aop/main/module.xml:    <module name="org.apache.commons.pool" optional="true" />
org/springframework/aop/main/module.xml:    <module name="org.aspectj.aspectjweaver" optional="true" />
org/jasypt/main/module.xml:    <module name="com.ibm.icu.icu4j" optional="true" />
org/jasypt/main/module.xml:    <module name="javax.servlet.api" optional="true" />
org/fusesource/hawtbuf/main/module.xml:    <module name="org.apache.commons.logging" optional="true" />
org/opensaml/2.6.1/module.xml:    <module name="org.joda.joda-convert" optional="true" />
org/apache/activemq/main/module.xml:    <module name="com.thoughtworks.xstream" optional="true" />
org/apache/activemq/main/module.xml:    <module name="javax.annotation.api" optional="true" export="true" />
org/apache/activemq/main/module.xml:    <module name="javax.jmdns" optional="true" export="true" />
org/apache/activemq/main/module.xml:    <module name="javax.security.jacc.api" optional="true" export="true" />
org/apache/activemq/main/module.xml:    <module name="javax.transaction.api" optional="true" export="true" />
org/apache/activemq/main/module.xml:    <module name="org.apache.commons.net" optional="true" />
org/apache/activemq/main/module.xml:    <module name="org.apache.maven.maven-plugin-api" optional="true" />
org/apache/activemq/main/module.xml:    <module name="org.apache.maven.maven-project" optional="true" />
org/apache/activemq/main/module.xml:    <module name="org.apache.xalan" optional="true" />
org/apache/activemq/main/module.xml:    <module name="org.codehaus.jettison" optional="true" />
org/apache/activemq/main/module.xml:    <module name="org.springframework.beans" optional="true" />
org/apache/xbean/spring/main/module.xml:    <module name="com.thoughtworks.qdox" optional="true" />
org/apache/xbean/spring/main/module.xml:    <module name="org.springframework.spring-web" optional="true" />
org/apache/deltaspike/cdictrl/api/main/module.xml:    <module name="javax.enterprise.api" optional="true" />
org/apache/deltaspike/cdictrl/api/main/module.xml:    <module name="javax.inject.api" optional="true" />
org/apache/deltaspike/cdictrl/api/main/module.xml:    <module name="javax.interceptor.api" optional="true" />
org/apache/santuario/xmlsec/2.0.2/module.xml:    <module name="org.apache.xalan" optional="true" />
org/apache/santuario/xmlsec/2.0.2/module.xml:    <module name="org.apache.xerces" optional="true" />
org/apache/santuario/xmlsec/2.0.2/module.xml:    <module name="xml-apis" optional="true" />
org/apache/ws/security/2.0.2/module.xml:    <module name="javax.wsdl4j.api" optional="true" />
org/apache/ws/security/2.0.2/module.xml:    <module name="net.sf.ehcache" optional="true" />
org/apache/ws/security/2.0.2/module.xml:    <module name="org.apache.directory.server.apacheds-kerberos-shared" optional="true" />
org/apache/ws/security/2.0.2/module.xml:    <module name="org.bouncycastle" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="ch.qos.logback.logback-classic" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="com.hazelcast" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="net.sf.ehcache" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="org.apache.commons.commons-jexl" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="org.apache.geronimo.specs.geronimo-servlet_3.0_spec" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="org.apache.log4j" optional="true" />
org/apache/cxf/services/3.0.2/module.xml:    <module name="org.springframework.ldap.spring-ldap-core" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="asm.asm" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="com.sun.xml.fastinfoset.FastInfoset" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="javax.validation.api" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="net.java.dev.msv.msv-core" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.apache.geronimo.specs.geronimo-servlet_3.0_spec" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.apache.log4j" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.apache.xerces" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.apache.xml-resolver" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.slf4j" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.aop" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.beans" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.context" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.core" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.spring-web" optional="true" />
org/apache/cxf/3.0.2/module.xml:    <module name="org.springframework.spring-webmvc" optional="true" />
org/apache/camel/component/activemq/main/module.xml:    <module name="javax.annotation.api" optional="true" />
org/apache/camel/component/dozer/main/module.xml:    <module name="javax.xml.bind.api" optional="true" />
org/apache/camel/component/dozer/main/module.xml:    <module name="javax.xml.bind.jaxb-api" optional="true" />
org/apache/camel/component/dozer/main/module.xml:    <module name="javax.xml.bind.jsr173_api" optional="true" />
org/apache/camel/component/dozer/main/module.xml:    <module name="org.apache.xmlbeans" optional="true" />
org/apache/camel/component/dozer/main/module.xml:    <module name="org.apache.xmlbeans.xmlbeans-xpath" optional="true" />
org/apache/camel/component/hl7/main/module.xml:    <module name="javax.jms.api" optional="true" />
org/apache/camel/component/hl7/main/module.xml:    <module name="org.apache.commons.cli" optional="true" />
org/apache/camel/component/hl7/main/module.xml:    <module name="org.apache.log4j" optional="true" />
org/apache/camel/component/mqtt/main/module.xml:    <module name="asm.asm-tree" optional="true" />
org/apache/camel/component/mqtt/main/module.xml:    <module name="org.fusesource.hawtbuf" optional="true" />
com/jcraft/jsch/main/module.xml:    <module name="com.jcraft.jzlib" optional="true" />
cglib/cglib-nodep/main/module.xml:    <module name="ant" optional="true" />

@tdiesler
Copy link
Contributor Author

tdiesler commented Mar 4, 2015

IMHO, smartics should have an option to skip those. Perhaps a global default that can be overridden on a per module basis

jamesnetherton added a commit to jamesnetherton/wildfly-camel that referenced this issue Mar 4, 2015
jamesnetherton added a commit to jamesnetherton/wildfly-camel that referenced this issue Mar 4, 2015
@tdiesler
Copy link
Contributor Author

tdiesler commented Mar 5, 2015

This needs to be handled at the smartics level (see above). Otherwise, we would need to go (manually) through every module definition and add verbose metadata that excludes the optional dependencies like this

        <apply-to-dependencies skip="true">
            <include module="javax.validation.api" />
            <include module="org.apache.geronimo.specs.geronimo-servlet_3.0_spec" />
            <include module="org.springframework.context" />
            <include module="org.springframework.core" />
        </apply-to-dependencies>

Resolving this at the smartics level also enforces to have no optional dependencies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants