Author: dblevins
Date: Fri Sep  7 16:11:44 2007
New Revision: 573751

URL: http://svn.apache.org/viewvc?rev=573751&view=rev
Log:
The required JAXB plumbing to add a type attribute to 
Container,Connector,Resource, and all items in openejb.xml.
A new service-types list attribute in the ServiceProvider element of the 
service-jar.xml file.
Niether really wired in yet.

Added:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ListAdapter.java
Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ServiceProvider.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Fri Sep  7 16:11:44 2007
@@ -239,10 +239,10 @@
         sys.facilities.intraVmServer = 
configureService(openejb.getProxyFactory(), ProxyFactoryInfo.class);
 
         for (Container declaration : openejb.getContainer()) {
-            Class<? extends ContainerInfo> infoClass = 
getContainerInfoType(declaration.getCtype());
+            Class<? extends ContainerInfo> infoClass = 
getContainerInfoType(declaration.getType());
 
             if (infoClass == null) {
-                throw new OpenEJBException("Unrecognized contianer type " + 
declaration.getCtype());
+                throw new OpenEJBException("Unrecognized contianer type " + 
declaration.getType());
             }
 
             ContainerInfo info = configureService(declaration, infoClass);

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
 Fri Sep  7 16:11:44 2007
@@ -50,4 +50,8 @@
     public String getProvider();
 
     public void setProvider(String provider);
+
+    public String getType();
+
+    public void setType(String type);
 }

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
 Fri Sep  7 16:11:44 2007
@@ -56,6 +56,8 @@
     protected String jar;
     @XmlAttribute
     protected String provider;
+    @XmlAttribute
+    protected String type;
 
 
     /**
@@ -141,5 +143,13 @@
      */
     public void setProvider(String value) {
         this.provider = value;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
     }
 }

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
 Fri Sep  7 16:11:44 2007
@@ -42,21 +42,20 @@
  * &lt;/complexType>
  * </pre>
  */
[EMAIL PROTECTED](XmlAccessType.FIELD)
[EMAIL PROTECTED](XmlAccessType.PROPERTY)
 @XmlType(name = "")
 @XmlRootElement(name = "Container")
 public class Container extends AbstractService {
-    @XmlAttribute(required = true)
-    protected String ctype;
 
     /**
      * Gets the value of the ctype property.
      *
      * @return possible object is
      *         [EMAIL PROTECTED] String }
+     * @deprecated use getType instead
      */
     public String getCtype() {
-        return ctype;
+        return null;
     }
 
     /**
@@ -65,7 +64,8 @@
      * @param value allowed object is
      *              [EMAIL PROTECTED] String }
      */
+    @XmlAttribute
     public void setCtype(String value) {
-        this.ctype = value;
+        setType(value);
     }
 }

Added: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ListAdapter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ListAdapter.java?rev=573751&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ListAdapter.java
 (added)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ListAdapter.java
 Fri Sep  7 16:11:44 2007
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.config.sys;
+
+import org.apache.openejb.util.Join;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ListAdapter extends XmlAdapter<String, List> {
+    public List unmarshal(String s) throws Exception {
+        String[] strings = s.split(", *");
+        return new ArrayList(Arrays.asList(strings));
+    }
+
+    public String marshal(List list) throws Exception {
+        return Join.join(", ", list);
+    }
+}

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
 Fri Sep  7 16:11:44 2007
@@ -17,11 +17,17 @@
  */
 package org.apache.openejb.config.sys;
 
+import static org.apache.openejb.util.Join.join;
 import org.apache.activemq.util.ByteArrayOutputStream;
+import org.apache.openejb.util.Join;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 import java.io.ByteArrayInputStream;
 import java.util.Properties;
+import java.util.List;
+import java.util.Collections;
+import java.util.Arrays;
+import java.util.ArrayList;
 
 /**
  * Converts a java.util.Properties object to a String in the XML file.
@@ -39,4 +45,5 @@
         properties.store(out, null);
         return new String(out.toByteArray());
     }
+
 }

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ServiceProvider.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ServiceProvider.java?rev=573751&r1=573750&r2=573751&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ServiceProvider.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ServiceProvider.java
 Fri Sep  7 16:11:44 2007
@@ -25,6 +25,8 @@
 import javax.xml.bind.annotation.XmlValue;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import java.util.Properties;
+import java.util.List;
+import java.util.ArrayList;
 
 
 /**
@@ -70,6 +72,9 @@
     protected String id;
     @XmlAttribute(name = "provider-type", required = true)
     protected String providerType;
+    @XmlAttribute(name = "service-types", required = false)
+    @XmlJavaTypeAdapter(PropertiesAdapter.class)
+    protected List<String> serviceTypes;
 
     /**
      * Gets the value of the properties property.
@@ -236,4 +241,10 @@
         this.providerType = value;
     }
 
+    public List<String> getServiceTypes() {
+        if (serviceTypes == null){
+            serviceTypes = new ArrayList<String>();
+        }
+        return serviceTypes;
+    }
 }


Reply via email to