tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thabach <b...@evolootion.ch>
Subject Re: Problem Running quartz-app RAR JUnit Test
Date Mon, 18 Jan 2010 13:34:06 GMT

I uploaded the patch. Sorry for the delay.

Cheers Christian.


David Blevins wrote:
> 
> Definitely a bug and *thank you* for digging around and finding it!   
> Very appreciated!  It's open source and we're all volunteers, so maybe  
> closer to the truth is my wife appreciates it ;)
> 
> Anyway, if you can attach a patch here, I'll commit it and mark you  
> down as the "fixer"
> 
>    https://issues.apache.org/jira/browse/OPENEJB-1127
> 
> Happy new year!
> 
> -David
> 
> On Jan 1, 2010, at 11:20 PM, thabach wrote:
> 
>>
>> Heya David
>>
>> I investigated some more and observed that a resource adapter  
>> project - a
>> non packed Maven module, like the one in the quartz-app, to be  
>> precise - is
>> detected as a Connector module, but does NOT get loaded. A top-level  
>> "mvn
>> install" only works for the quartz-app as Maven uses the jar'ed  
>> quartz-ra as
>> a dependency, which does get loaded by OpenEJB.
>>
>> I added the following ra.xml specific code, similar to the one for
>> ejb-jar.xml and applicaiton.xml in
>> org.apache.openejb.config.DeploymentsResolver:
>>
>> public static void loadFrom(Deployments dep, FileUtils path,  
>> List<String>
>> jarList) {
>>
>> ......
>>
>>       ////////////////////////////////
>>        //
>>        //  Unpacked "Jar" directory with descriptor
>>        //
>>        ////////////////////////////////
>>        File ejbJarXml = new File(dir, "META-INF" + File.separator +
>> "ejb-jar.xml");
>>        if (ejbJarXml.exists()) {
>>            if (!jarList.contains(dir.getAbsolutePath())) {
>>                jarList.add(dir.getAbsolutePath());
>>            }
>>            return;
>>        }
>>
>>        File appXml = new File(dir, "META-INF" + File.separator +
>> "application.xml");
>>        if (appXml.exists()) {
>>            if (!jarList.contains(dir.getAbsolutePath())) {
>>                jarList.add(dir.getAbsolutePath());
>>            }
>>            return;
>>        }
>>
>>        File raXml = new File(dir, "META-INF" + File.separator +  
>> "ra.xml");
>>        if (raXml.exists()) {
>>            if (!jarList.contains(dir.getAbsolutePath())) {
>>                jarList.add(dir.getAbsolutePath());
>>            }
>>            return;
>>        }
>>
>> and now it all works fine !
>>
>> So to me this looks like something that got forgotten. Shall I raise  
>> a JIRA
>> for this and do you want me to supply a patch with the above ?
>>
>> Regards and a happy new year, Christian.
>>
>>
>> thabach wrote:
>>>
>>> I tried what you suggested, had to actually try with
>>> getClass().getClassLoader().getSystemResource("META-INF/ra.xml") to
>>> succeed, but the ra.xml is on the Classpath.
>>>
>>> The quartz-beans JUnit Test in Eclipse runs fine as soon as I move  
>>> the
>>> ra.xml from the quartz-ra module to the quartz-beans module, but  
>>> only as
>>> long as I do not put an ejb-jar.xml into the src/main/resources/ 
>>> META-INF
>>> as well.
>>>
>>> It really seems that it all depends on some ordering constraint,  
>>> does one
>>> have to manage rar before ejb deployment somehow ?
>>>
>>> Cheers Christian.
>>>
>>>
>>>
>>> David Blevins wrote:
>>>>
>>>>
>>>> On Oct 27, 2009, at 12:54 AM, thabach wrote:
>>>>
>>>>>
>>>>> Heya
>>>>>
>>>>> I am investigating RAR support in OpenEJB and was playing with the
>>>>> quartz-app from some earlier post (
>>>>> http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-td18531000.html#a18538001
>>>>> http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-td18531000.html#a18538001
>>>>> ).
>>>>>
>>>>> When running a top-level mvn clean install the tests are executed
>>>>> fine.
>>>>> Running the quartz-beans module test from within Eclipse as a JUnit
>>>>> test,
>>>>> leads to a problem in matching the message listener interface of  
>>>>> the
>>>>> MDB
>>>>> against the message listener interface of the automatically  
>>>>> deployed
>>>>> MdbContainer and yields this:
>>>>>
>>>>> org.apache.openejb.OpenEJBException: Creating application failed:
>>>>> classpath.ear: Error deploying 'TimerJob'.  Exception: class
>>>>> org.apache.openejb.OpenEJBException: Deployment 'TimerJob' has  
>>>>> message
>>>>> listener interface org.quartz.Job but this MDB container only  
>>>>> supports
>>>>> interface javax.jms.MessageListener: Deployment 'TimerJob' has  
>>>>> message
>>>>> listener interface org.quartz.Job but this MDB container only  
>>>>> supports
>>>>> interface javax.jms.MessageListener
>>>>
>>>> It seems there's something about the way the Eclipse project is  
>>>> setup
>>>> that does not match the Maven setup.  If Eclipse isn't including the
>>>> META-INF/ra.xml file in the classpath, then OpenEJB will not be able
>>>> to see and deploy the resource adapter and create the required MDB
>>>> container.
>>>>
>>>> Try a little test code like this to verify your Eclipse setup:
>>>>
>>>>   import junit.framework.TestCase;
>>>>
>>>>   import java.net.URL;
>>>>
>>>>   public class ClasspathTest extends TestCase {
>>>>
>>>>       public void test() throws Exception {
>>>>
>>>>           URL raXml = this.getClass().getResource("META-INF/ 
>>>> ra.xml");
>>>>
>>>>           assertNotNull("There is no resource adapter in the
>>>> classpath", raXml);
>>>>       }
>>>>   }
>>>>
>>>>
>>>> Hope that helps!
>>>>
>>>> -David
>>>>
>>>>
>>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://n4.nabble.com/Problem-Running-quartz-app-RAR-JUnit-Test-tp979722p991998.html
>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>
> 
> 
> 

-- 
View this message in context: http://n4.nabble.com/Problem-Running-quartz-app-RAR-JUnit-Test-tp979722p1016620.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Mime
View raw message