[JBoss JIRA] (SHRINKRES-250) Resolve (transitive) dependencies for WAR artifacts
by Willem Salembier (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-250?page=com.atlassian.jira.plu... ]
Willem Salembier updated SHRINKRES-250:
---------------------------------------
Attachment: ShrinkWrapTest.java
> Resolve (transitive) dependencies for WAR artifacts
> ---------------------------------------------------
>
> Key: SHRINKRES-250
> URL: https://issues.jboss.org/browse/SHRINKRES-250
> Project: ShrinkWrap Resolvers
> Issue Type: Feature Request
> Affects Versions: 2.2.2
> Reporter: Willem Salembier
> Attachments: ShrinkWrapTest.java
>
>
> Is there a way to resolve the (transitive) dependencies of a WAR artifacts, using the default resolve method? The behavior seems different in comparison to JAR artifacts. Is this intentional?
> It does work if you start a resolver from a pom file.
> {code}
> System.out.println("JAR dependencies via resolve");
> MavenResolvedArtifact[] artifacts = Maven.resolver().resolve("io.fabric8:fabric8-cxf:jar:2.2.0").withTransitivity().asResolvedArtifact();
> for (MavenResolvedArtifact artifact : artifacts) {
> System.out.println(artifact);
> }
> System.out.println("No WAR dependencies via resolve");
> artifacts = Maven.resolver().resolve("io.fabric8.jube:war:war:2.2.0").withTransitivity().asResolvedArtifact();
> for (MavenResolvedArtifact artifact : artifacts) {
> System.out.println(artifact);
> }
> System.out.println("All WAR dependencies via pom file");
> artifacts = Maven.resolver().loadPomFromFile(artifacts[0].asFile().getAbsolutePath().replace(".war", ".pom")).importRuntimeDependencies().resolve().withTransitivity().asResolvedArtifact();
> for (MavenResolvedArtifact artifact : artifacts) {
> System.out.println(artifact);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-250) Resolve (transitive) dependencies for WAR artifacts
by Willem Salembier (JIRA)
Willem Salembier created SHRINKRES-250:
------------------------------------------
Summary: Resolve (transitive) dependencies for WAR artifacts
Key: SHRINKRES-250
URL: https://issues.jboss.org/browse/SHRINKRES-250
Project: ShrinkWrap Resolvers
Issue Type: Feature Request
Affects Versions: 2.2.2
Reporter: Willem Salembier
Is there a way to resolve the (transitive) dependencies of a WAR artifacts, using the default resolve method? The behavior seems different in comparison to JAR artifacts. Is this intentional?
It does work if you start a resolver from a pom file.
{code}
System.out.println("JAR dependencies via resolve");
MavenResolvedArtifact[] artifacts = Maven.resolver().resolve("io.fabric8:fabric8-cxf:jar:2.2.0").withTransitivity().asResolvedArtifact();
for (MavenResolvedArtifact artifact : artifacts) {
System.out.println(artifact);
}
System.out.println("No WAR dependencies via resolve");
artifacts = Maven.resolver().resolve("io.fabric8.jube:war:war:2.2.0").withTransitivity().asResolvedArtifact();
for (MavenResolvedArtifact artifact : artifacts) {
System.out.println(artifact);
}
System.out.println("All WAR dependencies via pom file");
artifacts = Maven.resolver().loadPomFromFile(artifacts[0].asFile().getAbsolutePath().replace(".war", ".pom")).importRuntimeDependencies().resolve().withTransitivity().asResolvedArtifact();
for (MavenResolvedArtifact artifact : artifacts) {
System.out.println(artifact);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Matous Jobanek (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Matous Jobanek closed SHRINKRES-249.
------------------------------------
Resolution: Won't Do
In this case, SWR can only help you to resolve(download) the artifacts. Then you need to somehow hack the classloader - maybe this could help: http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloadi...
Closing this issue...
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Bogdan Sikora (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Bogdan Sikora commented on SHRINKRES-249:
-----------------------------------------
Hmm... :((((( Well that was the issue, that means we needs to find another way, thank you for your time
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Matous Jobanek (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Matous Jobanek commented on SHRINKRES-249:
------------------------------------------
The SWR resolution of some dependencies doesn't mean that the client(test) classloader will then use the resolved library. It "just" downloads the required library with or without transitivity and then you are able to put it into the WebArchive. When the archive is deployed then the library is used as a part of the deployment - inside of the container. It doesn't effect client side anyhow.
The only possibility is to specify the required library there in your pom.xml file.
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Bogdan Sikora (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Bogdan Sikora commented on SHRINKRES-249:
-----------------------------------------
Yea i know that, but there is question. Shouldn't shrinkwrap resolver be able override somehow that library? I wasn't able to force it to do it
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Matous Jobanek (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Matous Jobanek edited comment on SHRINKRES-249 at 7/13/16 3:42 AM:
-------------------------------------------------------------------
Hi,
the problem is that your {{PermissionServlet.class}} uses {{javax.servlet.http.HttpServlet}} from the library {{org.apache.tomcat.embed:tomcat-embed-core:8.0.3}} which is not compatible with Java 6.
So when your test tries to use this class it fails with the exception {{java.lang.UnsupportedClassVersionError}}. This is nothing that could be caused by the SWR or ShrinkWrap itself; this is standard Java behaviour - you cannot use Java 7 libraries and run them on Java 6.
was (Author: mjobanek):
Hi,
the problem is that your {{PermissionServlet.class}} uses {{javax.servlet.http.HttpServlet}} from the library {{org.apache.tomcat.embed:tomcat-embed-core:8.0.3}}.
So when your test tries to use this class it fails with the exception {{java.lang.UnsupportedClassVersionError}}. This is nothing that could be caused by the SWR or ShrinkWrap itself; this is standard Java behaviour - you cannot use Java 7 libraries and run them on Java 6.
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months
[JBoss JIRA] (SHRINKRES-249) Dependency override
by Matous Jobanek (JIRA)
[ https://issues.jboss.org/browse/SHRINKRES-249?page=com.atlassian.jira.plu... ]
Matous Jobanek edited comment on SHRINKRES-249 at 7/13/16 3:41 AM:
-------------------------------------------------------------------
Hi,
the problem is that your {{PermissionServlet.class}} uses {{javax.servlet.http.HttpServlet}} from the library {{org.apache.tomcat.embed:tomcat-embed-core:8.0.3}}.
So when your test tries to use this class it fails with the exception {{java.lang.UnsupportedClassVersionError}}. This is nothing that could be caused by the SWR or ShrinkWrap itself; this is standard Java behaviour - you cannot use Java 7 libraries and run them on Java 6.
was (Author: mjobanek):
Hi,
the problem is that your {{PermissionServlet.class}} uses {{javax.servlet.http.HttpServlet}} from the library you mentioned above {{tomcat-embed-logging-juli}}.
So when your test tries to use this class it fails with the exception {{java.lang.UnsupportedClassVersionError}}. This is nothing that could be caused by the SWR or ShrinkWrap itself; this is standard Java behaviour - you cannot use Java 7 libraries and run them on Java 6.
> Dependency override
> --------------------
>
> Key: SHRINKRES-249
> URL: https://issues.jboss.org/browse/SHRINKRES-249
> Project: ShrinkWrap Resolvers
> Issue Type: Bug
> Reporter: Bogdan Sikora
> Assignee: Matous Jobanek
>
> I am trying to build .war with shrinkwrap and jdk1.6 and i am getting
> {noformat}
> java.lang.UnsupportedClassVersionError: javax/servlet/http/HttpServlet : Unsupported major.minor version 51.0
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> at noe.tomcat.rpm.tests.BZ886653.prepareWebApp(BZ886653.groovy:118)
> {noformat}
> which means that JDK1.6 got some JDK1.7 jar and it can't "read them" which is expected coz i have
> {noformat}
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-logging-juli</artifactId>
> <version>8.0.3</version>
> </dependency>
> {noformat}
> in my pom.xml. I am trying to use shrinkwrap resolver to make shrinkwrap use artifacts from javax.servlet:servlet-api:2.5. It successfully download and put into war
> {noformat}
> permission.war:
> /WEB-INF/
> /WEB-INF/lib/
> /WEB-INF/lib/servlet-api-2.5.jar
> {noformat}
> but as soon as shrinkwrap tries to add something is crashes with exception above
> {noformat}
> WebArchive permissionWar = ShrinkWrap.create(WebArchive, "${app}.war")
> File[] libs = Maven.resolver().resolve("javax.servlet:servlet-api:2.5").withTransitivity().asFile()
> permissionWar.addAsLibraries(libs)
> permissionWar.setWebXML(ShrinkWrapHelper.createMinimalWebXml(PermissionServlet.class))
> permissionWar.addClass(PermissionServlet.class)
> {noformat}
> it crashes in .setWebXML() if it isn't there it crashes on addClass()
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
7 years, 9 months