Added: servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java (added) +++ servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java Fri Feb 1 05:44:02 2008 @@ -0,0 +1,102 @@ +/** + * 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.servicemix.cxf.transport.nmr; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.dom.DOMSource; + +import org.w3c.dom.Document; + +import org.apache.cxf.common.logging.LogUtils; +import org.apache.cxf.io.CachedOutputStream; +import org.apache.cxf.message.Message; +import org.apache.servicemix.nmr.api.Channel; +import org.apache.servicemix.nmr.api.Exchange; + +public class NMRDestinationOutputStream extends CachedOutputStream { + + private static final Logger LOG = LogUtils.getL7dLogger(NMRDestinationOutputStream.class); + private Message inMessage; + private Channel channel; + + public NMRDestinationOutputStream(Message m, + Channel dc) { + super(); + inMessage = m; + channel = dc; + } + + @Override + protected void doFlush() throws IOException { + // so far do nothing + } + + @Override + protected void doClose() throws IOException { + commitOutputMessage(); + } + + @Override + protected void onWrite() throws IOException { + // so far do nothing + } + + private void commitOutputMessage() throws IOException { + try { + if (inMessage.getExchange().isOneWay()) { + return; + } else { + + InputStream bais = getInputStream(); + LOG.finest(new org.apache.cxf.common.i18n.Message( + "BUILDING.DOCUMENT", LOG).toString()); + DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); + docBuilderFactory.setNamespaceAware(true); + DocumentBuilder builder = docBuilderFactory.newDocumentBuilder(); + Document doc = builder.parse(bais); + + Exchange xchng = inMessage.get(Exchange.class); + LOG.fine(new org.apache.cxf.common.i18n.Message("CREATE.NORMALIZED.MESSAGE", LOG).toString()); + if (inMessage.getExchange().getOutFaultMessage() != null) { + org.apache.cxf.interceptor.Fault f = (org.apache.cxf.interceptor.Fault) inMessage.getContent(Exception.class); + if (f.hasDetails()) { + xchng.getFault().setBody(new DOMSource(doc)); + } else { + xchng.setError(f); + } + } else { + xchng.getOut().setBody(new DOMSource(doc)); + + } + LOG.fine(new org.apache.cxf.common.i18n.Message("POST.DISPATCH", LOG).toString()); + channel.send(xchng); + } + } catch (Exception ex) { + LOG.log(Level.SEVERE, new org.apache.cxf.common.i18n.Message("ERROR.SEND.MESSAGE", LOG).toString(), ex); + } + } + +}
Added: servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRMessageHelper.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRMessageHelper.java?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRMessageHelper.java (added) +++ servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRMessageHelper.java Fri Feb 1 05:44:02 2008 @@ -0,0 +1,55 @@ +/** + * 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.servicemix.cxf.transport.nmr; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; + + + +public final class NMRMessageHelper { + + + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + + private NMRMessageHelper() { + // complete + } + + public static InputStream convertMessageToInputStream(Source src) throws IOException, + TransformerConfigurationException, TransformerException { + + final Transformer transformer = TRANSFORMER_FACTORY.newTransformer(); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(baos); + transformer.transform(src, result); + + return new ByteArrayInputStream(baos.toByteArray()); + } +} Added: servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRTransportFactory.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRTransportFactory.java?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRTransportFactory.java (added) +++ servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRTransportFactory.java Fri Feb 1 05:44:02 2008 @@ -0,0 +1,155 @@ +/** + * 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.servicemix.cxf.transport.nmr; + +import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.logging.Logger; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +import org.apache.cxf.Bus; +import org.apache.cxf.common.logging.LogUtils; +import org.apache.cxf.configuration.Configurer; +import org.apache.cxf.service.model.EndpointInfo; +import org.apache.cxf.transport.AbstractTransportFactory; +import org.apache.cxf.transport.Conduit; +import org.apache.cxf.transport.ConduitInitiator; +import org.apache.cxf.transport.ConduitInitiatorManager; +import org.apache.cxf.transport.Destination; +import org.apache.cxf.transport.DestinationFactory; +import org.apache.cxf.transport.DestinationFactoryManager; +import org.apache.cxf.ws.addressing.EndpointReferenceType; +import org.apache.servicemix.nmr.api.NMR; +import org.apache.servicemix.nmr.api.ServiceMixException; + +public class NMRTransportFactory extends AbstractTransportFactory implements ConduitInitiator, + DestinationFactory { + + public static final String TRANSPORT_ID = "http://cxf.apache.org/transports/nmr"; + + private static final Logger LOG = LogUtils.getL7dLogger(NMRTransportFactory.class); + + + private NMR nmr; + private Bus bus; + private final Map<String, NMRDestination> destinationMap = new HashMap<String, NMRDestination>(); + + + private Collection<String> activationNamespaces; + + @Resource + public void setBus(Bus b) { + bus = b; + } + + public Bus getBus() { + return bus; + } + + public Set<String> getUriPrefixes() { + return Collections.singleton("nmr"); + } + + @Resource + public void setActivationNamespaces(Collection<String> ans) { + activationNamespaces = ans; + } + + public NMR getNmr() { + return nmr; + } + + public void setNmr(NMR nmr) { + this.nmr = nmr; + } + + @PostConstruct + void registerWithBindingManager() { + if (null == bus) { + return; + } + ConduitInitiatorManager cim = bus.getExtension(ConduitInitiatorManager.class); + if (null != cim && null != activationNamespaces) { + for (String ns : activationNamespaces) { + cim.registerConduitInitiator(ns, this); + } + } + DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class); + if (null != dfm && null != activationNamespaces) { + for (String ns : activationNamespaces) { + dfm.registerDestinationFactory(ns, this); + } + } + } + + + + + public Conduit getConduit(EndpointInfo targetInfo) throws IOException { + return getConduit(targetInfo, null); + } + + public Conduit getConduit(EndpointInfo endpointInfo, EndpointReferenceType target) throws IOException { + Conduit conduit = new NMRConduit(target, nmr); + Configurer configurer = bus.getExtension(Configurer.class); + if (null != configurer) { + configurer.configureBean(conduit); + } + return conduit; + } + + public Destination getDestination(EndpointInfo ei) throws IOException { + NMRDestination destination = new NMRDestination(ei, nmr); + Configurer configurer = bus.getExtension(Configurer.class); + if (null != configurer) { + configurer.configureBean(destination); + } + try { + putDestination(ei.getService().getName().toString() + + ei.getInterface().getName().toString(), destination); + } catch (ServiceMixException e) { + throw new IOException(e.getMessage()); + } + return destination; + } + + public void putDestination(String epName, NMRDestination destination) throws ServiceMixException { + if (destinationMap.containsKey(epName)) { + throw new ServiceMixException("JBIDestination for Endpoint " + + epName + " already be created"); + } else { + destinationMap.put(epName, destination); + } + } + + public NMRDestination getDestination(String epName) { + return destinationMap.get(epName); + } + + public void removeDestination(String epName) { + destinationMap.remove(epName); + } + +} Added: servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/resources/org/apache/servicemix/cxf/transport/nmr/Messages.properties URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/resources/org/apache/servicemix/cxf/transport/nmr/Messages.properties?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/resources/org/apache/servicemix/cxf/transport/nmr/Messages.properties (added) +++ servicemix/smx4/features/trunk/ejb3/cxf-transport-nmr/src/main/resources/org/apache/servicemix/cxf/transport/nmr/Messages.properties Fri Feb 1 05:44:02 2008 @@ -0,0 +1,46 @@ +# +# 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. +# +NOT.IMPLEMENTED=not yet implemented +INVOKE.SERVICE=invoking service\t +CREATE.MESSAGE.EXCHANGE=create message exchange svc:\t +EXCHANGE.ENDPOINT=exchange endpoint:\t +NO.MESSAGE=no message yet +UNABLE.RETRIEVE.MESSAGE=unable to retrieve message +CONTEXT.MUST.BE=context must be of type JBIOutputStreamMessageContext +RECEIVED.MESSAGE=received message:\t +ACTIVE.JBI.SERVER.TRANSPORT=activating JBI server transport +BUILDING.DOCUMENT=building document from bytes +CREATE.NORMALIZED.MESSAGE=creating NormalizedMessage +POST.DISPATCH=postDispatch sending out message to NWR +ERROR.SEND.MESSAGE=error sending Out message +DISPATCH.MESSAGE.ON.CALLBACK=dispatching message on callback:\t +ERROR.PREPARE.MESSAGE=error preparing message +RECEIVE.THREAD.START=JBIServerTransport message receiving thread started +DISPATCH.TO.SU=dispatching to CXF service unit +NO.SU.FOUND=no CXFServiceUnit found +ERROR.DISPATCH.THREAD=error running dispatch thread +JBI.SERVER.TRANSPORT.MESSAGE.PROCESS.THREAD.EXIT=JBIServerTransport message processing thread exiting +CONFIG.DELIVERY.CHANNEL=configuring DeliveryChannel:\t +CONFIG.SU.MANAGER=configuring ServiceUnitManager:\t +JBI.TRANSPORT.FACTORY.NOT.INITIALIZED=JBITransportFactory is not properly initialized +SU.MANAGER=CXFServiceUnitManager:\t +DELIVERY.CHANNEL=DeliveryChannel:\t +JBI.TRANSPORT.FACTORY.NOT.FULLY.INITIALIZED=JBITransport factory not fully initialized +CREATE.SERVER.TRANSPORT=creating JBI server transport +CREATE.CLIENT.TRANSPORT=creating JBI client transport Modified: servicemix/smx4/features/trunk/ejb3/deployer/pom.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/pom.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/pom.xml (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/pom.xml Fri Feb 1 05:44:02 2008 @@ -41,6 +41,21 @@ <version>${pom.version}</version> </dependency> <dependency> + <groupId>org.apache.servicemix.ejb3</groupId> + <artifactId>org.apache.servicemix.cxf.transport.nmr</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.servicemix.ejb3</groupId> + <artifactId>org.apache.servicemix.cxf.binding.nmr</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.servicemix.nmr</groupId> + <artifactId>org.apache.servicemix.nmr.api</artifactId> + <version>${servicemix.nmr.version}</version> + </dependency> + <dependency> <groupId>org.apache.servicemix.bundles</groupId> <artifactId>org.apache.servicemix.bundles.jaxb-api-2.0</artifactId> <version>${servicemix.nmr.version}</version> @@ -56,9 +71,14 @@ <version>${pom.version}</version> </dependency> <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.openejb-3.0.0-SNAPSHOT</artifactId> - <version>${pom.version}</version> + <groupId>org.apache.openejb</groupId> + <artifactId>openejb-core</artifactId> + <version>${openejb.version}</version> + </dependency> + <dependency> + <groupId>org.apache.openejb</groupId> + <artifactId>openejb-cxf</artifactId> + <version>${openejb.version}</version> </dependency> <dependency> <groupId>org.apache.servicemix.bundles</groupId> @@ -290,6 +310,17 @@ <artifactId>geronimo-activation_1.1_spec</artifactId> <version>${geronimo.activation.version}</version> <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.servicemix.nmr</groupId> + <artifactId>org.apache.servicemix.nmr.core</artifactId> + <version>${servicemix.nmr.version}</version> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-bundle</artifactId> + <version>${cxf.version}</version> + <optional>true</optional> </dependency> </dependencies> Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/CxfService.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/CxfService.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/CxfService.java (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/CxfService.java Fri Feb 1 05:44:02 2008 @@ -72,12 +72,14 @@ } } + @Override public void afterApplicationCreated(AppInfo appInfo) { System.out.println("CxfService:afterApplicationCreated"); Thread.currentThread().setContextClassLoader(Bus.class.getClassLoader()); super.afterApplicationCreated(appInfo); //To change body of overridden methods use File | Settings | File Templates. } + @Override public void beforeApplicationDestroyed(AppInfo appInfo) { System.out.println("CxfService:beforeApplicationDestroyed"); Thread.currentThread().setContextClassLoader(Bus.class.getClassLoader()); Added: servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrEndpoint.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrEndpoint.java?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrEndpoint.java (added) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrEndpoint.java Fri Feb 1 05:44:02 2008 @@ -0,0 +1,100 @@ +package org.apache.servicemix.ejb3.deployer; + +import java.util.List; + +import javax.xml.ws.WebServiceException; + +import org.apache.cxf.Bus; +import org.apache.cxf.binding.soap.SoapBinding; +import org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor; +import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor; +import org.apache.cxf.endpoint.Endpoint; +import org.apache.cxf.interceptor.Interceptor; +import org.apache.cxf.jaxws.handler.logical.LogicalHandlerInInterceptor; +import org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor; +import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; +import org.apache.cxf.transport.http.WSDLQueryHandler; +import org.apache.openejb.DeploymentInfo; +import org.apache.openejb.core.webservices.PortData; +import org.apache.openejb.server.cxf.CxfEndpoint; +import org.apache.openejb.server.cxf.CxfServiceConfiguration; +import org.apache.openejb.server.cxf.JaxWsImplementorInfoImpl; +import org.apache.openejb.server.cxf.ejb.EjbMethodInvoker; +import org.apache.servicemix.cxf.binding.nmr.NMRConstants; + +/** + * Created by IntelliJ IDEA. + * User: gnodet + * Date: Jan 31, 2008 + * Time: 1:20:46 PM + * To change this template use File | Settings | File Templates. + */ +public class NmrEndpoint extends CxfEndpoint { + + private DeploymentInfo deploymentInfo; + + public NmrEndpoint(Bus bus, PortData portData, DeploymentInfo deploymentInfo) { + super(bus, portData, deploymentInfo.getJndiEnc(), deploymentInfo.getBeanClass()); + this.deploymentInfo = deploymentInfo; + + String bindingURI = NMRConstants.NS_NMR_BINDING; + implInfo = new JaxWsImplementorInfoImpl((Class) implementor, bindingURI); + + serviceFactory = new JaxWsServiceFactoryBean(implInfo); + serviceFactory.setBus(bus); + + // install as first to overwrite annotations (wsdl-file, wsdl-port, wsdl-service) + CxfServiceConfiguration configuration = new CxfServiceConfiguration(portData); + serviceFactory.getConfigurations().add(0, configuration); + + service = serviceFactory.create(); + } + + protected Class getImplementorClass() { + return (Class) this.implementor; + } + + protected void init() { + // configure handlers + try { + initHandlers(); + } catch (Exception e) { + throw new WebServiceException("Error configuring handlers", e); + } + + // Set service to invoke the target ejb + service.setInvoker(new EjbMethodInvoker(this.bus, deploymentInfo)); + + // Remove interceptors that perform handler processing since + // handler processing must happen within the EJB container. + Endpoint endpoint = getEndpoint(); + removeHandlerInterceptors(bus.getInInterceptors()); + removeHandlerInterceptors(endpoint.getInInterceptors()); + removeHandlerInterceptors(endpoint.getBinding().getInInterceptors()); + removeHandlerInterceptors(endpoint.getService().getInInterceptors()); + + // Install SAAJ interceptor + if (endpoint.getBinding() instanceof SoapBinding && !this.implInfo.isWebServiceProvider()) { + endpoint.getService().getInInterceptors().add(new SAAJInInterceptor()); + } + + WSDLQueryHandler wsdl = new WSDLQueryHandler(bus); + wsdl.writeResponse("http://localhost/service?wsdl", null, endpoint.getEndpointInfo(), System.err); + } + + private static void removeHandlerInterceptors(List<Interceptor> interceptors) { + for (Interceptor interceptor : interceptors) { + if (interceptor instanceof MustUnderstandInterceptor || interceptor instanceof LogicalHandlerInInterceptor || interceptor instanceof SOAPHandlerInterceptor) { + interceptors.remove(interceptor); + } + } + } + + public void stop() { + // call handler preDestroy + destroyHandlers(); + + // shutdown server + super.stop(); + } +} Added: servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrService.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrService.java?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrService.java (added) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/NmrService.java Fri Feb 1 05:44:02 2008 @@ -0,0 +1,159 @@ +package org.apache.servicemix.ejb3.deployer; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import javax.xml.ws.Endpoint; + +import org.apache.cxf.Bus; +import org.apache.cxf.binding.BindingFactory; +import org.apache.cxf.binding.BindingFactoryManager; +import org.apache.cxf.bus.extension.ExtensionManagerBus; +import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; +import org.apache.cxf.transport.DestinationFactoryManager; +import org.apache.openejb.DeploymentInfo; +import org.apache.openejb.assembler.classic.AppInfo; +import org.apache.openejb.assembler.classic.Assembler; +import org.apache.openejb.assembler.classic.DeploymentListener; +import org.apache.openejb.assembler.classic.EjbJarInfo; +import org.apache.openejb.assembler.classic.EnterpriseBeanInfo; +import org.apache.openejb.assembler.classic.StatelessBeanInfo; +import org.apache.openejb.core.CoreContainerSystem; +import org.apache.openejb.core.webservices.PortData; +import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.server.SelfManaging; +import org.apache.openejb.server.ServerService; +import org.apache.openejb.server.ServiceException; +import org.apache.openejb.spi.ContainerSystem; +import org.apache.servicemix.cxf.binding.nmr.NMRBindingFactory; +import org.apache.servicemix.cxf.binding.nmr.NMRConstants; +import org.apache.servicemix.cxf.transport.nmr.NMRTransportFactory; +import org.apache.servicemix.nmr.api.NMR; + +/** + * Created by IntelliJ IDEA. + * User: gnodet + * Date: Jan 30, 2008 + * Time: 9:49:07 PM + * To change this template use File | Settings | File Templates. + */ +public class NmrService implements ServerService, SelfManaging, DeploymentListener { + + private Assembler assembler; + private final Set<AppInfo> deployedApplications = new HashSet<AppInfo>(); + private NMR nmr; + private Map<StatelessBeanInfo, Endpoint> endpoints = new HashMap<StatelessBeanInfo, Endpoint>(); + + public void start() throws ServiceException { + assembler = SystemInstance.get().getComponent(Assembler.class); + if (assembler != null) { + assembler.addDeploymentListener(this); + for (AppInfo appInfo : assembler.getDeployedApplications()) { + afterApplicationCreated(appInfo); + } + } + } + + public void stop() throws ServiceException { + if (assembler != null) { + assembler.removeDeploymentListener(this); + for (AppInfo appInfo : new ArrayList<AppInfo>(deployedApplications)) { + beforeApplicationDestroyed(appInfo); + } + assembler = null; + } + } + + public void service(InputStream in, OutputStream out) throws ServiceException, IOException { + throw new UnsupportedOperationException("NmrService can not be invoked directly"); + } + + public void service(Socket socket) throws ServiceException, IOException { + throw new UnsupportedOperationException("NmrService can not be invoked directly"); + } + + public String getName() { + return "nmr"; + } + + public String getIP() { + return "n/a"; + } + + public int getPort() { + return -1; + } + + public NMR getNmr() { + return nmr; + } + + public void setNmr(NMR nmr) { + this.nmr = nmr; + } + + public void init(Properties props) throws Exception { + } + + public void afterApplicationCreated(AppInfo appInfo) { + if (deployedApplications.add(appInfo)) { + System.out.println("Deploying new application to NMR"); + for (EjbJarInfo ejbJar : appInfo.ejbJars) { + for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) { + if (bean instanceof StatelessBeanInfo) { + StatelessBeanInfo statelessBeanInfo = (StatelessBeanInfo) bean; + Endpoint endpoint = createEndpoint(statelessBeanInfo); + endpoint.publish("nmr://endpoint"); + endpoints.put(statelessBeanInfo, endpoint); + } + } + } + } + } + + public void beforeApplicationDestroyed(AppInfo appInfo) { + if (deployedApplications.remove(appInfo)) { + for (EjbJarInfo ejbJar : appInfo.ejbJars) { + for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) { + if (bean instanceof StatelessBeanInfo) { + StatelessBeanInfo statelessBeanInfo = (StatelessBeanInfo) bean; + Endpoint endpoint = endpoints.remove(statelessBeanInfo); + endpoint.stop(); + } + } + } + } + } + + protected Endpoint createEndpoint(StatelessBeanInfo bean) { + Bus bus = new ExtensionManagerBus(); + + NMRTransportFactory transportFactory = new NMRTransportFactory(); + transportFactory.setBus(bus); + transportFactory.setNmr(nmr); + transportFactory.setTransportIds(Collections.singletonList(NMRTransportFactory.TRANSPORT_ID)); + DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class); + dfm.registerDestinationFactory(NMRTransportFactory.TRANSPORT_ID, transportFactory); + + NMRBindingFactory bindingFactory = new NMRBindingFactory(); + bindingFactory.setBus(bus); + BindingFactoryManager bfm = bus.getExtension(BindingFactoryManager.class); + bfm.registerBindingFactory(NMRConstants.NS_NMR_BINDING, bindingFactory); + + CoreContainerSystem containerSystem = (CoreContainerSystem) SystemInstance.get().getComponent(ContainerSystem.class); + DeploymentInfo deploymentInfo = containerSystem.getDeploymentInfo(bean.ejbDeploymentId); + PortData port = new PortData(); + NmrEndpoint ep = new NmrEndpoint(bus, port, deploymentInfo); + return ep; + } + +} Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/OpenEjbFactory.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/OpenEjbFactory.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/OpenEjbFactory.java (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/OpenEjbFactory.java Fri Feb 1 05:44:02 2008 @@ -25,19 +25,19 @@ import org.apache.openejb.OpenEJB; import org.apache.openejb.OpenEJBException; import org.apache.openejb.assembler.classic.Assembler; +import org.apache.openejb.assembler.classic.OpenEjbConfiguration; import org.apache.openejb.assembler.classic.SecurityServiceInfo; import org.apache.openejb.assembler.classic.TransactionServiceInfo; -import org.apache.openejb.assembler.classic.OpenEjbConfiguration; +import org.apache.openejb.assembler.classic.ProxyFactoryInfo; import org.apache.openejb.assembler.dynamic.PassthroughFactory; import org.apache.openejb.core.ServerFederation; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.ri.sp.PseudoSecurityService; -import org.apache.openejb.server.ServerService; -import org.apache.openejb.server.ServiceManager; import org.apache.openejb.server.SelfManaging; -import org.apache.openejb.server.ServiceLogger; +import org.apache.openejb.server.ServerService; import org.apache.openejb.server.ServiceAccessController; import org.apache.openejb.server.ServiceDaemon; +import org.apache.openejb.server.ServiceLogger; import org.apache.openejb.server.webservices.WsRegistry; import org.apache.openejb.spi.ApplicationServer; import org.apache.openejb.spi.ContainerSystem; @@ -45,6 +45,8 @@ import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.Messages; +import org.apache.openejb.util.proxy.Jdk13ProxyFactory; +import org.apache.openejb.util.proxy.ProxyFactory; /** * Factory for OpenEJB to intitialize everything. @@ -58,6 +60,7 @@ private TransactionManager transactionManager; private WsRegistry wsRegistry; private SecurityService securityService; + private ProxyFactory proxyFactory; private List<ServerService> serverServices; static { @@ -80,6 +83,10 @@ this.securityService = securityService; } + public void setProxyFactory(ProxyFactory proxyFactory) { + this.proxyFactory = proxyFactory; + } + public void setServerServices(List<ServerService> serverServices) { List<ServerService> services = new ArrayList<ServerService>(); for (ServerService service : serverServices) { @@ -121,6 +128,18 @@ } system.setComponent(ContainerSystem.class, containerSystem); + if (proxyFactory == null) { + proxyFactory = new Jdk13ProxyFactory(); + } + if (proxyFactory != null) { + ProxyFactoryInfo proxyFactoryInfo = new ProxyFactoryInfo(); + PassthroughFactory.add(proxyFactoryInfo, proxyFactory); + proxyFactoryInfo.id = "Default Proxy Factory"; + proxyFactoryInfo.service = "ProxyFactory"; + assembler.createProxyFactory(proxyFactoryInfo); + system.setComponent(ProxyFactory.class, proxyFactory); + } + if (securityService == null) { securityService = new PseudoSecurityService(); } Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml Fri Feb 1 05:44:02 2008 @@ -44,6 +44,9 @@ <property name="authMethod" value="NONE" /> <property name="transportGuarantee" value="NONE" /> </bean> + <bean class="org.apache.servicemix.ejb3.deployer.NmrService"> + <property name="nmr" ref="nmr" /> + </bean> </list> </property> </bean> @@ -59,10 +62,15 @@ <!-- Reference to the transaction manager --> <osgi:reference id="transactionManager" interface="javax.transaction.TransactionManager" - cardinality="0..1" /> + cardinality="0..1" /> + + <!-- Reference to the NMR --> + <osgi:reference id="nmr" + interface="org.apache.servicemix.nmr.api.NMR" + cardinality="0..1" /> <!-- Reference to the OSGi http service --> <osgi:reference id="httpService" interface="org.osgi.service.http.HttpService" - cardinality="0..1" /> + cardinality="0..1" /> </beans> Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyService.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyService.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyService.java (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyService.java Fri Feb 1 05:44:02 2008 @@ -2,6 +2,7 @@ import javax.ejb.Stateless; import javax.jws.WebService; +import javax.jws.WebMethod; /** * Created by IntelliJ IDEA. @@ -10,12 +11,14 @@ * Time: 7:37:05 PM * To change this template use File | Settings | File Templates. */ [EMAIL PROTECTED] @Stateless [EMAIL PROTECTED] public class MyService implements MyServiceItf { - public String hello(String msg) { - return "Hello " + msg + "!"; + @WebMethod + + public String hello(String s) { + return "Hello " + s + "!"; } } Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyServiceItf.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyServiceItf.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyServiceItf.java (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/MyServiceItf.java Fri Feb 1 05:44:02 2008 @@ -1,6 +1,14 @@ package org.apache.servicemix.ejb3.deployer; +import javax.jws.WebMethod; import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; /** * Created by IntelliJ IDEA. @@ -10,8 +18,26 @@ * To change this template use File | Settings | File Templates. */ @WebService [EMAIL PROTECTED](style = SOAPBinding.Style.DOCUMENT) public interface MyServiceItf { - String hello(String ms); + @XmlType + @XmlAccessorType(XmlAccessType.FIELD) + public class HelloRequest { + @XmlElement + public String message; + } + + @XmlType + @XmlAccessorType(XmlAccessType.FIELD) + public class HelloResponse { + @XmlElement + public String message; + } + + @WebMethod + @ResponseWrapper(className = "org.apache.servicemix.ejb3.deployer.MyServiceItf$HelloRequest", localName = "helloResponse") + @RequestWrapper(className = "org.apache.servicemix.ejb3.deployer.MyServiceItf$HelloRequest", localName = "hello") + public String hello(String message); } Modified: servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/Test.java URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/Test.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/Test.java (original) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/test/java/org/apache/servicemix/ejb3/deployer/Test.java Fri Feb 1 05:44:02 2008 @@ -1,17 +1,30 @@ package org.apache.servicemix.ejb3.deployer; +import java.io.ByteArrayInputStream; import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Dictionary; +import java.util.HashMap; import java.util.List; import javax.servlet.Servlet; import javax.servlet.ServletException; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; import junit.framework.TestCase; +import org.apache.geronimo.transaction.manager.GeronimoTransactionManager; import org.apache.openejb.server.ServerService; +import org.apache.servicemix.nmr.api.Channel; +import org.apache.servicemix.nmr.api.Exchange; +import org.apache.servicemix.nmr.api.Pattern; +import org.apache.servicemix.nmr.api.Reference; +import org.apache.servicemix.nmr.core.ServiceMix; import org.osgi.service.http.HttpContext; import org.osgi.service.http.HttpService; import org.osgi.service.http.NamespaceException; @@ -25,7 +38,7 @@ */ public class Test extends TestCase { - public void test() throws Exception { + public void testWebService() throws Exception { System.setProperty("openejb.deployments.classpath", "false"); final List<String> servlets = new ArrayList<String>(); @@ -52,8 +65,12 @@ factory.setServerServices(services); factory.init(); - File f = new File("target/test-classes"); - URL url = f.getAbsoluteFile().toURL(); + URL url = getClass().getResource("Test.class"); + File f = new File(url.toURI()); + while (!f.getName().equals("test-classes")) { + f = f.getParentFile(); + } + url = f.getAbsoluteFile().toURL(); URLClassLoader cl = new URLClassLoader(new URL[] {url}, Test.class.getClassLoader()); System.out.println(url.toString()); //new Deployer().deploy(cl, null); @@ -61,5 +78,46 @@ assertEquals(1, servlets.size()); } + + public void testEjb() throws Exception { + System.setProperty("openejb.deployments.classpath", "false"); + + ServiceMix nmr = new ServiceMix(); + nmr.init(); + + OpenEjbFactory factory = new OpenEjbFactory(); + List<ServerService> services = new ArrayList<ServerService>(); + NmrService svc = new NmrService(); + svc.setNmr(nmr); + services.add(svc); + factory.setServerServices(services); + factory.setTransactionManager(new GeronimoTransactionManager()); + factory.init(); + + URL url = getClass().getResource("Test.class"); + File f = new File(url.toURI()); + while (!f.getName().equals("test-classes")) { + f = f.getParentFile(); + } + url = f.getAbsoluteFile().toURL(); + URLClassLoader cl = new URLClassLoader(new URL[] {url}, Test.class.getClassLoader()); + System.out.println(url.toString()); + //new Deployer().deploy(cl, null); + new Deployer().deploy(cl, url.toString()); + + Channel channel = nmr.createChannel(); + Reference ref = nmr.getEndpointRegistry().lookup(new HashMap<String, Object>()); + Exchange e = channel.createExchange(Pattern.InOut); + e.setTarget(ref); + e.setOperation(new QName("http://deployer.ejb3.servicemix.apache.org/", "hello")); + e.getIn().setBody(new StreamSource(new ByteArrayInputStream("<jbi:message xmlns:jbi='http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper'><jbi:part><hello xmlns='http://deployer.ejb3.servicemix.apache.org/'><arg0>world</arg0></hello></jbi:part></jbi:message>".getBytes()))); + channel.sendSync(e); + + Source src = (Source) e.getOut().getBody(); + TransformerFactory.newInstance().newTransformer().transform(src, new StreamResult(System.err)); + + assertEquals(1, nmr.getEndpointRegistry().getServices().size()); + } + } Added: servicemix/smx4/features/trunk/ejb3/deployer/src/test/resources/log4j.properties URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/deployer/src/test/resources/log4j.properties?rev=617498&view=auto ============================================================================== --- servicemix/smx4/features/trunk/ejb3/deployer/src/test/resources/log4j.properties (added) +++ servicemix/smx4/features/trunk/ejb3/deployer/src/test/resources/log4j.properties Fri Feb 1 05:44:02 2008 @@ -0,0 +1,29 @@ +# +# 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. +# +################################################################################ + +log4j.rootLogger=DEBUG, stdout + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n + +log4j.logger.org.springframework.osgi=DEBUG +log4j.logger.org.apache.camel=DEBUG +log4j.logger.org.apache.servicemix=DEBUG + +#log4j.debug=false \ No newline at end of file Modified: servicemix/smx4/features/trunk/ejb3/pom.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/ejb3/pom.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/ejb3/pom.xml (original) +++ servicemix/smx4/features/trunk/ejb3/pom.xml Fri Feb 1 05:44:02 2008 @@ -36,6 +36,8 @@ <modules> <module>bundles</module> + <module>cxf-transport-nmr</module> + <module>cxf-binding-nmr</module> <module>deployer</module> </modules> Modified: servicemix/smx4/features/trunk/pom.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/pom.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/features/trunk/pom.xml (original) +++ servicemix/smx4/features/trunk/pom.xml Fri Feb 1 05:44:02 2008 @@ -69,7 +69,7 @@ <commons.logging.version>1.1</commons.logging.version> <cxf.version>2.0.4-incubator</cxf.version> <felix.bundlerepository.version>1.1.0-r605854</felix.bundlerepository.version> - <felix.compendium.version>0.9.0-r605854</felix.compendium.version> + <felix.compendium.version>1.0.0</felix.compendium.version> <felix.configadmin.version>0.9.0-r605854</felix.configadmin.version> <felix.core.version>1.1.0-r605854</felix.core.version> <felix.osgi.version>1.0.0</felix.osgi.version> @@ -102,15 +102,15 @@ <junit.version>4.4</junit.version> <log4j.version>1.2.14</log4j.version> <mina.version>1.1.6-r602102</mina.version> - <openejb.version>3.0.0-SNAPSHOT</openejb.version> + <openejb.version>3.0-SNAPSHOT</openejb.version> <openjpa.version>1.0.1</openjpa.version> - <pax.logging.version>1.0-RC2</pax.logging.version> + <pax.logging.version>1.0.0</pax.logging.version> <pax.runner.version>0.5.5</pax.runner.version> <pax.web.version>0.3.1</pax.web.version> <servicemix.kernel.version>1.0-m2-SNAPSHOT</servicemix.kernel.version> <servicemix.nmr.version>1.0-SNAPSHOT</servicemix.nmr.version> - <spring.version>2.5</spring.version> - <spring.osgi.version>1.0-rc2</spring.osgi.version> + <spring.version>2.5.1</spring.version> + <spring.osgi.version>1.0</spring.osgi.version> <xstream.version>1.2.2</xstream.version> <xbean.version>3.4-SNAPSHOT</xbean.version> </properties> @@ -134,12 +134,6 @@ <name>Incubator Repository</name> <url>http://people.apache.org/repo/m2-incubating-repository</url> </repository> - <!-- Spring Milestone repo --> - <repository> - <id>spring-milestone</id> - <name>Spring Milestone Repository</name> - <url>http://s3.amazonaws.com/maven.springframework.org/milestone</url> - </repository> <!-- OPS4j repository --> <repository> <id>ops4j</id> @@ -155,6 +149,14 @@ <name>ServiceMix Repository</name> <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url> </pluginRepository> + <!-- Snapshot repo --> + <pluginRepository> + <id>snapshots</id> + <name>Snapshots Repository</name> + <url>http://people.apache.org/repo/m2-snapshot-repository</url> + <releases><enabled>false</enabled></releases> + <snapshots><enabled>true</enabled></snapshots> + </pluginRepository> </pluginRepositories> <dependencyManagement> @@ -228,6 +230,31 @@ <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>${commons.logging.version}</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jms_1.1_spec</artifactId> + <version>${geronimo.jms.version}</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jta_1.1_spec</artifactId> + <version>${geronimo.jta.version}</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-servlet_1.5_spec</artifactId> + <version>${geronimo.servlet.version}</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId> + <version>${geronimo.j2ee.connector.version}</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-j2ee-management_1.1_spec</artifactId> + <version>${geronimo.j2ee.management.version}</version> </dependency> </dependencies> </dependencyManagement> Modified: servicemix/smx4/kernel/trunk/pom.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/pom.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/kernel/trunk/pom.xml (original) +++ servicemix/smx4/kernel/trunk/pom.xml Fri Feb 1 05:44:02 2008 @@ -102,12 +102,6 @@ </repository> <!-- Spring Milestone repo --> <repository> - <id>spring-milestone</id> - <name>Spring Milestone Repository</name> - <url>http://s3.amazonaws.com/maven.springframework.org/milestone</url> - </repository> - <!-- Spring Milestone repo --> - <repository> <id>ops4j</id> <name>OPS4j Repository</name> <url>http://repository.ops4j.org/maven2</url> Modified: servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java (original) +++ servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java Fri Feb 1 05:44:02 2008 @@ -49,7 +49,6 @@ import org.osgi.service.prefs.PreferencesService; import org.springframework.osgi.util.BundleDelegatingClassLoader; import org.springframework.osgi.util.OsgiServiceReferenceUtils; -import org.springframework.osgi.util.OsgiServiceUtils; import org.springframework.osgi.util.OsgiStringUtils; /** @@ -278,7 +277,7 @@ String filter = "(" + NAME + "=" + name + ")"; BundleContext context = getBundleContext(); ServiceReference reference = OsgiServiceReferenceUtils.getServiceReference(context, Component.class.getName(), filter); - return (Component) OsgiServiceUtils.getService(context, reference); + return (Component) context.getService(reference); } protected ClassLoader createComponentClassLoader(ComponentDesc component, Bundle bundle) { Modified: servicemix/smx4/nmr/trunk/pom.xml URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/pom.xml?rev=617498&r1=617497&r2=617498&view=diff ============================================================================== --- servicemix/smx4/nmr/trunk/pom.xml (original) +++ servicemix/smx4/nmr/trunk/pom.xml Fri Feb 1 05:44:02 2008 @@ -61,14 +61,14 @@ <aopalliance.version>1.0</aopalliance.version> <asm.version>2.2.3</asm.version> <cglib.version>2.1_3</cglib.version> - <commons.io.version>1.3.1</commons.io.version> - <commons.logging.version>1.1</commons.logging.version> + <commons.io.version>1.3.2</commons.io.version> + <commons.logging.version>1.1.1</commons.logging.version> <felix.configadmin.version>0.9.0-r605854</felix.configadmin.version> <felix.main.version>1.1.0-r605854</felix.main.version> <felix.plugin.version>1.2.0</felix.plugin.version> <felix.framework.version>1.1.0-r605854-patched</felix.framework.version> <felix.osgi.version>1.0.0</felix.osgi.version> - <felix.compendium.version>0.9.0-r605854</felix.compendium.version> + <felix.compendium.version>1.0.0</felix.compendium.version> <felix.bundlerepository.version>1.1.0-r605854</felix.bundlerepository.version> <geronimo.activation.version>1.0.1</geronimo.activation.version> <geronimo.servlet.version>1.1.1</geronimo.servlet.version> @@ -78,13 +78,13 @@ <jline.version>0.9.93</jline.version> <log4j.version>1.2.14</log4j.version> <mina.version>1.1.6-r602102</mina.version> - <pax.logging.version>1.0-RC2</pax.logging.version> + <pax.logging.version>1.0</pax.logging.version> <smx3.version>3.2.1</smx3.version> - <smx.kernel.version>1.0-m1-SNAPSHOT</smx.kernel.version> - <spring.osgi.version>1.0-rc2</spring.osgi.version> - <spring.version>2.5</spring.version> + <smx.kernel.version>1.0-m2-SNAPSHOT</smx.kernel.version> + <spring.osgi.version>1.0</spring.osgi.version> + <spring.version>2.5.1</spring.version> <woodstox.version>3.2.3</woodstox.version> - <xbean.version>3.3-SNAPSHOT</xbean.version> + <xbean.version>3.3</xbean.version> <xstream.version>1.2.2</xstream.version> </properties> @@ -112,12 +112,6 @@ <snapshots> <enabled>true</enabled> </snapshots> - </repository> - <!-- Spring Milestone repo --> - <repository> - <id>spring-milestone</id> - <name>Spring Milestone Repository</name> - <url>http://s3.amazonaws.com/maven.springframework.org/milestone</url> </repository> </repositories>
