Author: richard.opalka(a)jboss.com
Date: 2009-04-28 01:47:58 -0400 (Tue, 28 Apr 2009)
New Revision: 9884
Modified:
common/trunk/pom.xml
common/trunk/src/main/java/org/jboss/wsf/common/javax/JavaxAnnotationHelper.java
Log:
[JBWS-2074][JBWS-2631] fixing helper
Modified: common/trunk/pom.xml
===================================================================
--- common/trunk/pom.xml 2009-04-28 05:42:12 UTC (rev 9883)
+++ common/trunk/pom.xml 2009-04-28 05:47:58 UTC (rev 9884)
@@ -26,7 +26,7 @@
<!-- Properties -->
<properties>
- <jbossws.spi.version>1.1.1.GA</jbossws.spi.version>
+ <jbossws.spi.version>1.1.2-SNAPSHOT</jbossws.spi.version>
<jboss.common.version>2.2.7.GA</jboss.common.version>
<jboss.microcontainer.version>1.0.2</jboss.microcontainer.version>
</properties>
Modified:
common/trunk/src/main/java/org/jboss/wsf/common/javax/JavaxAnnotationHelper.java
===================================================================
---
common/trunk/src/main/java/org/jboss/wsf/common/javax/JavaxAnnotationHelper.java 2009-04-28
05:42:12 UTC (rev 9883)
+++
common/trunk/src/main/java/org/jboss/wsf/common/javax/JavaxAnnotationHelper.java 2009-04-28
05:47:58 UTC (rev 9884)
@@ -26,7 +26,7 @@
import java.util.Collection;
import javax.annotation.Resource;
-import javax.naming.InitialContext;
+import javax.naming.Context;
import javax.xml.ws.WebServiceContext;
import org.jboss.logging.Logger;
@@ -49,7 +49,6 @@
{
private static final Logger LOG = Logger.getLogger(JavaxAnnotationHelper.class);
- private static final String JNDI_PREFIX = "java:comp/env/";
private static final ClassProcessor<Method> POST_CONSTRUCT_METHOD_FINDER = new
PostConstructMethodFinder();
private static final ClassProcessor<Method> PRE_DESTROY_METHOD_FINDER = new
PreDestroyMethodFinder();
private static final ClassProcessor<Method> RESOURCE_METHOD_FINDER = new
ResourceMethodFinder(WebServiceContext.class, false);
@@ -80,47 +79,48 @@
{
if (instance == null)
throw new IllegalArgumentException("Object instance cannot be null");
+
+ if (injections == null)
+ return;
Class<?> instanceClass = instance.getClass();
- InitialContext ctx = new InitialContext();
+ // inject descriptor driven annotations
+ final Context ctx = injections.getContext();
+ final String envPrefix = injections.getContextRoot();
- // inject descriptor driven annotations
- if (injections != null)
+ Collection<InjectionMetaData> injectionMDs =
injections.getInjectionsMetaData(instanceClass);
+ for (InjectionMetaData injectionMD : injectionMDs)
{
- Collection<InjectionMetaData> injectionMDs =
injections.getInjectionsMetaData(instanceClass);
- for (InjectionMetaData injectionMD : injectionMDs)
+ Method method = getMethod(injectionMD, instanceClass);
+ if (method != null)
{
- Method method = getMethod(injectionMD, instanceClass);
- if (method != null)
+ try
{
+ inject(instance, method, injectionMD.getEnvEntryName(), ctx, envPrefix);
+ }
+ catch (Exception e)
+ {
+ LOG.warn("Cannot inject method (descriptor driven injection): "
+ injectionMD, e);
+ }
+ }
+ else
+ {
+ Field field = getField(injectionMD, instanceClass);
+ if (field != null)
+ {
try
{
- inject(instance, method, injectionMD.getEnvEntryName(), ctx);
+ inject(instance, field, injectionMD.getEnvEntryName(), ctx,
envPrefix);
}
catch (Exception e)
{
- LOG.warn("Cannot inject method (descriptor driven injection):
" + injectionMD, e);
+ LOG.warn("Cannot inject field (descriptor driven injection):
" + injectionMD, e);
}
}
else
{
- Field field = getField(injectionMD, instanceClass);
- if (field != null)
- {
- try
- {
- inject(instance, field, injectionMD.getEnvEntryName(), ctx);
- }
- catch (Exception e)
- {
- LOG.warn("Cannot inject field (descriptor driven injection):
" + injectionMD, e);
- }
- }
- else
- {
- LOG.warn("Cannot find injection target for: " +
injectionMD);
- }
+ LOG.warn("Cannot find injection target for: " + injectionMD);
}
}
}
@@ -131,7 +131,7 @@
{
try
{
- inject(instance, method, method.getAnnotation(Resource.class).name(), ctx);
+ inject(instance, method, method.getAnnotation(Resource.class).name(), ctx,
envPrefix);
}
catch (Exception e)
{
@@ -145,7 +145,7 @@
{
try
{
- inject(instance, field, field.getAnnotation(Resource.class).name(), ctx);
+ inject(instance, field, field.getAnnotation(Resource.class).name(), ctx,
envPrefix);
}
catch (Exception e)
{
@@ -250,18 +250,19 @@
/**
* Injects @Resource annotated method.
*
+ * @param instance to invoke method on
* @param method to invoke
- * @param instance to invoke method on
* @param resourceName resource name
* @param cxt JNDI context
+ * @param envPrefix JNDI environment prefix
* @throws Exception if any error occurs
* @see org.jboss.wsf.common.javax.finders.ResourceMethodFinder
*/
- private static void inject(final Object instance, final Method method, final String
resourceName, final InitialContext ctx)
+ private static void inject(final Object instance, final Method method, final String
resourceName, final Context ctx, final String envPrefix)
throws Exception
{
final String beanName = convertToBeanName(method.getName());
- final Object value = ctx.lookup(getName(resourceName, beanName));
+ final Object value = ctx.lookup(envPrefix + getName(resourceName, beanName));
LOG.debug("Injecting method: " + method);
invokeMethod(instance, method, new Object[] {value});
@@ -274,14 +275,15 @@
* @param instance to modify field on
* @param resourceName resource name
* @param cxt JNDI context
+ * @param envPrefix JNDI environment prefix
* @throws Exception if any error occurs
* @see org.jboss.wsf.common.javax.finders.ResourceFieldFinder
*/
- private static void inject(final Object instance, final Field field, final String
resourceName, final InitialContext ctx)
+ private static void inject(final Object instance, final Field field, final String
resourceName, final Context ctx, final String envPrefix)
throws Exception
{
final String beanName = field.getName();
- final Object value = ctx.lookup(getName(resourceName, beanName));
+ final Object value = ctx.lookup(envPrefix + getName(resourceName, beanName));
LOG.debug("Injecting field: " + field);
setField(instance, field, value);
@@ -307,7 +309,7 @@
*/
private static String getName(final String resourceName, final String beanName)
{
- return JNDI_PREFIX + (resourceName.length() > 0 ? resourceName : beanName);
+ return resourceName.length() > 0 ? resourceName : beanName;
}
/**