Hey Thanks David,
Here is my entire patch to get it to work, total hacks as it does
1. disable annotation scanning on javax.annotation
2. disable annotation scanning on javax.ws.rs.
3. disable the karaf generate descriptor plugin
Index: openejb/container/openejb-core/pom.xml
===================================================================
--- openejb/container/openejb-core/pom.xml (revision 1306627)
+++ openejb/container/openejb-core/pom.xml (working copy)
@@ -390,6 +390,11 @@
<version>0.0.1-SNAPSHOT</version>
<artifactId>spi-helper-jee6-profile</artifactId>
</dependency>
+ <dependency> <!-- to get the jee6 profile without configuration
-->
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ <version>6.0-3</version>
+ </dependency>
</dependencies>
</plugin>
</plugins>
@@ -403,6 +408,7 @@
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
+ <version>${javaee-api.version}</version>
</dependency>
<!-- required for endorsed dir support -->
<dependency>
Index: openejb/osgi/openejb-feature/pom.xml
===================================================================
--- openejb/osgi/openejb-feature/pom.xml (revision 1306627)
+++ openejb/osgi/openejb-feature/pom.xml (working copy)
@@ -39,6 +39,7 @@
</includes>
</resource>
</resources>
+<!--
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
@@ -57,5 +58,6 @@
</executions>
</plugin>
</plugins>
+-->
</build>
</project>
Index: openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml
===================================================================
--- openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml (revision
1306627)
+++ openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml (working
copy)
@@ -80,6 +80,12 @@
</dependency>
<dependency>
+ <groupId>org.apache.openwebbeans</groupId>
+ <artifactId>openwebbeans-impl</artifactId>
+ <version>${org.apache.openwebbeans.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Index:
maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/
dd/MergeDDForWebappMojo.java
===================================================================
---
maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/
dd/MergeDDForWebappMojo.java (revision 1306393)
+++
maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/
dd/MergeDDForWebappMojo.java (working copy)
@@ -145,7 +145,7 @@
final Map<String, Merger<?>> mergers = new HashMap<String,
Merger<?>>();
final ClassLoader cl = new URLClassLoader(new URL[] {
getClass().getProtectionDomain().getCodeSource().getLocation() },
ClassLoader.getSystemClassLoader());
final AbstractFinder finder = new ClassFinder(cl, true).link();
- final List<Class> foundMergers = finder.findSubclasses((Class)
cl.loadClass(Merger.class.getName()));
+ final List<Class> foundMergers =
(List<Class>)finder.findSubclasses((Class)
cl.loadClass(Merger.class.getName()));
for (Class<? extends Merger> m : foundMergers) {
try {
Index:
maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven
/plugin/spi/SpiMojo.java
===================================================================
---
maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven
/plugin/spi/SpiMojo.java (revision 1306393)
+++
maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven
/plugin/spi/SpiMojo.java (working copy)
@@ -192,6 +192,8 @@
getLog().warn("can't find " + annotation);
continue;
}
+ if
(annClazz.getName().indexOf("javax.annotation")==0) continue;
+ if (annClazz.getName().indexOf("javax.ws.rs.")==0)
continue;
if (!useMeta) {
for (Class<?> clazz :
finder.findAnnotatedClasses(annClazz)) {
> -----Original Message-----
> From: David Blevins [mailto:[email protected]]
> Sent: Wednesday, March 28, 2012 9:02 PM
> To: [email protected]
> Subject: Re: Build fails with an empty maven repository
>
> Thanks, Filip!
>
> I have a build running with an empty local maven repo and will see if I
get the
> same or similar results.
>
> For a while there we had buildbot build setup to always download the jar
for
> this reason to try and flush out these issues when they happen. Buildbot
had
> some disk space issues for a while there and I ended up reverting that
part of
> the build setup.
>
> Seems as though it might be a good one to revisit. A once a week "full
> download" build might be wise. I'll see if I can't add that tomorrow.
>
>
> Side note, good to see a new face! Welcome!
>
>
> -David
>
>
> On Mar 28, 2012, at 5:21 PM, Filip Hanik (mailing lists) wrote:
>
> > This may be very similar to
> >
> http://openejb.markmail.org/thread/xkvzg4fvn6gjppmo#query:+page:1+mi
> d:bl5bed
> > 4gxkrbpens+state:results
> >
> > I get the exact same problem here, the NoClassDefFoundError, and it
bails
> > out when building the openejb-core module. So far, it's proven very
> > difficult to get a complete "mvn install" in the openejb root to work.
> >
> >
> > It happens when the system tries to scan the classes in the
> javax.annotation
> > package
> > While I don't know the exact reason for it, since I see no correlation
> > between PostConstruct and javax.interceptor.InvocationContext, this did
> > solve my problem, albeit a workaround, it gives me a working repository.
> > I'm not suggesting this is the correct fix, as this problem does show up
in
> > other places in the build as well [1]
> >
> > Index:
> > maven-plugins/spi-helper-maven-
> plugin/src/main/java/org/apache/openejb/maven
> > /plugin/spi/SpiMojo.java
> >
> ==========================================================
> =========
> > ---
> > maven-plugins/spi-helper-maven-
> plugin/src/main/java/org/apache/openejb/maven
> > /plugin/spi/SpiMojo.java (revision 1306393)
> > +++
> > maven-plugins/spi-helper-maven-
> plugin/src/main/java/org/apache/openejb/maven
> > /plugin/spi/SpiMojo.java (working copy)
> > @@ -192,6 +192,7 @@
> > getLog().warn("can't find " + annotation);
> > continue;
> > }
> > + if
> > (annClazz.getName().indexOf("javax.annotation")==0) continue;
> >
> > if (!useMeta) {
> > for (Class<?> clazz :
> > finder.findAnnotatedClasses(annClazz)) {
> >
> >
> >
> > This basically bypasses all annotation checks for classes in the
> > javax.annotation package
> >
> > There was one module that seemed to be missing a dependency, not sure
> if the
> > parent already includes this.
> >
> > Index: openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml
> >
> ==========================================================
> =========
> > --- openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml
> (revision
> > 1306627)
> > +++ openejb/arquillian-tomee/arquillian-tomee-remote/pom.xml
> (working
> > copy)
> > @@ -80,6 +80,12 @@
> > </dependency>
> >
> > <dependency>
> > + <groupId>org.apache.openwebbeans</groupId>
> > + <artifactId>openwebbeans-impl</artifactId>
> > + <version>${org.apache.openwebbeans.version}</version>
> > + </dependency>
> > +
> > + <dependency>
> > <groupId>junit</groupId>
> > <artifactId>junit</artifactId>
> > <scope>test</scope>
> >
> > [1] - When the system inspects javax.ws.rs.Path during the build of
> > [INFO] Building OpenEJB :: Web Examples :: REST Example
> > [INFO] task-segment: [compile]
> >
> > It throws this error:
> >
> > java.lang.NoClassDefFoundError:
> > org/apache/openjpa/enhance/PersistenceCapable
> > at java.lang.ClassLoader.defineClass1(Native Method)
> > at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
> > at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
> > at
> > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
> > at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
> > at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> > at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> > at java.lang.Class.getDeclaredMethods0(Native Method)
> > at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
> > at java.lang.Class.getDeclaredMethods(Class.java:1791)
> > at
> >
> org.apache.xbean.finder.AnnotationFinder.findAnnotatedMethods(Annotat
> ionFind
> > er.java:584)
> > at
> > org.apache.openejb.maven.plugin.spi.SpiMojo.execute(SpiMojo.java:219)
> > at
> >
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugin
> Manage
> > r.java:490)
> > at
> >
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLi
> fe
> > cycleExecutor.java:694)
> > at
> >
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecy
> cle
> > (DefaultLifecycleExecutor.java:556)
> > at
> >
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLif
> ec
> > ycleExecutor.java:535)
> > at
> >
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandl
> eFail
> > ures(DefaultLifecycleExecutor.java:387)
> > at
> >
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
> Defa
> > ultLifecycleExecutor.java:348)
> > at
> >
>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycl
> e
> > Executor.java:180)
> > at
> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
> > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
> > at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
> > at
> >
> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
> 0)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j
> ava:39
> > )
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl
> > .java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> > org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> > at
> > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> > at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> > Caused by: java.lang.ClassNotFoundException:
> > org.apache.openjpa.enhance.PersistenceCapable
> > at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> > ... 35 more
> >
> >