Author: rmannibucau Date: Fri Oct 25 06:26:10 2013 New Revision: 1535644 URL: http://svn.apache.org/r1535644 Log: cleaning a bit CXF logs - which can conflict with our logs - when deploying webservices
Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Fri Oct 25 06:26:10 2013 @@ -16,7 +16,9 @@ */ package org.apache.openejb.server.cxf.rs; +import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.endpoint.Server; +import org.apache.cxf.endpoint.ServerImpl; import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.JAXRSServiceImpl; @@ -87,11 +89,14 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Level; import java.util.regex.Pattern; public class CxfRsHttpListener implements RsHttpListener { private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB_RS, CxfRsHttpListener.class); + private static final java.util.logging.Logger SERVER_IMPL_LOGGER = LogUtils.getL7dLogger(ServerImpl.class); + public static final String CXF_JAXRS_PREFIX = "cxf.jaxrs."; public static final String PROVIDERS_KEY = CXF_JAXRS_PREFIX + "providers"; public static final String STATIC_RESOURCE_KEY = CXF_JAXRS_PREFIX + "static-resources-list"; @@ -382,7 +387,14 @@ public class CxfRsHttpListener implement factory.setResourceClasses(classes); factory.setInvoker(new AutoJAXRSInvoker(restEjbs)); - server = factory.create(); + final Level level = SERVER_IMPL_LOGGER.getLevel(); + SERVER_IMPL_LOGGER.setLevel(Level.OFF); + try { + server = factory.create(); + } finally { + SERVER_IMPL_LOGGER.setLevel(level); + } + this.context = webContext; if (!webContext.startsWith("/")) { this.context = "/" + webContext; Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java Fri Oct 25 06:26:10 2013 @@ -18,6 +18,7 @@ package org.apache.openejb.server.cxf; import org.apache.cxf.Bus; +import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.databinding.DataBinding; import org.apache.cxf.endpoint.Server; import org.apache.cxf.endpoint.ServerImpl; @@ -27,6 +28,7 @@ import org.apache.cxf.jaxws.support.JaxW import org.apache.cxf.jaxws.support.JaxWsImplementorInfo; import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; import org.apache.cxf.service.Service; +import org.apache.cxf.service.factory.ReflectionServiceFactoryBean; import org.apache.cxf.transport.http.HTTPTransportFactory; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.assembler.classic.ServiceInfo; @@ -48,9 +50,16 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.Executor; +import java.util.logging.Level; +import java.util.logging.Logger; public abstract class CxfEndpoint { public static final String CXF_JAXWS_PREFIX = "cxf.jaxws."; + + // to be able to switch off logs we don't want + protected static final Logger FACTORY_BEAN_LOG = LogUtils.getLogger(ReflectionServiceFactoryBean.class); + private static final Logger SERVER_IMPL_LOGGER = LogUtils.getL7dLogger(ServerImpl.class); + protected Bus bus; protected PortData port; @@ -85,6 +94,17 @@ public abstract class CxfEndpoint { this.bus.setExtension(this, CxfEndpoint.class); } + protected Service doServiceCreate() { + final Level level = FACTORY_BEAN_LOG.getLevel(); + FACTORY_BEAN_LOG.setLevel(Level.SEVERE); + try { + service = serviceFactory.create(); + } finally { + FACTORY_BEAN_LOG.setLevel(level); + } + return service; + } + protected Class getImplementorClass() { return this.implementor.getClass(); } @@ -165,7 +185,6 @@ public abstract class CxfEndpoint { svrFactory.setServiceClass(serviceFactory.getServiceClass()); final Properties beanConfig = serviceConfiguration.getProperties(); - final Collection<ServiceInfo> availableServices = serviceConfiguration.getAvailableServices(); // endpoint properties if (beanConfig != null) { @@ -186,12 +205,15 @@ public abstract class CxfEndpoint { svrFactory.setTransportId("http://cxf.apache.org/bindings/xformat"); } - server = svrFactory.create(); - - init(); + final Level level = SERVER_IMPL_LOGGER.getLevel(); + SERVER_IMPL_LOGGER.setLevel(Level.SEVERE); + try { + server = svrFactory.create(); + } finally { + SERVER_IMPL_LOGGER.setLevel(level); + } - // todo do we need to call this? - getEndpoint(); + init(); if (getBinding() instanceof SOAPBinding) { ((SOAPBinding) getBinding()).setMTOMEnabled(port.isMtomEnabled()); Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java Fri Oct 25 06:26:10 2013 @@ -48,13 +48,17 @@ public abstract class CxfWsContainer imp public void start() { endpoint = createEndpoint(); - endpoint.publish("http://nopath" + endpoint.hashCode()); // needs to be unique + endpoint.publish("http://" + getFakeUrl()); // needs to be unique destination = (AbstractHTTPDestination) endpoint.getServer().getDestination(); // register an MBean for this endpoint this.jmxName = registerMBean(); } + protected String getFakeUrl() { + return "" + endpoint.hashCode(); + } + protected abstract CxfEndpoint createEndpoint(); protected abstract ObjectName registerMBean(); Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java Fri Oct 25 06:26:10 2013 @@ -38,6 +38,7 @@ import org.apache.openejb.server.cxf.Jax import javax.xml.ws.WebServiceException; import java.util.List; +import java.util.logging.Level; /** * A web service endpoint which invokes an EJB container. @@ -60,7 +61,7 @@ public class EjbEndpoint extends CxfEndp CxfServiceConfiguration configuration = new CxfServiceConfiguration(portData); serviceFactory.getConfigurations().add(0, configuration); - service = serviceFactory.create(); + service = doServiceCreate(); } protected Class getImplementorClass() { Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java Fri Oct 25 06:26:10 2013 @@ -55,6 +55,11 @@ public class EjbWsContainer extends CxfW return new EjbEndpoint(bus, port, beanContext, httpTransportFactory, serviceConfiguration); } + @Override + protected String getFakeUrl() { + return beanContext.getEjbName(); + } + protected ObjectName registerMBean() { final ObjectName name = new ObjectNameBuilder("openejb.management") .set("j2eeType", "JAX-WS") Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java Fri Oct 25 06:26:10 2013 @@ -25,6 +25,7 @@ import org.apache.cxf.jaxws.support.JaxW import org.apache.cxf.resource.DefaultResourceManager; import org.apache.cxf.resource.ResourceManager; import org.apache.cxf.resource.ResourceResolver; +import org.apache.cxf.service.Service; import org.apache.cxf.transport.http.HTTPTransportFactory; import org.apache.openejb.InjectionProcessor; import org.apache.openejb.assembler.classic.util.ServiceConfiguration; @@ -63,7 +64,7 @@ public class PojoEndpoint extends CxfEnd CxfServiceConfiguration configuration = new CxfServiceConfiguration(port); serviceFactory.getConfigurations().add(0, configuration); - service = serviceFactory.create(); + service = doServiceCreate(); // instantiate and inject resources into service using the app classloader to be sure to get the right InitialContext final ClassLoader old = Thread.currentThread().getContextClassLoader(); Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java?rev=1535644&r1=1535643&r2=1535644&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java Fri Oct 25 06:26:10 2013 @@ -61,6 +61,11 @@ public class PojoWsContainer extends Cxf this.loader = loader; } + @Override + protected String getFakeUrl() { + return target.getClass().getName() + "_" + hashCode(); // pojo are not like ejbName: unique + } + protected PojoEndpoint createEndpoint() { return new PojoEndpoint(loader, bus, port, context, target, httpTransportFactory, bindings, serviceConfiguration); }