Modified: 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java
 Thu Aug 16 13:02:53 2012
@@ -28,19 +28,17 @@ import org.apache.cxf.jaxws.handler.soap
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.transport.http.HTTPTransportFactory;
 import org.apache.openejb.BeanContext;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.core.webservices.JaxWsUtils;
 import org.apache.openejb.core.webservices.PortData;
 import org.apache.openejb.server.cxf.ConfigureCxfSecurity;
 import org.apache.openejb.server.cxf.CxfEndpoint;
-import org.apache.openejb.server.cxf.CxfService;
 import org.apache.openejb.server.cxf.CxfServiceConfiguration;
 import org.apache.openejb.server.cxf.JaxWsImplementorInfoImpl;
 
 import javax.xml.ws.WebServiceException;
-import java.util.HashMap;
+import java.util.Collection;
 import java.util.List;
-import java.util.Map;
-import java.util.Properties;
 
 /**
  * A web service endpoint which invokes an EJB container.
@@ -48,8 +46,8 @@ import java.util.Properties;
 public class EjbEndpoint extends CxfEndpoint {
     private final BeanContext beanContext;
 
-    public EjbEndpoint(Bus bus, PortData portData, BeanContext beanContext, 
HTTPTransportFactory httpTransportFactory) {
-        super(bus, portData, beanContext.getJndiEnc(), 
beanContext.getBeanClass(), httpTransportFactory);
+    public EjbEndpoint(Bus bus, PortData portData, BeanContext beanContext, 
HTTPTransportFactory httpTransportFactory, Collection<ServiceInfo> services) {
+        super(bus, portData, beanContext.getJndiEnc(), 
beanContext.getBeanClass(), httpTransportFactory, services);
         this.beanContext = beanContext;
 
         String bindingURI = JaxWsUtils.getBindingURI(portData.getBindingID());
@@ -69,25 +67,6 @@ public class EjbEndpoint extends CxfEndp
         return (Class) this.implementor;
     }
 
-    @Override
-    protected Map<String, Object> getEndpointProperties() {
-        final Map<String, Object> map = new HashMap<String, Object>();
-        for (Map.Entry<Object, Object> entry : 
port.getProperties().entrySet()) {
-            map.put(entry.getKey().toString(), entry.getValue());
-        }
-        return map;
-    }
-
-    @Override
-    protected Properties getFeaturesProperties() {
-        return port.getProperties();
-    }
-
-    @Override
-    protected String getFeaturePropertyKey() {
-        return CxfService.OPENEJB_JAXWS_CXF_FEATURES;
-    }
-
     protected void init() {
         // configure handlers
         try {

Modified: 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
 Thu Aug 16 13:02:53 2012
@@ -19,19 +19,22 @@ package org.apache.openejb.server.cxf.ej
 
 import org.apache.cxf.Bus;
 import org.apache.openejb.BeanContext;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.core.webservices.PortData;
 import org.apache.openejb.server.cxf.CxfWsContainer;
 
+import java.util.Collection;
+
 public class EjbWsContainer extends CxfWsContainer {
     private final BeanContext beanContext;
 
-    public EjbWsContainer(Bus bus, PortData port, BeanContext beanContext) {
-        super(bus, port);
+    public EjbWsContainer(Bus bus, PortData port, BeanContext beanContext, 
Collection<ServiceInfo> services) {
+        super(bus, port, services);
         if (beanContext == null) throw new 
NullPointerException("deploymentInfo is null");
         this.beanContext = beanContext;
     }
 
     protected EjbEndpoint createEndpoint() {
-       return new EjbEndpoint(bus, port, beanContext, httpTransportFactory);
+       return new EjbEndpoint(bus, port, beanContext, httpTransportFactory, 
availableServices);
     }
 }

Modified: 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java
 Thu Aug 16 13:02:53 2012
@@ -27,31 +27,26 @@ import org.apache.cxf.resource.ResourceM
 import org.apache.cxf.resource.ResourceResolver;
 import org.apache.cxf.transport.http.HTTPTransportFactory;
 import org.apache.openejb.InjectionProcessor;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.core.webservices.JaxWsUtils;
 import org.apache.openejb.core.webservices.PortData;
-import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.server.cxf.CxfEndpoint;
-import org.apache.openejb.server.cxf.CxfService;
 import org.apache.openejb.server.cxf.CxfServiceConfiguration;
 import org.apache.openejb.server.cxf.JaxWsImplementorInfoImpl;
 
 import javax.naming.Context;
 import javax.xml.ws.WebServiceException;
-import java.util.HashMap;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 
 import static org.apache.openejb.InjectionProcessor.unwrap;
 
 public class PojoEndpoint extends CxfEndpoint {
-    public static final String OPENEJB_JAXWS_READ_POJO_PROPERTIES = 
"openejb.jaxws.read-pojo-properties"; // boolean to force it (perf reason)
-    public static final String OPENEJB_JAXWS_POJO_CONFIG_PREFIX = 
"openejb.jaxws.pojo.config."; // prefix to avoid conflicts
-
     private InjectionProcessor<Object> injectionProcessor;
 
-    public PojoEndpoint(Bus bus, PortData port, Context context, Class<?> 
instance, HTTPTransportFactory httpTransportFactory, Map<String, Object> 
bindings) {
-       super(bus, port, context, instance, httpTransportFactory);
+    public PojoEndpoint(Bus bus, PortData port, Context context, Class<?> 
instance, HTTPTransportFactory httpTransportFactory, Map<String, Object> 
bindings, Collection<ServiceInfo> services) {
+       super(bus, port, context, instance, httpTransportFactory, services);
 
         String bindingURI = null;
         if (port.getBindingID() != null) {
@@ -91,30 +86,6 @@ public class PojoEndpoint extends CxfEnd
         injector.inject(implementor);
     }
 
-    @Override
-    protected Properties getFeaturesProperties() {
-        if 
(SystemInstance.get().getOptions().get(OPENEJB_JAXWS_READ_POJO_PROPERTIES, 
false)) {
-            return null;
-        }
-        return SystemInstance.get().getProperties();
-    }
-
-    @Override
-    protected Map<String, Object> getEndpointProperties() {
-        if 
(SystemInstance.get().getOptions().get(OPENEJB_JAXWS_READ_POJO_PROPERTIES, 
false)) {
-            final String prefix = OPENEJB_JAXWS_POJO_CONFIG_PREFIX + 
getImplementorClass().getName() + ".";
-            final Map<String, Object> map = new HashMap<String, Object>();
-            for (Map.Entry<Object, Object> entry : 
SystemInstance.get().getProperties().entrySet()) {
-                final String key = entry.getKey().toString();
-                if (key.startsWith(prefix)) {
-                    map.put(key.substring(prefix.length()), entry.getValue());
-                }
-            }
-            return map;
-        }
-        return null;
-    }
-
     protected void init() {
         // configure and inject handlers
         try {
@@ -136,9 +107,4 @@ public class PojoEndpoint extends CxfEnd
         // shutdown server
         super.stop();
     }
-
-    @Override
-    protected String getFeaturePropertyKey() {
-        return getImplementorClass().getName() + "." + 
CxfService.OPENEJB_JAXWS_CXF_FEATURES;
-    }
 }

Modified: 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
 Thu Aug 16 13:02:53 2012
@@ -18,10 +18,12 @@
 package org.apache.openejb.server.cxf.pojo;
 
 import org.apache.cxf.Bus;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.core.webservices.PortData;
 import org.apache.openejb.server.cxf.CxfWsContainer;
 
 import javax.naming.Context;
+import java.util.Collection;
 import java.util.Map;
 
 public class PojoWsContainer extends CxfWsContainer {
@@ -30,8 +32,8 @@ public class PojoWsContainer extends Cxf
     private final Map<String, Object> bindings;
 
 
-    public PojoWsContainer(Bus bus, PortData port, Context context, Class 
target, Map<String, Object> bdgs) {
-        super(bus, port);
+    public PojoWsContainer(Bus bus, PortData port, Context context, Class 
target, Map<String, Object> bdgs, Collection<ServiceInfo> services) {
+        super(bus, port, services);
         if (target == null) throw new NullPointerException("target is null");
         this.context = context;
         this.target = target;
@@ -39,6 +41,6 @@ public class PojoWsContainer extends Cxf
     }
 
     protected PojoEndpoint createEndpoint() {
-        return new PojoEndpoint(bus, port, context, target, 
httpTransportFactory, bindings);
+        return new PojoEndpoint(bus, port, context, target, 
httpTransportFactory, bindings, availableServices);
     }
 }

Modified: 
openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/FeatureTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/FeatureTest.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/FeatureTest.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/FeatureTest.java
 Thu Aug 16 13:02:53 2012
@@ -4,7 +4,10 @@ import org.apache.cxf.Bus;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.feature.AbstractFeature;
 import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.config.DeploymentLoader;
 import org.apache.openejb.config.EjbModule;
+import org.apache.openejb.config.sys.Resources;
+import org.apache.openejb.config.sys.Service;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.SingletonBean;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
@@ -26,6 +29,7 @@ public class FeatureTest {
     public Properties config() {
         return new Properties() {{
             setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
+            setProperty(DeploymentLoader.OPENEJB_ALTDD_PREFIX, "feature");
         }};
     }
 
@@ -42,6 +46,25 @@ public class FeatureTest {
         final EjbModule module = new EjbModule(jar);
         module.setOpenejbJar(openejbJar);
 
+        final Resources resources = new Resources();
+
+        final Service service = new Service("my-feature", null, null, null);
+        service.setClassName(MyFeature.class.getName());
+        resources.add(service);
+
+        final Service properties = new Service("my-props", null, null, null);
+        properties.setClassName(Properties.class.getName());
+        properties.getProperties().setProperty("faultStackTraceEnabled", 
"true");
+        resources.add(properties);
+
+        final Service beanService = new Service("bean-config", null, null, 
null);
+        beanService.setClassName(AuthenticatorServiceBean.class.getName());
+        beanService.getProperties().setProperty("cxf.jaxws.features", 
"my-feature");
+        beanService.getProperties().setProperty("cxf.jaxws.properties", 
"my-props");
+        resources.add(beanService);
+
+        module.initResources(resources);
+
         return module;
     }
 

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=1373814&r1=1373813&r2=1373814&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
 Thu Aug 16 13:02:53 2012
@@ -17,26 +17,6 @@
 
 package org.apache.openejb.server.rest;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.Socket;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import javax.naming.Context;
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.UriBuilder;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.BeanType;
 import org.apache.openejb.Injection;
@@ -44,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.ServiceInfo;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
 import 
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
@@ -61,6 +42,27 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.WebBeansContext;
 
+import javax.naming.Context;
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.UriBuilder;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.Socket;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 public abstract class RESTService implements ServerService, SelfManaging {
     public static final Logger LOGGER = 
Logger.getInstance(LogCategory.OPENEJB_RS, RESTService.class);
     private static final boolean OLD_WEBSERVICE_DEPLOYMENT = 
SystemInstance.get().getOptions().get("openejb.webservice.old-deployment", 
false);
@@ -158,17 +160,17 @@ public abstract class RESTService implem
 
                 if (hasEjbAndIsNotAManagedBean(restEjbs, o.getClass())) {
                     // 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);
+                    deployEJB(appPrefix, 
restEjbs.get(o.getClass().getName()).context, additionalProviders, 
appInfo.services);
                 } else {
-                    deploySingleton(appPrefix, o, appInstance, classLoader, 
additionalProviders);
+                    deploySingleton(appPrefix, o, appInstance, classLoader, 
additionalProviders, appInfo.services);
                 }
             }
             Set<Class<?>> classes = appInstance.getClasses();
             for (Class<?> clazz : classes) {
                 if (hasEjbAndIsNotAManagedBean(restEjbs, clazz)) {
-                    deployEJB(appPrefix, 
restEjbs.get(clazz.getName()).context, additionalProviders);
+                    deployEJB(appPrefix, 
restEjbs.get(clazz.getName()).context, additionalProviders, appInfo.services);
                 } else {
-                    deployPojo(appPrefix, clazz, appInstance, classLoader, 
injections, context, owbCtx, additionalProviders);
+                    deployPojo(appPrefix, clazz, appInstance, classLoader, 
injections, context, owbCtx, additionalProviders, appInfo.services);
                 }
             }
 
@@ -184,14 +186,14 @@ public abstract class RESTService implem
                 if (restEjbs.containsKey(clazz)) {
                     final BeanContext ctx = restEjbs.get(clazz).context;
                     if (BeanType.MANAGED.equals(ctx.getComponentType())) {
-                        deployPojo(appPrefix, ctx.getBeanClass(), null, 
ctx.getClassLoader(), ctx.getInjections(), context, owbCtx, 
additionalProviders);
+                        deployPojo(appPrefix, ctx.getBeanClass(), null, 
ctx.getClassLoader(), ctx.getInjections(), context, owbCtx, 
additionalProviders, appInfo.services);
                     } else {
-                        deployEJB(appPrefix, restEjbs.get(clazz).context, 
additionalProviders);
+                        deployEJB(appPrefix, restEjbs.get(clazz).context, 
additionalProviders, appInfo.services);
                     }
                 } else {
                     try {
                         Class<?> loadedClazz = classLoader.loadClass(clazz);
-                        deployPojo(appPrefix, loadedClazz, null, classLoader, 
injections, context, owbCtx, additionalProviders);
+                        deployPojo(appPrefix, loadedClazz, null, classLoader, 
injections, context, owbCtx, additionalProviders, appInfo.services);
                     } catch (ClassNotFoundException e) {
                         throw new OpenEJBRestRuntimeException("can't find 
class " + clazz, e);
                     }
@@ -240,9 +242,9 @@ public abstract class RESTService implem
                         deployPojo(ejb.getValue().path, ctx.getBeanClass(), 
null, ctx.getClassLoader(), ctx.getInjections(),
                                 ctx.getJndiContext(),
                                 
containerSystem.getAppContext(appInfo.appId).getWebBeansContext(),
-                                providers);
+                                providers, appInfo.services);
                     } else {
-                        deployEJB(ejb.getValue().path, ctx, providers);
+                        deployEJB(ejb.getValue().path, ctx, providers, 
appInfo.services);
                     }
                 }
                 restEjbs.clear();
@@ -295,18 +297,20 @@ public abstract class RESTService implem
         return restEjbs;
     }
 
-    private void deploySingleton(String contextRoot, Object o, Application 
appInstance, ClassLoader classLoader, Collection<Class<?>> additionalProviders) 
{
+    private void deploySingleton(String contextRoot, Object o, Application 
appInstance, ClassLoader classLoader,
+                                 Collection<Class<?>> additionalProviders, 
Collection<ServiceInfo> serviceInfos) {
         final String nopath = getAddress(contextRoot, o.getClass());
         final RsHttpListener listener = createHttpListener();
         final RsRegistry.AddressInfo address = 
rsRegistry.createRsHttpListener(contextRoot, listener, classLoader, 
nopath.substring(NOPATH_PREFIX.length() - 1), virtualHost);
 
         services.add(new DeployedService(address.complete, contextRoot, 
o.getClass().getName()));
-        listener.deploySingleton(getFullContext(address.base, contextRoot), o, 
appInstance, additionalProviders);
+        listener.deploySingleton(getFullContext(address.base, contextRoot), o, 
appInstance, additionalProviders, serviceInfos);
 
         LOGGER.info("deployed REST singleton: " + o);
     }
 
-    private void deployPojo(String contextRoot, Class<?> loadedClazz, 
Application app, ClassLoader classLoader, Collection<Injection> injections, 
Context context, WebBeansContext owbCtx, Collection<Class<?>> 
additionalProviders) {
+    private void deployPojo(String contextRoot, Class<?> loadedClazz, 
Application app, ClassLoader classLoader, Collection<Injection> injections,
+                            Context context, WebBeansContext owbCtx, 
Collection<Class<?>> additionalProviders, Collection<ServiceInfo> serviceInfos) 
{
         if (loadedClazz.isInterface()) {
             return;
         }
@@ -316,18 +320,18 @@ public abstract class RESTService implem
         final RsRegistry.AddressInfo address = 
rsRegistry.createRsHttpListener(contextRoot, listener, classLoader, 
nopath.substring(NOPATH_PREFIX.length() - 1), virtualHost);
 
         services.add(new DeployedService(address.complete, contextRoot, 
loadedClazz.getName()));
-        listener.deployPojo(getFullContext(address.base, contextRoot), 
loadedClazz, app, injections, context, owbCtx, additionalProviders);
+        listener.deployPojo(getFullContext(address.base, contextRoot), 
loadedClazz, app, injections, context, owbCtx, additionalProviders, 
serviceInfos);
 
         LOGGER.info("REST Service: " + address.complete + "  -> Pojo " + 
loadedClazz.getName());
     }
 
-    private void deployEJB(String context, BeanContext beanContext, 
Collection<Class<?>> additionalProviders) {
+    private void deployEJB(String context, BeanContext beanContext, 
Collection<Class<?>> additionalProviders, Collection<ServiceInfo> serviceInfos) 
{
         final String nopath = getAddress(context, beanContext.getBeanClass());
         final RsHttpListener listener = createHttpListener();
         final RsRegistry.AddressInfo address = 
rsRegistry.createRsHttpListener(context, listener, 
beanContext.getClassLoader(), nopath.substring(NOPATH_PREFIX.length() - 1), 
virtualHost);
 
         services.add(new DeployedService(address.complete, context, 
beanContext.getBeanClass().getName()));
-        listener.deployEJB(getFullContext(address.base, context), beanContext, 
additionalProviders);
+        listener.deployEJB(getFullContext(address.base, context), beanContext, 
additionalProviders, serviceInfos);
 
         LOGGER.info("REST Service: " + address.complete + "  -> EJB " + 
beanContext.getEjbName());
     }

Modified: 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RsHttpListener.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RsHttpListener.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RsHttpListener.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RsHttpListener.java
 Thu Aug 16 13:02:53 2012
@@ -22,15 +22,18 @@ import javax.naming.Context;
 import javax.ws.rs.core.Application;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.Injection;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.server.httpd.HttpListener;
 import org.apache.webbeans.config.WebBeansContext;
 
 public interface RsHttpListener extends HttpListener {
-    void deploySingleton(String fullContext, Object o, Application 
appInstance, Collection<Class<?>> additionalProviders);
+    void deploySingleton(String fullContext, Object o, Application appInstance,
+                         Collection<Class<?>> additionalProviders, 
Collection<ServiceInfo> serviceInfos);
 
-    void deployPojo(String fullContext, Class<?> loadedClazz, Application app, 
Collection<Injection> injections, Context context, WebBeansContext owbCtx, 
Collection<Class<?>> additionalProviders);
+    void deployPojo(String fullContext, Class<?> loadedClazz, Application app, 
Collection<Injection> injections,
+                    Context context, WebBeansContext owbCtx, 
Collection<Class<?>> additionalProviders, Collection<ServiceInfo> serviceInfos);
 
-    void deployEJB(String fullContext, BeanContext beanContext, 
Collection<Class<?>> additionalProviders);
+    void deployEJB(String fullContext, BeanContext beanContext, 
Collection<Class<?>> additionalProviders, Collection<ServiceInfo> serviceInfos);
 
     void undeploy();
 }

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=1373814&r1=1373813&r2=1373814&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
 Thu Aug 16 13:02:53 2012
@@ -17,24 +17,6 @@
  */
 package org.apache.openejb.server.webservices;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.Socket;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-import javax.naming.Context;
-import javax.xml.namespace.QName;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.Injection;
 import org.apache.openejb.assembler.classic.AppInfo;
@@ -42,6 +24,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
 import org.apache.openejb.assembler.classic.PortInfo;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.assembler.classic.ServletInfo;
 import org.apache.openejb.assembler.classic.SingletonBeanInfo;
 import org.apache.openejb.assembler.classic.StatelessBeanInfo;
@@ -67,6 +50,25 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.StringTemplate;
 
+import javax.naming.Context;
+import javax.xml.namespace.QName;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.Socket;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+
 public abstract class WsService implements ServerService, SelfManaging {
     public static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_WS, WsService.class);
     public static final String WS_ADDRESS_FORMAT = "openejb.wsAddress.format";
@@ -191,11 +193,11 @@ public abstract class WsService implemen
         }
     }
 
-    protected abstract HttpListener createEjbWsContainer(URL moduleBaseUrl, 
PortData port, BeanContext beanContext) throws Exception;
+    protected abstract HttpListener createEjbWsContainer(URL moduleBaseUrl, 
PortData port, BeanContext beanContext, Collection<ServiceInfo> services) 
throws Exception;
 
     protected abstract void destroyEjbWsContainer(String deploymentId);
 
-    protected abstract HttpListener createPojoWsContainer(URL moduleBaseUrl, 
PortData port, String serviceId, Class target, Context context, String 
contextRoot, Map<String, Object> bindings) throws Exception;
+    protected abstract HttpListener createPojoWsContainer(URL moduleBaseUrl, 
PortData port, String serviceId, Class target, Context context, String 
contextRoot, Map<String, Object> bindings, Collection<ServiceInfo> services) 
throws Exception;
 
     protected abstract void destroyPojoWsContainer(String serviceId);
 
@@ -246,7 +248,7 @@ public abstract class WsService implemen
                         try {
                             PortData port = WsBuilder.toPortData(portInfo, 
beanContext.getInjections(), moduleBaseUrl, beanContext.getClassLoader());
 
-                            HttpListener container = 
createEjbWsContainer(moduleBaseUrl, port, beanContext);
+                            HttpListener container = 
createEjbWsContainer(moduleBaseUrl, port, beanContext, appInfo.services);
 
                             // generate a location if one was not assigned
                             String location = port.getLocation();
@@ -292,7 +294,7 @@ public abstract class WsService implemen
                 }
             }
             for (WebAppInfo webApp : appInfo.webApps) {
-                afterApplicationCreated(webApp);
+                afterApplicationCreated(appInfo, webApp);
             }
         }
     }
@@ -305,7 +307,7 @@ public abstract class WsService implemen
     }
 
 
-    public void afterApplicationCreated(WebAppInfo webApp) {
+    public void afterApplicationCreated(AppInfo appInfo, WebAppInfo webApp) {
         WebContext webContext = containerSystem.getWebContext(webApp.moduleId);
         if (webContext == null) return;
 
@@ -343,7 +345,7 @@ public abstract class WsService implemen
 
                 PortData port = WsBuilder.toPortData(portInfo, injections, 
moduleBaseUrl, classLoader);
 
-                HttpListener container = createPojoWsContainer(moduleBaseUrl, 
port, portInfo.serviceLink, target, context, webApp.contextRoot, bindings);
+                HttpListener container = createPojoWsContainer(moduleBaseUrl, 
port, portInfo.serviceLink, target, context, webApp.contextRoot, bindings, 
appInfo.services);
 
                 if (wsRegistry != null) {
                     // give servlet a reference to the webservice container

Modified: 
openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java?rev=1373814&r1=1373813&r2=1373814&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webservices/src/main/java/org/apache/tomee/webservices/TomeeJaxWsService.java
 Thu Aug 16 13:02:53 2012
@@ -43,12 +43,14 @@ public class TomeeJaxWsService implement
         system.addObserver(this);
     }
 
+    // mainly here because is the service manager is disabled cxf service will 
not be called
+    // but this one will be
     public void afterApplicationCreated(@Observes final 
AfterApplicationCreated event) {
         // required for Pojo Web Services because when Assembler creates the 
application
         // the CoreContainerSystem does not contain the WebContext
         // see also the start method 
getContainerSystem().addWebDeployment(webContext);
         WsService component = 
SystemInstance.get().getComponent(WsService.class);
         if (component == null) return;
-        component.afterApplicationCreated(event.getWeb());
+        component.afterApplicationCreated(event.getApp(), event.getWeb());
     }
 }


Reply via email to