sorry, where on trunk?

Regardless, I played around with this and managed to get it working. 

However I have stumbled on something a little strange. 

Basically when the exception mappers are defined at the @Config level, any 
@EJB's within the rest class, that is being tested, do not get injected.

To explain a little better, here (on pastebin) we have to classes. They are 
practically identical except for where the ExceptionMapper classes are loaded, 
one at the @Config level and one within the @Module level defined on the 
EjbDeployment of the OpenejbJar.

They both pass the test, which basically means that that the exception mapping 
was setup correctly. However the second class (ExceptionMapperAtConfigTest) 
passes on the basis that the service marked @EJB is not injected i.e null. So 
basically we want this test to fail.

ExceptionMapperAtDeploymentTest: http://pastebin.com/aWQjjePD

ExceptionMapperAtConfigTest: http://pastebin.com/GFcKYWzs


On a side note, to have the exception mappers picked up at the @Config level, 
you have to have the '@Classes({ GoodExceptionMapper.class, 
BadExceptionMapper.class })' annotation defined on the method. I have no idea 
why??



On 10 May 2013, at 17:35, Romain Manni-Bucau <[email protected]> wrote:

> Hi
> 
> on trunk it is set once by jaxrs application only which is far ore easier
> to handle
> 
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
> 
> 
> 
> 2013/5/10 Chris.Christo <[email protected]>
> 
>> Hi
>> 
>> Hey I was just wondering if I can set my exception mappers in the
>> properties part of my test under the @Configuration, rather than having to
>> apply an exception mapper to each EjbDeployment of the OpenejbJar.
>> 
>> So right now I have something like this link:
>> 
>> 
>> https://svn.apache.org/repos/asf/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CheckedExceptionMapperTest.java
>> 
>> To pick out the specific point in the link:
>> 
>> @Module
>> @Classes({ ExampleExceptionMapper.class })
>> public EjbModule module() {
>>    final SingletonBean bean = new SingletonBean(ExampleRest.class);
>>    bean.setRestService(true);
>> 
>>    final EjbJar ejbJar = new EjbJar("beans");
>>    ejbJar.addEnterpriseBean(bean);
>> 
>>    final OpenejbJar openejbJar = new OpenejbJar();
>>    openejbJar.addEjbDeployment(new EjbDeployment(bean));
>> 
>>    final Properties properties =
>> openejbJar.getEjbDeployment().iterator().next().getProperties();
>>    properties.setProperty("cxf.jaxrs.providers",
>> "org.apache.openejb.server.cxf.rs.CheckedExceptionMapperTest$ExampleExceptionMapper");
>> 
>>    final EjbModule module = new EjbModule(ejbJar);
>>    module.setOpenejbJar(openejbJar);
>> 
>>    return module;
>> }
>> 
>> So here I define the exception mapper (ExampleExceptionMapper) on the
>> properties of the specific EjbDeployment of the ExampleRest class in the
>> OpenejbJar.
>> 
>> Is there a way to just define it in the global properties with
>> @Configuration? I've tried something like this to no avail:
>> 
>> @Configuration
>> public Properties config() {
>>        final Properties props = new Properties();
>>        ...
>>        props.setProperty("openejb.cxf.jax-rs.providers",
>> ExampleExceptionMapper.class.getName());
>>        props.setProperty("openejb.jaxrs.providers.auto", "true");
>>        ...
>>        return props;
>> }
>> 
>> 
>> 
>> Thanks,
>> 
>> Chris
>> 
>> 

Reply via email to