[jira] (MEAR-167) Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
[ https://jira.codehaus.org/browse/MEAR-167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Scholte closed MEAR-167. --- Resolution: Fixed Fix Version/s: 2.9 Assignee: Robert Scholte Fixed in [r1542525|http://svn.apache.org/r1542525] Thanks for the example! Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE -- Key: MEAR-167 URL: https://jira.codehaus.org/browse/MEAR-167 Project: Maven Ear Plugin Issue Type: Bug Affects Versions: 2.8 Reporter: Anton Shaykin Assignee: Robert Scholte Fix For: 2.9 Attachments: example.zip When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure {noformat} . |-root |-app |--business |---service |--ejb |---service {noformat} In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: {code:xml} build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build {code} When I run {{maven-ear-plugin:ear}} goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): {code} workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); {code} So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-167) Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
[ https://jira.codehaus.org/browse/MEAR-167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=335774#comment-335774 ] Anton Shaykin commented on MEAR-167: @Robert Scholte, You're welcome. Thanks for the fix! When could we expect the new release of maven-ear-plugin? Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE -- Key: MEAR-167 URL: https://jira.codehaus.org/browse/MEAR-167 Project: Maven Ear Plugin Issue Type: Bug Affects Versions: 2.8 Reporter: Anton Shaykin Assignee: Robert Scholte Fix For: 2.9 Attachments: example.zip When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure {noformat} . |-root |-app |--business |---service |--ejb |---service {noformat} In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: {code:xml} build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build {code} When I run {{maven-ear-plugin:ear}} goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): {code} workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); {code} So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-167) Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
[ https://jira.codehaus.org/browse/MEAR-167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=335775#comment-335775 ] Robert Scholte commented on MEAR-167: - Soon, see http://markmail.org/message/3pq7wlzgdq5wzlfa Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE -- Key: MEAR-167 URL: https://jira.codehaus.org/browse/MEAR-167 Project: Maven Ear Plugin Issue Type: Bug Affects Versions: 2.8 Reporter: Anton Shaykin Assignee: Robert Scholte Fix For: 2.9 Attachments: example.zip When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure {noformat} . |-root |-app |--business |---service |--ejb |---service {noformat} In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: {code:xml} build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build {code} When I run {{maven-ear-plugin:ear}} goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): {code} workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); {code} So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-167) Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
[ https://jira.codehaus.org/browse/MEAR-167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Scholte updated MEAR-167: Description: When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure {noformat} . |-root |-app |--business |---service |--ejb |---service {noformat} In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: {code:xml} build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build {code} When I run {{maven-ear-plugin:ear}} goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): {code} workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); {code} So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. was: When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure . |-root |-app |--business |---service |--ejb |---service In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build When I run maven-ear-plugin:ear goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
[jira] (MEAR-167) Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE
Anton Shaykin created MEAR-167: -- Summary: Classes from different modules with the same artifactId are merged when skinnyWars set to TRUE Key: MEAR-167 URL: https://jira.codehaus.org/browse/MEAR-167 Project: Maven 2.x Ear Plugin Issue Type: Bug Affects Versions: 2.8 Reporter: Anton Shaykin Attachments: example.zip When some modules, that are to be included in ear, have the same artifactId, classes from those modules get merged. Consider this project structure . |-root |-app |--business |---service |--ejb |---service In this example, there are 2 ejb modules main.root.business:service:jar and main.root.ejb:service:jar with artifactId 'service'. Project app has the following build configuration: build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-ear-plugin/artifactId version2.8/version configuration skinnyWarstrue/skinnyWars modules ejbModule groupIdmain.root.ejb/groupId artifactIdservice/artifactId uriservice1.jar/uri /ejbModule ejbModule groupIdmain.root.business/groupId artifactIdservice/artifactId uriservice2.jar/uri /ejbModule /modules /configuration /plugin /plugins /build When I run maven-ear-plugin:ear goal I get an ear with 2 ejb jars in it (service1.jar and service2.jar), but the second one contains classes from both modules. I did some code digging, and this is what I've found (EarMojo, line 684): workDirectory = new File( new File( generatedDescriptorLocation, temp ), module.getArtifact().getArtifactId() ); workDirectory.mkdirs(); So, basically, when skinnyWars set to TRUE, you create a temporary folder with the name based on artifactId. That's why the classes are merged in the second jar. As a solution, I'd suggest either randomize the directory name, or at least check for a directory existence and remove it recursively, if found. The example project is attached to this ticket. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira