[
https://issues.apache.org/jira/browse/AMQ-4131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeffrey Starker reopened AMQ-4131:
----------------------------------
Hello, not to be a pain, but I think there is a duplication. Here are more
steps to show you what I am talking about. Sorry for being unclear before.
Steps:
Download the activemq-core-5.7.0.jar and activemq-protobuf-1.1.jar via Maven.
Using the central maven repository. You can also find them via the web at:
http://search.maven.org/remotecontent?filepath=org/apache/activemq/activemq-core/5.7.0/activemq-core-5.7.0.jar
and
http://search.maven.org/remotecontent?filepath=org/apache/activemq/protobuf/activemq-protobuf/1.1/activemq-protobuf-1.1.jar
respectively.
Expand the jar files in to a directory:
jar -xvf activemq-core-5.7.0.jar
jar -xvf activemq-protobuf-1.1.jar
You will notice that the org.apache.activemq.protobuf package is also included
in activemq-core-5.7.0.jar file when expanded.
After extracting the two jar files, you can do a diff on any file I listed
above in the previous comment to show they are identical:
diff
${directory_of_core_jar_extract}/org/apache/activemq/protobuf/PBMessage.class
${directory_of_protobuf_jar_extract}/org/apache/activemq/protobuf/PBMessage.class
> Duplicated classes in activemq-core and activemq-protobuf artifacts
> -------------------------------------------------------------------
>
> Key: AMQ-4131
> URL: https://issues.apache.org/jira/browse/AMQ-4131
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.7.0
> Environment: Maven
> Reporter: Jeffrey Starker
> Priority: Minor
>
> When adding activemq-core as a dependency in a java maven project, the
> activemq-core pulls in a dependency for activemq-protobuf. However, the
> activemq-core artifact duplicates all of the classes located in the
> activemq-protobuf.
> Doing a diff between the two jars for activemq-spring-5.7.0.jar and
> activemq-protobuf-1.1.jar, the following classes are duplicated:
> {noformat}
> [WARNING] Found duplicate classes in
> [org.apache.activemq:activemq-core:5.7.0,org.apache.activemq.protobuf:activemq-protobuf:1.1]
> :
> [WARNING] org.apache.activemq.protobuf.AsciiBuffer
> [WARNING] org.apache.activemq.protobuf.BaseMessage
> [WARNING] org.apache.activemq.protobuf.Buffer
> [WARNING] org.apache.activemq.protobuf.BufferInputStream
> [WARNING] org.apache.activemq.protobuf.BufferOutputStream
> [WARNING] org.apache.activemq.protobuf.CodedInputStream
> [WARNING] org.apache.activemq.protobuf.CodedOutputStream
> [WARNING] org.apache.activemq.protobuf.DeferredDecodeMessage
> [WARNING] org.apache.activemq.protobuf.InvalidProtocolBufferException
> [WARNING] org.apache.activemq.protobuf.Message
> [WARNING] org.apache.activemq.protobuf.MessageBuffer
> [WARNING] org.apache.activemq.protobuf.MessageBufferSupport
> [WARNING] org.apache.activemq.protobuf.PBMessage
> [WARNING] org.apache.activemq.protobuf.UTF8Buffer
> [WARNING] org.apache.activemq.protobuf.UninitializedMessageException
> [WARNING] org.apache.activemq.protobuf.WireFormat
> [WARNING] org.apache.activemq.protobuf.compiler.AltJavaGenerator
> [WARNING] org.apache.activemq.protobuf.compiler.CommandLineSupport
> [WARNING] org.apache.activemq.protobuf.compiler.CompilerException
> [WARNING] org.apache.activemq.protobuf.compiler.EnumDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.EnumFieldDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.ExtensionsDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.FieldDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.IntrospectionSupport
> [WARNING] org.apache.activemq.protobuf.compiler.JavaGenerator
> [WARNING] org.apache.activemq.protobuf.compiler.MessageDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.MethodDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.OptionDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.ParserSupport
> [WARNING] org.apache.activemq.protobuf.compiler.ProtoDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.ProtoMojo
> [WARNING] org.apache.activemq.protobuf.compiler.ServiceDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.TextFormat
> [WARNING] org.apache.activemq.protobuf.compiler.TypeDescriptor
> [WARNING] org.apache.activemq.protobuf.compiler.parser.ParseException
> [WARNING] org.apache.activemq.protobuf.compiler.parser.ProtoParser
> [WARNING] org.apache.activemq.protobuf.compiler.parser.ProtoParserConstants
> [WARNING]
> org.apache.activemq.protobuf.compiler.parser.ProtoParserTokenManager
> [WARNING] org.apache.activemq.protobuf.compiler.parser.SimpleCharStream
> [WARNING] org.apache.activemq.protobuf.compiler.parser.Token
> [WARNING] org.apache.activemq.protobuf.compiler.parser.TokenMgrError
> {noformat}
> activemq-core is currently packaged incorrectly because of this. This will
> cause classloader issues as these classes are duplicated. However, luckily
> the classes are identical, but if something changes down the road it could
> cause unexpected behavior.
> Current workaround:
> {code:xml}
> <dependency>
> <groupId>org.apache.activemq</groupId>
> <artifactId>activemq-core</artifactId>
> <version>5.7.0</version>
> <exclusions>
> <exclusion>
> <artifactId>activemq-protobuf</artifactId>
> <groupId>org.apache.activemq.protobuf</groupId>
> </exclusion>
> </exclusions>
> </dependency>
> {code}
> Suggested fix is to remove the duplicated classes from activemq-core and
> instead bring them in through the activemq-protobuf dependency.
--
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