in webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java [74:140]
public Object invoke(Object instance, Method method, Object[] arguments) throws Throwable
{
if(method.getName().equals("closeJMSObject"))
{
close();
return null;
}
if (!ClassUtil.isObjectMethod(method.getName()))
{
Object cf = null;
if (this.jmsObject == null)
{
Class<?> jmsClazz = this.injectionClazz;
if (cf == null && Connection.class.isAssignableFrom(jmsClazz))
{
cf = createOrReturnQueueOrTopicConnection();
}
if (cf == null && Destination.class.isAssignableFrom(jmsClazz))
{
cf = createOrReturnQueueOrTopic();
}
if (cf == null && Session.class.isAssignableFrom(jmsClazz))
{
cf = createSession();
}
if (cf == null && MessageProducer.class.isAssignableFrom(jmsClazz))
{
cf = createMessageProducers();
}
if (cf == null && MessageConsumer.class.isAssignableFrom(jmsClazz))
{
cf = createMessageConsumers();
}
if (method.getName().equals("close"))
{
throw new UnsupportedOperationException("close method is not supported for JMS resources");
}
if (cf == null)
{
throw new WebBeansException("JMS Resource type is not correct!. Does not create JMS resource object to handle request");
}
this.jmsObject = cf;
}
else
{
cf = this.jmsObject;
}
return method.invoke(cf, arguments);
}
else
{
return method.invoke(instance, arguments);
}
}