geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Dillon <ja...@planet57.com>
Subject Re: Yoko and Geronimo
Date Wed, 23 Aug 2006 21:16:53 GMT
Dain pointed out that we don't want to "unpack" the dependencies...  
so the goal should be "copy", not "unpack", as in:

{code:xml}
     <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>dependency-maven-plugin</artifactId>
         <executions>
             <execution>
                 <id>unpack-endorsed</id>
                 <phase>generate-test-resources</phase>
                 <goals>
                     <goal>copy</goal>
                 </goals>
                 <configuration>
                     <artifactItems>
                         <artifactItem>
                             <groupId>org.apache.yoko</groupId>
                             <artifactId>yoko</artifactId>
                             <version>1.0</version>
                             <type>jar</type>
                         </artifactItem>
                     </artifactItems>
                     <outputDirectory>${project.build.directory}/ 
endorsed</outputDirectory>
                 </configuration>
             </execution>
         </executions>
     </plugin>

     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
             <forkMode>once</forkMode>
             <workingDirectory>${project.build.directory}</ 
workingDirectory>
             <argLine>-Djava.endorsed.dirs=${project.build.directory}/ 
endorsed</argLine>
         </configuration>
     </plugin>
{code}

--jason


On Aug 23, 2006, at 1:45 PM, Jason Dillon wrote:

> Looks like the bits to configure surefire are fine, except you'd  
> want to change the value of "somedir".
>
> I recommend that you use the dependency plugin in your module's pom  
> to download and install the needed jars to be placed into the  
> "endorsed" dir (which will end up in the modules target/endorsed or  
> something similar).  Then configure the java.endorsed.dirs to point  
> at that directory.
>
> Here is an example... not the right dependencies but I think it  
> will give you the idea:
>
> {code:xml}
>     <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>dependency-maven-plugin</artifactId>
>         <executions>
>             <execution>
>                 <id>unpack-endorsed</id>
>                 <phase>generate-test-resources</phase>
>                 <goals>
>                     <goal>unpack</goal>
>                 </goals>
>                 <configuration>
>                     <artifactItems>
>                         <artifactItem>
>                             <groupId>org.apache.yoko</groupId>
>                             <artifactId>yoko</artifactId>
>                             <version>1.0</version>
>                             <type>jar</type>
>                         </artifactItem>
>                     </artifactItems>
>                     <outputDirectory>${project.build.directory}/ 
> endorsed</outputDirectory>
>                 </configuration>
>             </execution>
>         </executions>
>     </plugin>
>
>     <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-surefire-plugin</artifactId>
>         <configuration>
>             <forkMode>once</forkMode>
>             <workingDirectory>${project.build.directory}</ 
> workingDirectory>
>             <argLine>-Djava.endorsed.dirs=$ 
> {project.build.directory}/endorsed</argLine>
>         </configuration>
>     </plugin>
> {code}
>
> Lemme know if you need anything else.
>
> --jason
>
>
> On Aug 23, 2006, at 10:13 AM, Dain Sundstrom wrote:
>
>> You will need to configure the surefire (testing) plugin to fork  
>> your tests into a new vm and set the endorsed dir for that new  
>> vm.  The first is easy but the second will be difficult.  First  
>> off the docs for the sure fire plugin can be found here
>>
>> http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html
>>
>> Here is an example setting
>> <project>
>>   ...
>>   <build>
>>     ...
>>     <plugin>
>>       <groupId>org.apache.maven.plugins</groupId>
>>       <artifactId>maven-surefire-plugin</artifactId>
>>       <configuration>
>>         <forkMode>once</forkMode >
>>         <argLine>-Djava.endorsed.dirs=somedir</argLine>
>>       </configuration>
>>     </plugin>
>>     ...
>>   </build>
>>   ...
>> </project>
>>
>> The problem will be selecting a dir on the filesystem that will  
>> include the endorsed API.  BTW you could also set the boot class  
>> path in the argLine above, but testing endorsed dir will be more  
>> representative of the runtime environment.
>>
>> Jason, you have any ideas on how to configure this?
>>
>> -dain
>>
>> On Aug 23, 2006, at 3:10 AM, Rick McGuire wrote:
>>
>>> Dain Sundstrom wrote:
>>>> On Aug 11, 2006, at 12:40 PM, Dain Sundstrom wrote:
>>>>
>>>>> Rick,
>>>>>
>>>>> I believe what you really want to do is to use the endorsed  
>>>>> directory.  This allows you to override the vm implementation  
>>>>> of endorsed specification such as corba (https://java.sun.com/ 
>>>>> j2se/1.5.0/docs/guide/standards/index.html).  In general, you  
>>>>> should try to keep the stuff in the endorsed jar to a minimum  
>>>>> as not to pollute the class path.  In geronimo, to add  
>>>>> something to the endorsed dir, you need to add it to our  
>>>>> endorsed manifest entry "Endorsed-Dirs" (I have no idea where  
>>>>> this is set in the build) and you need to modify the build to  
>>>>> put the jar into lib/endorsed by modifying the bin.xml.
>>>>
>>>> I'm dumb.  You simply need to add the jar to lib/endorsed jar in  
>>>> the boilerplate config (thanks Jason), and add it to the  
>>>> manifest class path of the j2ee-system configuration (see the  
>>>> pom file in that dir).  It will be added to the system class  
>>>> path and marked as endorsed so it can override the corba specs  
>>>> just like we override the xml specs using xerces.
>>> Ok, this looks pretty simple, but, unfortunately, it only  
>>> addresses the issues when running/building Geronimo.  I'm running  
>>> into a problem trying to get the unit tests to run while building  
>>> openejb2.  I've been trying to find the equivalent touch points  
>>> in the openejb2 build, and have not had much success.  I'm  
>>> definitely skating on thin ice (not good for a person of my  
>>> size :-) ) when it comes to the m2 stuff, so I'd appreciate any  
>>> help/pointers I can get on this.
>>> Rick
>>>
>>>
>>>>
>>>> -dain
>>>>
>>
>


Mime
View raw message