[
https://issues.jboss.org/browse/FORGE-908?page=com.atlassian.jira.plugin....
]
Lincoln Baxter III closed FORGE-908.
------------------------------------
Fix Version/s: 2.0.0.Alpha5
Resolution: Done
Fixed by removing shrinkwrap descriptor API classes from auxiliary archives. This may
become a problem again later if additional classes are in conflict, but the temporary
solution lies in this approach:
{code}
public class ForgeAuxiliaryArchiveProcessor implements AuxiliaryArchiveProcessor
{
@Override
public void process(Archive<?> archive)
{
if ("arquillian-core.jar".equals(archive.getName()))
{
Node node = archive.get("org/jboss/shrinkwrap/descriptor");
if (node != null)
archive.delete(node.getPath());
}
}
}
{code}
Registered in:
{code}
public class ForgeLoadableExtension implements LoadableExtension
{
@Override
public void register(ExtensionBuilder builder)
{
builder.service(DeployableContainer.class, ForgeDeployableContainer.class);
builder.service(DeploymentScenarioGenerator.class,
ForgeDeploymentScenarioGenerator.class);
builder.service(Protocol.class, ForgeProtocol.class);
builder.service(AuxiliaryArchiveProcessor.class,
ForgeAuxiliaryArchiveProcessor.class);
}
}
{code}
The ultimate solution would be to implement addons that provide the required test-classes,
on which the deployed addons would depend, thus eliminating the duplicate class definition
problem altogether, while still leaving the classes available for use.
LinkageError while using ShrinkWrap classes in Arquillian
---------------------------------------------------------
Key: FORGE-908
URL:
https://issues.jboss.org/browse/FORGE-908
Project: Forge
Issue Type: Bug
Components: Java EE APIs
Affects Versions: 2.0.0.Alpha4
Reporter: George Gastaldi
Assignee: Lincoln Baxter III
Fix For: 2.0.0.Alpha5
In javaee-tests, if you remove the @Ignore from the test
test.org.jboss.forge.javaee.servlet.ServletFacetTest.testWebXMLCreatedWhenInstalled() you
get the following exception:
{code}
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of
org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type
with name "org/jboss/shrinkwrap/descriptor/api/webapp30/WebAppDescriptor"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:422)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:260)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:75)
at org.jboss.modules.Module.loadModuleClass(Module.java:528)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:399)
at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119)
at
test.org.jboss.forge.javaee.servlet.ServletFacetTest.testWebXMLCreatedWhenInstalled(ServletFacetTest.java:63)
... 88 more
{code}
--
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