You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2007/03/09 22:52:27 UTC
svn commit: r516573 - in /geronimo/server/trunk/modules:
geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/
geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/
Author: djencks
Date: Fri Mar 9 13:52:27 2007
New Revision: 516573
URL: http://svn.apache.org/viewvc?view=rev&rev=516573
Log:
GERONIMO-2837 Even if a resource-ref etc is already there, we need to check whether to add injection targets to it
Modified:
geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/ResourceAnnotationHelper.java
Modified: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java?view=diff&rev=516573&r1=516572&r2=516573
==============================================================================
--- geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java Fri Mar 9 13:52:27 2007
@@ -305,13 +305,25 @@
MessageDestinationRefType[] messageDestinationRefs = annotatedApp.getMessageDestinationRefArray();
for (MessageDestinationRefType messageDestinationRef : messageDestinationRefs) {
if (messageDestinationRef.getMessageDestinationRefName().getStringValue().trim().equals(resourceName)) {
- return false;
+ if (method != null || field != null) {
+ InjectionTargetType[] targets = messageDestinationRef.getInjectionTargetArray();
+ if (!hasTarget(method, field, targets)) {
+ configureInjectionTarget(messageDestinationRef.addNewInjectionTarget(), method, field);
+ }
+ }
+ return true;
}
}
ResourceEnvRefType[] ResourceEnvRefs = annotatedApp.getResourceEnvRefArray();
for (ResourceEnvRefType resourceEnvRefType : ResourceEnvRefs) {
if (resourceEnvRefType.getResourceEnvRefName().getStringValue().trim().equals(resourceName)) {
- return false;
+ if (method != null || field != null) {
+ InjectionTargetType[] targets = resourceEnvRefType.getInjectionTargetArray();
+ if (!hasTarget(method, field, targets)) {
+ configureInjectionTarget(resourceEnvRefType.addNewInjectionTarget(), method, field);
+ }
+ }
+ return true;
}
}
Modified: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java?view=diff&rev=516573&r1=516572&r2=516573
==============================================================================
--- geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java Fri Mar 9 13:52:27 2007
@@ -267,6 +267,12 @@
ResourceRefType[] resourceRefs = annotatedApp.getResourceRefArray();
for (ResourceRefType resourceRef : resourceRefs) {
if (resourceRef.getResRefName().getStringValue().trim().equals(resourceName)) {
+ if (method != null || field != null) {
+ InjectionTargetType[] targets = resourceRef.getInjectionTargetArray();
+ if (!hasTarget(method, field, targets)) {
+ configureInjectionTarget(resourceRef.addNewInjectionTarget(), method, field);
+ }
+ }
exists = true;
break;
}
Modified: geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/ResourceAnnotationHelper.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/ResourceAnnotationHelper.java?view=diff&rev=516573&r1=516572&r2=516573
==============================================================================
--- geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/ResourceAnnotationHelper.java (original)
+++ geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/annotation/ResourceAnnotationHelper.java Fri Mar 9 13:52:27 2007
@@ -238,6 +238,40 @@
return resourceType;
}
+ protected static String getInjectionJavaType(Method method, Field field) {
+ if (method != null) {
+ String injectionJavaType = method.getName().substring(3);
+ StringBuilder stringBuilder = new StringBuilder(injectionJavaType);
+ stringBuilder.setCharAt(0, Character.toLowerCase(stringBuilder.charAt(0)));
+ return stringBuilder.toString();
+ } else if (field != null) {
+ return field.getName();
+ } else {
+ throw new IllegalArgumentException("You must supply exactly one of Method, Field");
+ }
+ }
+
+ protected static String getInjectionClass(Method method, Field field) {
+ if (method != null) {
+ return method.getDeclaringClass().getName();
+ } else if (field != null) {
+ return field.getDeclaringClass().getName();
+ } else {
+ throw new IllegalArgumentException("You must supply exactly one of Method, Field");
+ }
+ }
+
+ protected static boolean hasTarget(Method method, Field field, InjectionTargetType[] targets) {
+ String injectionJavaType = getInjectionJavaType(method, field);
+ String injectionClass = getInjectionClass(method, field);
+ for (InjectionTargetType target : targets) {
+ if (injectionClass.equals(target.getInjectionTargetClass().getStringValue().trim())
+ && injectionJavaType.equals(target.getInjectionTargetName().getStringValue().trim())) {
+ return true;
+ }
+ }
+ return false;
+ }
/**
* Configure Injection Target
*
@@ -248,18 +282,9 @@
protected static void configureInjectionTarget(InjectionTargetType injectionTarget, Method method, Field field) {
log.debug("configureInjectionTarget(): Entry");
- String injectionJavaType = "";
- String injectionClass = null;
- if (method != null) {
- injectionJavaType = method.getName().substring(3);
- StringBuilder stringBuilder = new StringBuilder(injectionJavaType);
- stringBuilder.setCharAt(0, Character.toLowerCase(stringBuilder.charAt(0)));
- injectionJavaType = stringBuilder.toString();
- injectionClass = method.getDeclaringClass().getName();
- } else if (field != null) {
- injectionJavaType = field.getName();
- injectionClass = field.getDeclaringClass().getName();
- }
+ String injectionJavaType = getInjectionJavaType(method, field);
+ String injectionClass = getInjectionClass(method, field);
+
FullyQualifiedClassType qualifiedClass = injectionTarget.addNewInjectionTargetClass();
JavaIdentifierType javaType = injectionTarget.addNewInjectionTargetName();
qualifiedClass.setStringValue(injectionClass);