Author: rmannibucau
Date: Mon Aug 22 14:15:44 2011
New Revision: 1160272
URL: http://svn.apache.org/viewvc?rev=1160272&view=rev
Log:
adding missing fields to sun application.xml
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/SunApplication.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java?rev=1160272&r1=1160271&r2=1160272&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/SunConversion.java
Mon Aug 22 14:15:44 2011
@@ -19,6 +19,7 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.ApplicationClient;
import org.apache.openejb.jee.CmpField;
import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.EjbReference;
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.EntityBean;
import org.apache.openejb.jee.JndiReference;
@@ -61,6 +62,7 @@ import org.apache.openejb.jee.sun.EjbRef
import org.apache.openejb.jee.sun.EntityMapping;
import org.apache.openejb.jee.sun.Finder;
import org.apache.openejb.jee.sun.JaxbSun;
+import org.apache.openejb.jee.sun.MessageDestination;
import org.apache.openejb.jee.sun.MessageDestinationRef;
import org.apache.openejb.jee.sun.OneOneFinders;
import org.apache.openejb.jee.sun.PortInfo;
@@ -77,6 +79,8 @@ import org.apache.openejb.jee.sun.Web;
import org.apache.openejb.jee.sun.WebserviceEndpoint;
import org.apache.openejb.jee.sun.WsdlPort;
+import javax.ejb.Local;
+import javax.ejb.Remote;
import javax.xml.namespace.QName;
import java.io.ByteArrayInputStream;
import java.net.URL;
@@ -110,6 +114,122 @@ public class SunConversion implements Dy
}
}
}
+
+ for (ClientModule clientModule : appModule.getClientModules()) {
+ ApplicationClient applicationClient =
clientModule.getApplicationClient();
+ if (applicationClient == null) {
+ continue;
+ }
+
+ // map ejb-refs
+ Map<String,org.apache.openejb.jee.EjbRef> refMap =
applicationClient.getEjbRefMap();
+
+ // map ejb-ref jndi name declaration to deploymentId
+ for (EjbRef ref : sunApplication.getEjbRef()) {
+ if (ref.getJndiName() != null) {
+ String refName = ref.getEjbRefName();
+ refName = normalize(refName);
+ org.apache.openejb.jee.EjbRef ejbRef =
refMap.get(refName);
+
+ // try to match from lookup name
+ for (Map.Entry<String, org.apache.openejb.jee.EjbRef>
aRef : refMap.entrySet()) {
+ if
(refName.equals(aRef.getValue().getLookupName())) {
+ ejbRef = aRef.getValue();
+ break;
+ }
+ }
+
+ if (ejbRef == null) {
+ ejbRef = new org.apache.openejb.jee.EjbRef();
+ ejbRef.setEjbRefName(refName);
+ refMap.put(refName, ejbRef);
+ applicationClient.getEjbRef().add(ejbRef);
+ }
+ ejbRef.setMappedName(ref.getJndiName());
+ }
+ }
+
+ // map resource-env-refs and message-destination-refs
+ Map<String,JndiReference> resEnvMap = new
TreeMap<String,JndiReference>();
+ resEnvMap.putAll(applicationClient.getResourceEnvRefMap());
+
resEnvMap.putAll(applicationClient.getMessageDestinationRefMap());
+
+ for (ResourceRef ref : sunApplication.getResourceRef()) {
+ if (ref.getJndiName() != null) {
+ String refName = ref.getResRefName();
+ refName = normalize(refName);
+ JndiReference resEnvRef = resEnvMap.get(refName);
+ if (resEnvRef != null) {
+ resEnvRef.setMappedName(ref.getJndiName());
+ }
+ }
+ }
+ for (ResourceEnvRef ref : sunApplication.getResourceEnvRef()) {
+ if (ref.getJndiName() != null) {
+ String refName = ref.getResourceEnvRefName();
+ refName = normalize(refName);
+ JndiReference resEnvRef = resEnvMap.get(refName);
+ if (resEnvRef != null) {
+ resEnvRef.setMappedName(ref.getJndiName());
+ }
+ }
+ }
+ for (MessageDestinationRef ref :
sunApplication.getMessageDestinationRef()) {
+ if (ref.getJndiName() != null) {
+ String refName = ref.getMessageDestinationRefName();
+ refName = normalize(refName);
+ JndiReference resEnvRef = resEnvMap.get(refName);
+ if (resEnvRef != null) {
+ resEnvRef.setMappedName(ref.getJndiName());
+ }
+ }
+ }
+ for (MessageDestination destination :
sunApplication.getMessageDestination()) {
+ if (destination.getJndiName() != null) {
+ String name = destination.getMessageDestinationName();
+ name = normalize(name);
+ JndiReference ref = resEnvMap.get(name);
+ if (ref != null) {
+ ref.setMappedName(destination.getJndiName());
+ }
+ }
+ }
+
+ Map<String, ServiceRef> serviceRefMap =
applicationClient.getServiceRefMap();
+ for (org.apache.openejb.jee.sun.ServiceRef ref :
sunApplication.getServiceRef()) {
+ String refName = ref.getServiceRefName();
+ refName = normalize(refName);
+ ServiceRef serviceRef = serviceRefMap.get(refName);
+ if (serviceRef != null) {
+ Map<String,PortComponentRef> ports = new
TreeMap<String,PortComponentRef>();
+ for (PortComponentRef portComponentRef :
serviceRef.getPortComponentRef()) {
+
ports.put(portComponentRef.getServiceEndpointInterface(), portComponentRef);
+ }
+
+ for (PortInfo portInfo : ref.getPortInfo()) {
+ PortComponentRef portComponentRef =
ports.get(portInfo.getServiceEndpointInterface());
+ if (portComponentRef != null) {
+ WsdlPort wsdlPort = portInfo.getWsdlPort();
+ if (wsdlPort != null) {
+ QName qname = new
QName(wsdlPort.getNamespaceURI(), wsdlPort.getLocalpart());
+ portComponentRef.setQName(qname);
+ }
+ for (StubProperty stubProperty :
portInfo.getStubProperty()) {
+ String name = stubProperty.getName();
+ String value = stubProperty.getValue();
+
portComponentRef.getProperties().setProperty(name, value);
+ }
+ }
+ }
+
+ String wsdlOverride = ref.getWsdlOverride();
+ if (wsdlOverride != null && wsdlOverride.length() > 0)
{
+ String serviceId = extractServiceId(wsdlOverride);
+ serviceRef.setMappedName(serviceId);
+ }
+ }
+ }
+ }
}
for (EjbModule ejbModule : appModule.getEjbModules()) {
Modified:
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/SunApplication.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/SunApplication.java?rev=1160272&r1=1160271&r2=1160272&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/SunApplication.java
(original)
+++
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/SunApplication.java
Mon Aug 22 14:15:44 2011
@@ -16,13 +16,13 @@
*/
package org.apache.openejb.jee.sun;
-import java.util.ArrayList;
-import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
+import java.util.ArrayList;
+import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
@@ -30,7 +30,15 @@ import javax.xml.bind.annotation.XmlType
"passByReference",
"uniqueId",
"securityRoleMapping",
- "realm"
+ "realm",
+ "ejbRef",
+ "resourceRef",
+ "resourceEnvRef",
+ "serviceRef",
+ "messageDestinationRef",
+ "messageDestination",
+ "archiveName",
+ "compatibility"
})
@XmlRootElement(name = "sun-application")
public class SunApplication {
@@ -42,6 +50,21 @@ public class SunApplication {
@XmlElement(name = "security-role-mapping")
protected List<SecurityRoleMapping> securityRoleMapping;
protected String realm;
+ @XmlElement(name = "ejb-ref")
+ protected List<EjbRef> ejbRef;
+ @XmlElement(name = "resource-ref")
+ protected List<ResourceRef> resourceRef;
+ @XmlElement(name = "resource-env-ref")
+ protected List<ResourceEnvRef> resourceEnvRef;
+ @XmlElement(name = "service-ref")
+ protected List<ServiceRef> serviceRef;
+ @XmlElement(name = "message-destination-ref")
+ protected List<MessageDestinationRef> messageDestinationRef;
+ @XmlElement(name = "message-destination")
+ protected List<MessageDestination> messageDestination;
+ @XmlElement(name = "archive-name")
+ protected String archiveName;
+ protected String compatibility;
public List<Web> getWeb() {
if (web == null) {
@@ -80,4 +103,62 @@ public class SunApplication {
public void setRealm(String value) {
this.realm = value;
}
+
+ public List<EjbRef> getEjbRef() {
+ if (ejbRef == null) {
+ ejbRef = new ArrayList<EjbRef>();
+ }
+ return this.ejbRef;
+ }
+
+ public List<ResourceRef> getResourceRef() {
+ if (resourceRef == null) {
+ resourceRef = new ArrayList<ResourceRef>();
+ }
+ return this.resourceRef;
+ }
+
+ public List<ResourceEnvRef> getResourceEnvRef() {
+ if (resourceEnvRef == null) {
+ resourceEnvRef = new ArrayList<ResourceEnvRef>();
+ }
+ return this.resourceEnvRef;
+ }
+
+ public List<ServiceRef> getServiceRef() {
+ if (serviceRef == null) {
+ serviceRef = new ArrayList<ServiceRef>();
+ }
+ return this.serviceRef;
+ }
+
+ public List<MessageDestinationRef> getMessageDestinationRef() {
+ if (messageDestinationRef == null) {
+ messageDestinationRef = new ArrayList<MessageDestinationRef>();
+ }
+ return this.messageDestinationRef;
+ }
+
+ public List<MessageDestination> getMessageDestination() {
+ if (messageDestination == null) {
+ messageDestination = new ArrayList<MessageDestination>();
+ }
+ return this.messageDestination;
+ }
+
+ public String getArchiveName() {
+ return archiveName;
+ }
+
+ public void setArchiveName(String archiveName) {
+ this.archiveName = archiveName;
+ }
+
+ public String getCompatibility() {
+ return compatibility;
+ }
+
+ public void setCompatibility(String compatibility) {
+ this.compatibility = compatibility;
+ }
}