You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/09/13 01:32:43 UTC
svn commit: r1384157 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb...
Author: rmannibucau
Date: Wed Sep 12 23:32:42 2012
New Revision: 1384157
URL: http://svn.apache.org/viewvc?rev=1384157&view=rev
Log:
TOMEE-413 pojo-deployment to configure pojo (pre next-gen config)
Added:
openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PojoDeployment.java
- copied, changed from r1382650, openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/EjbDeployment.java
openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/_app-ctx.xml
- copied, changed from r1382650, openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/app-ctx.xml
openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/openejb-jar.xml
openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/resources.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.openejb-jar.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.resources.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.openejb-jar.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.resources.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.openejb-jar.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.resources.xml
Removed:
openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/app-ctx.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.app-ctx.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.app-ctx.xml
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.app-ctx.xml
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ApplyOpenejbJar.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java Wed Sep 12 23:32:42 2012
@@ -29,6 +29,7 @@ public class EjbJarInfo extends CommonIn
public final Properties properties = new Properties();
public String moduleName;
+ public String moduleId;
public URI moduleUri;
public String path;
@@ -55,6 +56,6 @@ public class EjbJarInfo extends CommonIn
public final JndiEncInfo moduleJndiEnc = new JndiEncInfo();
public BeansInfo beans;
- public Set<String> repositories = new TreeSet<String>();
public Set<String> mbeans = new TreeSet<String>();
+ public final List<IdPropertiesInfo> pojoConfigurations = new ArrayList<IdPropertiesInfo>();
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Wed Sep 12 23:32:42 2012
@@ -63,6 +63,7 @@ import org.apache.openejb.jee.jpa.unit.P
import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.jee.oejb3.PojoDeployment;
import org.apache.openejb.jpa.integration.MakeTxLookup;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.CircularReferencesException;
@@ -180,10 +181,17 @@ class AppInfoBuilder {
bean.containerId = d.getContainerId();
}
+
+ for (PojoDeployment pojoDeployment : ejbModule.getOpenejbJar().getPojoDeployment()) {
+ final IdPropertiesInfo info = new IdPropertiesInfo();
+ info.id = pojoDeployment.getClassName();
+ info.properties.putAll(pojoDeployment.getProperties());
+ ejbJarInfo.pojoConfigurations.add(info);
+ }
+
ejbJarInfo.validationInfo = ValidatorBuilder.getInfo(ejbModule.getValidationConfig());
ejbJarInfo.portInfos.addAll(configureWebservices(ejbModule.getWebservices()));
ejbJarInfo.uniqueId = ejbModule.getUniqueId();
- ejbJarInfo.repositories = ejbModule.getRepositories();
configureWebserviceSecurity(ejbJarInfo, ejbModule);
ejbJarInfos.put(ejbModule, ejbJarInfo);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ApplyOpenejbJar.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ApplyOpenejbJar.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ApplyOpenejbJar.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ApplyOpenejbJar.java Wed Sep 12 23:32:42 2012
@@ -17,15 +17,15 @@
package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.EjbRef;
import org.apache.openejb.jee.EnterpriseBean;
-import org.apache.openejb.jee.ResourceRef;
-import org.apache.openejb.jee.ResourceEnvRef;
import org.apache.openejb.jee.MessageDestinationRef;
-import org.apache.openejb.jee.EjbRef;
-import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.ResourceEnvRef;
+import org.apache.openejb.jee.ResourceRef;
import org.apache.openejb.jee.oejb3.EjbDeployment;
-import org.apache.openejb.jee.oejb3.ResourceLink;
import org.apache.openejb.jee.oejb3.EjbLink;
+import org.apache.openejb.jee.oejb3.ResourceLink;
import java.util.Map;
@@ -86,6 +86,7 @@ public class ApplyOpenejbJar implements
}
}
+
return appModule;
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java Wed Sep 12 23:32:42 2012
@@ -142,7 +142,8 @@ public class EjbJarInfoBuilder {
EjbJarInfo ejbJar = new EjbJarInfo();
ejbJar.path = jar.getJarLocation();
ejbJar.moduleName = jar.getModuleId();
- ejbJar.moduleUri =jar.getModuleUri();
+ ejbJar.moduleUri = jar.getModuleUri();
+ ejbJar.moduleId = jar.getModuleId();
ejbJar.watchedResources.addAll(jar.getWatchedResources());
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java Wed Sep 12 23:32:42 2012
@@ -18,15 +18,12 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.Beans;
import org.apache.openejb.jee.EjbJar;
-import org.apache.openejb.jee.NamedModule;
import org.apache.openejb.jee.Webservices;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.xbean.finder.IAnnotationFinder;
import java.io.File;
import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicReference;
@@ -52,8 +49,6 @@ public class EjbModule extends Module im
private ClientModule clientModule;
private ID id;
- private final Set<String> repositories = new TreeSet<String>();
-
public EjbModule(EjbJar ejbJar) {
this(Thread.currentThread().getContextClassLoader(), null, ejbJar, null);
}
@@ -173,10 +168,6 @@ public class EjbModule extends Module im
return watchedResources;
}
- public Set<String> getRepositories() {
- return repositories;
- }
-
@Override
public String toString() {
return "EjbModule{" +
Modified: openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java (original)
+++ openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java Wed Sep 12 23:32:42 2012
@@ -36,7 +36,7 @@ import java.util.Properties;
@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(propOrder = {"moduleName", "properties","ejbDeployment"})
+@XmlType(propOrder = {"moduleName", "properties","ejbDeployment", "pojoDeployment"})
@XmlRootElement(name = "openejb-jar")
public class OpenejbJar implements NamedModule {
@XmlElement(name = "properties")
@@ -49,6 +49,9 @@ public class OpenejbJar implements Named
@XmlElement(name = "ejb-deployment", required = true)
protected List<EjbDeployment> ejbDeployment;
+ @XmlElement(name = "pojo-deployment")
+ protected List<PojoDeployment> pojoDeployment;
+
public List<EjbDeployment> getEjbDeployment() {
if (ejbDeployment == null) {
ejbDeployment = new ArrayList<EjbDeployment>();
@@ -56,6 +59,13 @@ public class OpenejbJar implements Named
return this.ejbDeployment;
}
+ public List<PojoDeployment> getPojoDeployment() {
+ if (pojoDeployment == null) {
+ pojoDeployment = new ArrayList<PojoDeployment>();
+ }
+ return pojoDeployment;
+ }
+
public Map<String,EjbDeployment> getDeploymentsById(){
Map<String,EjbDeployment> map = new LinkedHashMap<String,EjbDeployment>();
for (EjbDeployment deployment : getEjbDeployment()) {
Copied: openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PojoDeployment.java (from r1382650, openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/EjbDeployment.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PojoDeployment.java?p2=openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PojoDeployment.java&p1=openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/EjbDeployment.java&r1=1382650&r2=1384157&rev=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/EjbDeployment.java (original)
+++ openejb/trunk/openejb/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PojoDeployment.java Wed Sep 12 23:32:42 2012
@@ -16,8 +16,6 @@
*/
package org.apache.openejb.jee.oejb3;
-import org.apache.openejb.jee.EnterpriseBean;
-
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
@@ -27,155 +25,28 @@ import javax.xml.bind.annotation.XmlRoot
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.LinkedHashMap;
-import java.util.Iterator;
import java.util.Properties;
@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(propOrder = {"jndi","ejbLink", "resourceLink", "query", "properties"})
-@XmlRootElement(name = "ejb-deployment")
-public class EjbDeployment {
-
- @XmlElement(name = "jndi", required = true)
- protected List<Jndi> jndi;
-
- @XmlElement(name = "ejb-link", required = true)
- protected List<EjbLink> ejbLink;
-
- @XmlElement(name = "resource-link", required = true)
- protected List<ResourceLink> resourceLink;
+@XmlType(propOrder = { "properties" })
+@XmlRootElement(name = "pojo-deployment")
+public class PojoDeployment {
- @XmlElement(required = true)
- protected List<Query> query;
-
- @XmlAttribute(name = "container-id")
- protected String containerId;
-
- @XmlAttribute(name = "deployment-id")
+ @XmlAttribute(name = "class-name")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
- protected String deploymentId;
-
- @XmlAttribute(name = "ejb-name")
- protected String ejbName;
+ protected String className;
@XmlElement(name = "properties")
@XmlJavaTypeAdapter(PropertiesAdapter.class)
protected Properties properties;
-
- public EjbDeployment() {
- }
-
- public EjbDeployment(String containerId, String deploymentId, String ejbName) {
- this.containerId = containerId;
- this.deploymentId = deploymentId;
- this.ejbName = ejbName;
- }
- public EjbDeployment(EnterpriseBean bean) {
- this.deploymentId = bean.getEjbName();
- this.ejbName = bean.getEjbName();
- }
-
- public List<EjbLink> getEjbLink() {
- if (ejbLink == null) {
- ejbLink = new ArrayList<EjbLink>();
- }
- return this.ejbLink;
- }
-
- public List<Jndi> getJndi() {
- if (jndi == null){
- jndi = new ArrayList<Jndi>();
- }
- return jndi;
- }
-
- public List<ResourceLink> getResourceLink() {
- if (resourceLink == null) {
- resourceLink = new ArrayList<ResourceLink>();
- }
- return this.resourceLink;
- }
-
- public List<Query> getQuery() {
- if (query == null) {
- query = new ArrayList<Query>();
- }
- return this.query;
- }
-
- public ResourceLink getResourceLink(String refName) {
- return getResourceLinksMap().get(refName);
- }
-
- public Map<String,ResourceLink> getResourceLinksMap(){
- Map<String,ResourceLink> map = new LinkedHashMap<String,ResourceLink>();
- for (ResourceLink link : getResourceLink()) {
- map.put(link.getResRefName(), link);
- }
- return map;
+ public String getClassName() {
+ return className;
}
- public EjbLink getEjbLink(String refName) {
- return getEjbLinksMap().get(refName);
- }
-
- public Map<String,EjbLink> getEjbLinksMap(){
- Map<String,EjbLink> map = new LinkedHashMap<String,EjbLink>();
- for (EjbLink link : getEjbLink()) {
- map.put(link.getEjbRefName(), link);
- }
- return map;
- }
-
-
- public String getContainerId() {
- return containerId;
- }
-
- public void setContainerId(String value) {
- this.containerId = value;
- }
-
- public String getDeploymentId() {
- return deploymentId;
- }
-
- public void setDeploymentId(String value) {
- this.deploymentId = value;
- }
-
- public String getEjbName() {
- return ejbName;
- }
-
- public void setEjbName(String value) {
- this.ejbName = value;
- }
-
- public void addResourceLink(ResourceLink resourceLink) {
- getResourceLink().add(resourceLink);
- }
-
- public void removeResourceLink(String resRefName) {
- for (Iterator<ResourceLink> iterator = resourceLink.iterator(); iterator.hasNext();) {
- ResourceLink link = iterator.next();
- if (resRefName.equals(link.getResRefName())) {
- iterator.remove();
- }
- }
- }
-
- public void addEjbLink(EjbLink ejbLink) {
- getEjbLink().add(ejbLink);
- }
-
- public void addQuery(Query query) {
- getQuery().add(query);
+ public void setClassName(String className) {
+ this.className = className;
}
public Properties getProperties() {
@@ -184,8 +55,4 @@ public class EjbDeployment {
}
return properties;
}
-
- public void addProperty(String key, String value) {
- getProperties().setProperty(key, value);
- }
}
Copied: openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/_app-ctx.xml (from r1382650, openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/app-ctx.xml)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/_app-ctx.xml?p2=openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/_app-ctx.xml&p1=openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/app-ctx.xml&r1=1382650&r2=1384157&rev=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/app-ctx.xml (original)
+++ openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/_app-ctx.xml Wed Sep 12 23:32:42 2012
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- this file show the discussed config for next release, it doesn't work today -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
Added: openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/openejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/openejb-jar.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/openejb-jar.xml (added)
+++ openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/openejb-jar.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+ <ejb-deployment ejb-name="CalculatorBean"> <!-- configure the bean, values are in resources.xml -->
+ <properties>
+ cxf.jaxws.in-interceptors = wss4j
+ </properties>
+ </ejb-deployment>
+</openejb-jar>
Added: openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/resources.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/resources.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/resources.xml (added)
+++ openejb/trunk/openejb/examples/webservice-ws-with-resources-config/src/main/resources/META-INF/resources.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+<resources>
+ <!-- the interceptors -->
+ <Service id="wss4j" class-name="org.apache.openejb.server.cxf.config.WSS4JInInterceptorFactory" factory-name="create">
+ action = UsernameToken
+ passwordType = PasswordText
+ passwordCallbackClass = org.superbiz.ws.security.PasswordCallbackHandler
+ </Service>
+</resources>
\ No newline at end of file
Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java Wed Sep 12 23:32:42 2012
@@ -109,6 +109,7 @@ public class RestDeploymentTest {
appModule.setModuleId("rest");
appModule.getWebModules().add(webModule);
appModule.getEjbModules().add(new EjbModule(ejbJar));
+ appModule.getEjbModules().iterator().next().setModuleId(webModule.getModuleId());
annotationDeployer.deploy(appModule);
AppInfo appInfo = factory.configureApplication(appModule);
@@ -135,8 +136,8 @@ public class RestDeploymentTest {
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.className = HttpServerFactory.class.getName();
serviceInfo.properties = new Properties();
- serviceInfo.properties.setProperty("port", "-1");
- serviceInfo.properties.setProperty("bind", "foo");
+ serviceInfo.properties.setProperty("port", "4204");
+ serviceInfo.properties.setProperty("bind", "localhost");
OpenEjbConfiguration configuration = new OpenEjbConfiguration();
SystemInstance.get().setComponent(OpenEjbConfiguration.class, configuration);
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.openejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.openejb-jar.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.openejb-jar.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.openejb-jar.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+ <ejb-deployment ejb-name="CustomizedService">
+ <properties>
+ cxf.jaxrs.providers = configured
+ </properties>
+ </ejb-deployment>
+</openejb-jar>
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.resources.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.resources.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.resources.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom-config.resources.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+<resources>
+ <Service class-name="org.apache.openejb.server.cxf.rs.CustomProviderWithConfigTest$ConfigurableProvider" id="configured">
+ str = done!
+ </Service>
+</resources>
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.openejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.openejb-jar.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.openejb-jar.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.openejb-jar.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+ <ejb-deployment ejb-name="CustomSpecificService">
+ <properties>
+ cxf.jaxrs.providers = constant
+ </properties>
+ </ejb-deployment>
+ <ejb-deployment ejb-name="CustomService">
+ <properties>
+ cxf.jaxrs.providers = reverse
+ </properties>
+ </ejb-deployment>
+</openejb-jar>
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.resources.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.resources.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.resources.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/custom.resources.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+<resources>
+ <Service class-name="org.apache.openejb.server.cxf.rs.CustomProviderTest$ConstantProvider" id="constant" />
+ <Service class-name="org.apache.openejb.server.cxf.rs.CustomProviderTest$ReverseProvider" id="reverse" />
+</resources>
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.openejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.openejb-jar.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.openejb-jar.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.openejb-jar.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+ <ejb-deployment ejb-name="RestWithExceptionMapper">
+ <properties>
+ cxf.jaxrs.providers = em
+ </properties>
+ </ejb-deployment>
+ <pojo-deployment ejb-name="org.Foo">
+ <properties>
+ providers4 = em2
+ </properties>
+ </pojo-deployment>
+</openejb-jar>
Added: openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.resources.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.resources.xml?rev=1384157&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.resources.xml (added)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/test/resources/META-INF/em.resources.xml Wed Sep 12 23:32:42 2012
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+<resources>
+ <Service class-name="org.apache.openejb.server.cxf.rs.CustomExceptionMapperTest$EM" id="em" />
+</resources>
Modified: openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Wed Sep 12 23:32:42 2012
@@ -24,6 +24,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.IdPropertiesInfo;
import org.apache.openejb.assembler.classic.ServiceInfo;
import org.apache.openejb.assembler.classic.WebAppInfo;
import org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
@@ -130,6 +131,7 @@ public abstract class RESTService implem
boolean useApp = false;
String appPrefix = webApp.contextRoot;
+ Collection<IdPropertiesInfo> pojoConfigurations = null; // done lazily
for (String app : webApp.restApplications) { // normally a unique one but we support more
appPrefix = webApp.contextRoot; // if multiple application classes reinit it
if (!appPrefix.endsWith("/")) {
@@ -165,8 +167,9 @@ public abstract class RESTService implem
// no more a singleton if the ejb is not a singleton...but it is a weird case
deployEJB(appPrefix, restEjbs.get(o.getClass().getName()).context, additionalProviders, appInfo.services);
} else {
+ pojoConfigurations = findPojoConfig(pojoConfigurations, appInfo, webApp);
deploySingleton(appPrefix, o, appInstance, classLoader, additionalProviders,
- new ServiceConfiguration(PojoUtil.findConfiguration(appInfo.pojoConfigurations, o.getClass().getName()), appInfo.services));
+ new ServiceConfiguration(PojoUtil.findConfiguration(pojoConfigurations, o.getClass().getName()), appInfo.services));
}
}
Set<Class<?>> classes = appInstance.getClasses();
@@ -174,8 +177,9 @@ public abstract class RESTService implem
if (hasEjbAndIsNotAManagedBean(restEjbs, clazz.getName())) {
deployEJB(appPrefix, restEjbs.get(clazz.getName()).context, additionalProviders, appInfo.services);
} else {
+ pojoConfigurations = findPojoConfig(pojoConfigurations, appInfo, webApp);
deployPojo(appPrefix, clazz, appInstance, classLoader, injections, context, owbCtx, additionalProviders,
- new ServiceConfiguration(PojoUtil.findConfiguration(appInfo.pojoConfigurations, clazz.getName()), appInfo.services));
+ new ServiceConfiguration(PojoUtil.findConfiguration(pojoConfigurations, clazz.getName()), appInfo.services));
}
}
@@ -199,9 +203,10 @@ public abstract class RESTService implem
} else {
try {
Class<?> loadedClazz = classLoader.loadClass(clazz);
+ pojoConfigurations = findPojoConfig(pojoConfigurations, appInfo, webApp);
deployPojo(appPrefix, loadedClazz, null, classLoader, injections, context, owbCtx,
additionalProviders,
- new ServiceConfiguration(PojoUtil.findConfiguration(appInfo.pojoConfigurations, loadedClazz.getName()), appInfo.services));
+ new ServiceConfiguration(PojoUtil.findConfiguration(pojoConfigurations, loadedClazz.getName()), appInfo.services));
} catch (ClassNotFoundException e) {
throw new OpenEJBRestRuntimeException("can't find class " + clazz, e);
}
@@ -212,6 +217,17 @@ public abstract class RESTService implem
restEjbs.clear();
}
+ protected Collection<IdPropertiesInfo> findPojoConfig(final Collection<IdPropertiesInfo> pojoConfigurations, final AppInfo appInfo, final WebAppInfo webApp) {
+ if (pojoConfigurations == null) {
+ for (EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
+ if (ejbJarInfo.moduleId.equals(webApp.moduleId)) {
+ return ejbJarInfo.pojoConfigurations;
+ }
+ }
+ }
+ return pojoConfigurations;
+ }
+
private boolean hasEjbAndIsNotAManagedBean(final Map<String, EJBRestServiceInfo> restEjbs, final String clazz) {
return restEjbs.containsKey(clazz) && !BeanType.MANAGED.equals(restEjbs.get(clazz).context.getComponentType());
}
@@ -367,21 +383,19 @@ public abstract class RESTService implem
if (webCtx.startsWith("/")) {
webCtx = webCtx.substring(1);
}
- if (webCtx.contains("/")) {
- webCtx = webCtx.substring(0, webCtx.indexOf("/"));
- }
// get root path ending with /
String base;
try {
final URL url = new URL(address);
- base = url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + "/";
- } catch (MalformedURLException e) {
- int idx = address.indexOf(webCtx);
- base = address.substring(0, idx);
- if (!base.endsWith("/") && !webCtx.startsWith("/")) {
- base = base + '/';
+ final int port = url.getPort();
+ if (port > 0) {
+ return base = url.getProtocol() + "://" + url.getHost() + ":" + port + "/" + webCtx;
+ } else {
+ base = url.getProtocol() + "://" + url.getHost() + "/" + webCtx;
}
+ } catch (MalformedURLException e) {
+ throw new OpenEJBRestRuntimeException("bad url: " + address, e);
}
return base + webCtx;
Modified: openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1384157&r1=1384156&r2=1384157&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java (original)
+++ openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Wed Sep 12 23:32:42 2012
@@ -23,6 +23,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.IdPropertiesInfo;
import org.apache.openejb.assembler.classic.PortInfo;
import org.apache.openejb.assembler.classic.ServletInfo;
import org.apache.openejb.assembler.classic.SingletonBeanInfo;
@@ -327,6 +328,7 @@ public abstract class WsService implemen
logger.error("Invalid ejb jar location " + webApp.path, e);
}
+ Collection<IdPropertiesInfo> pojoConfiguration = null; // lazy init
for (ServletInfo servlet : webApp.servlets) {
if (servlet.servletName == null) {
continue;
@@ -346,9 +348,18 @@ public abstract class WsService implemen
PortData port = WsBuilder.toPortData(portInfo, injections, moduleBaseUrl, classLoader);
+ if (pojoConfiguration == null) {
+ for (EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
+ if (ejbJarInfo.moduleName.equals(webApp.moduleId)) {
+ pojoConfiguration = ejbJarInfo.pojoConfigurations;
+ break;
+ }
+ }
+ }
+
HttpListener container = createPojoWsContainer(moduleBaseUrl, port, portInfo.serviceLink,
target, context, webApp.contextRoot, bindings,
- new ServiceConfiguration(PojoUtil.findConfiguration(appInfo.pojoConfigurations, target.getName()), appInfo.services));
+ new ServiceConfiguration(PojoUtil.findConfiguration(pojoConfiguration, target.getName()), appInfo.services));
if (wsRegistry != null) {
// give servlet a reference to the webservice container