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;
+    }
 }


Reply via email to