I don't seem to be able to reproduce the issue.
In hopes that buildbot might have better luck I setup a builder that does a
build with an empty repo. It doesn't seem to be showing up, though. Pinging
infra to see if I can sort that out.
-David
On Mar 29, 2012, at 11:42 AM, Filip Hanik (mailing lists) wrote:
> 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
>>>
>>>
>
>