Forgot writing a log. This commit is for CXF-1162. Run JAX-RS server with Spring configuration.
Jervis > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: 2007年11月1日 17:51 > To: [email protected] > Subject: svn commit: r590950 - in /incubator/cxf/trunk: > rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ > rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/ > rt/frontend/jaxrs/src/main/resources/META-INF/ > rt/frontend/jaxrs/src/main/resources/schema... > > > Author: jliu > Date: Thu Nov 1 02:50:29 2007 > New Revision: 590950 > > URL: http://svn.apache.org/viewvc?rev=590950&view=rev > Log: (empty) > > Added: > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/ > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java > (with props) > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java (with props) > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.handlers > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.schemas > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/ > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd (with props) > > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java (with props) > > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java (with props) > incubator/cxf/trunk/systests/src/test/resources/jaxrs/ > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml (with props) > > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > web.xml (with props) > Modified: > > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/JAXRSServerFactoryBean.java > > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServer.java > > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerFromResourceInstance.java > > Modified: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/JAXRSServerFactoryBean.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean > .java?rev=590950&r1=590949&r2=590950&view=diff > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/JAXRSServerFactoryBean.java (original) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/JAXRSServerFactoryBean.java Thu Nov 1 02:50:29 2007 > @@ -65,11 +65,12 @@ > > public JAXRSServerFactoryBean() { > this(new JAXRSServiceFactoryBean()); > - doInit = true; > } > + > public JAXRSServerFactoryBean(JAXRSServiceFactoryBean sf) { > this.serviceFactory = sf; > doInit = true; > + setBindingId(JAXRSBindingFactory.JAXRS_BINDING_ID); > } > > public Server create() { > > Added: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/java/org/apache/cxf/jaxrs/spring/JAXRSServerFact > oryBeanDefinitionParser.java?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java (added) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java > Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,106 @@ > +/** > + * 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.cxf.jaxrs.spring; > + > +import java.util.List; > +import java.util.Map; > + > +import javax.xml.namespace.QName; > + > +import org.w3c.dom.Element; > + > +import org.apache.cxf.common.util.StringUtils; > +import > org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser; > +import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; > + > +import > org.springframework.beans.factory.BeanDefinitionStoreException; > +import > org.springframework.beans.factory.support.AbstractBeanDefinition; > +import > org.springframework.beans.factory.support.BeanDefinitionBuilder; > +import org.springframework.beans.factory.xml.ParserContext; > + > + > +public class JAXRSServerFactoryBeanDefinitionParser extends > AbstractBeanDefinitionParser { > + > + > + public JAXRSServerFactoryBeanDefinitionParser() { > + super(); > + setBeanClass(JAXRSServerFactoryBean.class); > + } > + > + @Override > + protected void mapAttribute(BeanDefinitionBuilder bean, > Element e, String name, String val) { > + if ("endpointName".equals(name) || > "serviceName".equals(name)) { > + QName q = parseQName(e, val); > + bean.addPropertyValue(name, q); > + } else { > + mapToProperty(bean, name, val); > + } > + } > + > + @Override > + protected void mapElement(ParserContext ctx, > BeanDefinitionBuilder bean, Element el, String name) { > + if ("properties".equals(name)) { > + Map map = ctx.getDelegate().parseMapElement(el, > bean.getBeanDefinition()); > + bean.addPropertyValue("properties", map); > + } else if ("executor".equals(name)) { > + setFirstChildAsProperty(el, ctx, bean, > "serviceFactory.executor"); > + } else if ("invoker".equals(name)) { > + setFirstChildAsProperty(el, ctx, bean, > "serviceFactory.invoker"); > + } else if ("binding".equals(name)) { > + setFirstChildAsProperty(el, ctx, bean, "bindingConfig"); > + } else if ("inInterceptors".equals(name) || > "inFaultInterceptors".equals(name) > + || "outInterceptors".equals(name) || > "outFaultInterceptors".equals(name) > + || "features".equals(name) || > "schemaLocations".equals(name)) { > + List list = > ctx.getDelegate().parseListElement(el, bean.getBeanDefinition()); > + bean.addPropertyValue(name, list); > + } else { > + setFirstChildAsProperty(el, ctx, bean, name); > + } > + } > + > + > + @Override > + protected void doParse(Element element, ParserContext > ctx, BeanDefinitionBuilder bean) { > + super.doParse(element, ctx, bean); > + > + bean.setInitMethodName("create"); > + > + // We don't really want to delay the registration of > our Server > + bean.setLazyInit(false); > + } > + > + @Override > + protected String resolveId(Element elem, > + AbstractBeanDefinition definition, > + ParserContext ctx) > + throws BeanDefinitionStoreException { > + String id = super.resolveId(elem, definition, ctx); > + if (StringUtils.isEmpty(id)) { > + id = getBeanClass().getName() + "--" + > definition.hashCode(); > + } > + > + return id; > + } > + > + @Override > + protected boolean hasBusProperty() { > + return true; > + } > + > +} > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/JAXRSServerFactoryBeanDefinitionParser.java > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Added: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/java/org/apache/cxf/jaxrs/spring/NamespaceHandle > r.java?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java (added) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java Thu Nov 1 02:50:29 2007 > @@ -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. > + */ > +package org.apache.cxf.jaxrs.spring; > + > +import > org.apache.cxf.configuration.spring.StringBeanDefinitionParser; > +import org.springframework.beans.factory.xml.NamespaceHandlerSupport; > + > +public class NamespaceHandler extends NamespaceHandlerSupport { > + public void init() { > + registerBeanDefinitionParser("server", new > JAXRSServerFactoryBeanDefinitionParser()); > + registerBeanDefinitionParser("schemaLocation", new > StringBeanDefinitionParser()); > + } > +} > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache > /cxf/jaxrs/spring/NamespaceHandler.java > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Added: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.handlers > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/resources/META-INF/spring.handlers?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.handlers (added) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.handlers Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,21 @@ > +# > +# > +# 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. > +# > +# > +http\://cxf.apache.org/jaxrs=org.apache.cxf.jaxrs.spring.Name > spaceHandler > \ No newline at end of file > > Added: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.schemas > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/resources/META-INF/spring.schemas?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.schemas (added) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/META- > INF/spring.schemas Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,21 @@ > +# > +# > +# 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. > +# > +# > +http\://cxf.apache.org/schemas/jaxrs.xsd=schemas/jaxrs.xsd > \ No newline at end of file > > Added: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/j > axrs/src/main/resources/schemas/jaxrs.xsd?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd (added) > +++ > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,69 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!-- > + Licensed to the Apache Software Foundation (ASF) under one > + or more contributor license agreements. See the NOTICE file > + distributed with this work for additional information > + regarding copyright ownership. The ASF licenses this file > + to you under the Apache License, Version 2.0 (the > + "License"); you may not use this file except in compliance > + with the License. You may obtain a copy of the License at > + > + http://www.apache.org/licenses/LICENSE-2.0 > + > + Unless required by applicable law or agreed to in writing, > + software distributed under the License is distributed on an > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + KIND, either express or implied. See the License for the > + specific language governing permissions and limitations > + under the License. > +--> > +<xsd:schema xmlns="http://cxf.apache.org/jaxrs" > + xmlns:xsd="http://www.w3.org/2001/XMLSchema" > + xmlns:beans="http://www.springframework.org/schema/beans" > + xmlns:cxf-beans="http://cxf.apache.org/configuration/beans" > + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + targetNamespace="http://cxf.apache.org/jaxrs" > + elementFormDefault="qualified" > + attributeFormDefault="unqualified" > > + > + <xsd:import > namespace="http://www.springframework.org/schema/beans" > schemaLocation="http://www.springframework.org/schema/beans/sp > ring-beans.xsd"/> > + <xsd:import > namespace="http://cxf.apache.org/configuration/beans" > schemaLocation="http://cxf.apache.org/schemas/configuration/cx > f-beans.xsd"/> > + > + <xsd:element name="server"> > + <xsd:complexType> > + <xsd:complexContent> > + <xsd:extension base="beans:identifiedType"> > + <xsd:all> > + <xsd:element name="binding" type="xsd:anyType" > minOccurs="0"/> > + <xsd:element name="executor" type="xsd:anyType" > minOccurs="0"/> > + <xsd:element name="features" type="xsd:anyType" > minOccurs="0"/> > + <xsd:element name="inInterceptors" > type="xsd:anyType" minOccurs="0"/> > + <xsd:element name="inFaultInterceptors" > type="xsd:anyType" minOccurs="0"/> > + <xsd:element name="invoker" type="xsd:anyType" > minOccurs="0"/> > + <xsd:element name="outInterceptors" > type="xsd:anyType" minOccurs="0"/> > + <xsd:element name="outFaultInterceptors" > type="xsd:anyType" minOccurs="0"/> > + <xsd:element name="properties" > type="beans:mapType" minOccurs="0"/> > + <xsd:element name="serviceBeans" > type="xsd:anyType" minOccurs="0"/> > + <xsd:element name="serviceFactory" > type="xsd:anyType" minOccurs="0"/> > + </xsd:all> > + <xsd:attributeGroup ref="cxf-beans:beanAttributes"/> > + <xsd:attribute name="address" type="xsd:string" /> > + <xsd:attribute name="bindingId" type="xsd:string" /> > + <xsd:attribute name="bus" type="xsd:string" /> > + <xsd:attribute name="serviceClass" type="xsd:string"/> > + <xsd:attribute name="serviceBeans" > type="xsd:string"/> > + <xsd:attribute name="transportId" type="xsd:string"/> > + <xsd:attribute name="endpointName" type="xsd:QName" /> > + <xsd:attribute name="serviceName" type="xsd:QName" /> > + </xsd:extension> > + </xsd:complexContent> > + </xsd:complexType> > + </xsd:element> > + > + <xsd:complexType name="schemasType"> > + <xsd:sequence> > + <xsd:element name="schemaLocation" type="xsd:string" > minOccurs="0" maxOccurs="unbounded"/> > + </xsd:sequence> > + </xsd:complexType> > + > +</xsd:schema> > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Propchange: > incubator/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schem > as/jaxrs.xsd > -------------------------------------------------------------- > ---------------- > svn:mime-type = text/xml > > Modified: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServer.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/java/org/apache/cxf/systest/jaxrs/BookServer.java?rev=590 > 950&r1=590949&r2=590950&view=diff > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServer.java (original) > +++ > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServer.java Thu Nov 1 02:50:29 2007 > @@ -19,8 +19,6 @@ > > package org.apache.cxf.systest.jaxrs; > > - > -import org.apache.cxf.jaxrs.JAXRSBindingFactory; > import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; > import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider; > import org.apache.cxf.testutil.common.AbstractBusTestServerBase; > @@ -32,7 +30,6 @@ > sf.setResourceClasses(BookStore.class); > //default lifecycle is per-request, change it to singleton > sf.setResourceProvider(BookStore.class, new > SingletonResourceProvider()); > - sf.setBindingId(JAXRSBindingFactory.JAXRS_BINDING_ID); > sf.setAddress("http://localhost:9080/"); > > sf.create(); > > Modified: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerFromResourceInstance.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/java/org/apache/cxf/systest/jaxrs/BookServerFromResourceI > nstance.java?rev=590950&r1=590949&r2=590950&view=diff > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerFromResourceInstance.java (original) > +++ > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerFromResourceInstance.java Thu Nov 1 02:50:29 2007 > @@ -19,8 +19,6 @@ > > package org.apache.cxf.systest.jaxrs; > > - > -import org.apache.cxf.jaxrs.JAXRSBindingFactory; > import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; > import org.apache.cxf.testutil.common.AbstractBusTestServerBase; > > @@ -30,7 +28,6 @@ > JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); > BookStore bs = new BookStore(); > sf.setServiceBeans(bs); > - sf.setBindingId(JAXRSBindingFactory.JAXRS_BINDING_ID); > sf.setAddress("http://localhost:9080/"); > > sf.create(); > > Added: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/java/org/apache/cxf/systest/jaxrs/BookServerSpring.java?r > ev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java (added) > +++ > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,89 @@ > +/** > + * 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.cxf.systest.jaxrs; > + > +import java.net.URISyntaxException; > + > +import org.apache.cxf.testutil.common.AbstractBusTestServerBase; > +import org.mortbay.jetty.Connector; > +import org.mortbay.jetty.Handler; > +import org.mortbay.jetty.handler.DefaultHandler; > +import org.mortbay.jetty.handler.HandlerCollection; > +import org.mortbay.jetty.nio.SelectChannelConnector; > +import org.mortbay.jetty.webapp.WebAppContext; > + > + > +public class BookServerSpring extends AbstractBusTestServerBase { > + > + private org.mortbay.jetty.Server server; > + > + protected void run() { > + System.out.println("Starting Server"); > + > + server = new org.mortbay.jetty.Server(); > + > + SelectChannelConnector connector = new > SelectChannelConnector(); > + connector.setPort(9080); > + server.setConnectors(new Connector[] {connector}); > + > + WebAppContext webappcontext = new WebAppContext(); > + String contextPath = null; > + try { > + contextPath = > getClass().getResource("/jaxrs").toURI().getPath(); > + } catch (URISyntaxException e1) { > + e1.printStackTrace(); > + } > + webappcontext.setContextPath("/"); > + > + webappcontext.setWar(contextPath); > + > + HandlerCollection handlers = new HandlerCollection(); > + handlers.setHandlers(new Handler[] {webappcontext, > new DefaultHandler()}); > + > + server.setHandler(handlers); > + try { > + server.start(); > + > + } catch (Exception e) { > + e.printStackTrace(); > + } > + } > + > + public boolean stopInProcess() throws Exception { > + boolean ret = super.stopInProcess(); > + if (server != null) { > + server.stop(); > + } > + return ret; > + } > + > + public static void main(String args[]) { > + try { > + BookServerSpring s = new BookServerSpring(); > + s.start(); > + } catch (Exception ex) { > + ex.printStackTrace(); > + System.exit(-1); > + } finally { > + System.out.println("done!"); > + } > + } > + > +} > > Propchange: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/BookServerSpring.java > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Added: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerSpring > BookTest.java?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java (added) > +++ > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java Thu Nov 1 > 02:50:29 2007 > @@ -0,0 +1,62 @@ > +/** > + * 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.cxf.systest.jaxrs; > + > +import java.io.InputStream; > +import java.net.URL; > + > +import org.apache.cxf.helpers.IOUtils; > +import org.apache.cxf.io.CachedOutputStream; > +import > org.apache.cxf.testutil.common.AbstractBusClientServerTestBase; > +import org.junit.BeforeClass; > +import org.junit.Test; > + > +public class JAXRSClientServerSpringBookTest extends > AbstractBusClientServerTestBase { > + > + @BeforeClass > + public static void startServers() throws Exception { > + assertTrue("server did not launch correctly", > launchServer(BookServerSpring.class)); > + } > + > + @Test > + public void testGetBook123() throws Exception { > + String endpointAddress = > + "http://localhost:9080/bookstore/books/123"; > + URL url = new URL(endpointAddress); > + InputStream in = url.openStream(); > + assertNotNull(in); > + > + InputStream expected = getClass() > + > .getResourceAsStream("resources/expected_get_book123.txt"); > + > + //System.out.println("---" + getStringFromInputStream(in)); > + assertEquals(getStringFromInputStream(expected), > getStringFromInputStream(in)); > + } > + > + private String getStringFromInputStream(InputStream in) > throws Exception { > + CachedOutputStream bos = new CachedOutputStream(); > + IOUtils.copy(in, bos); > + in.close(); > + bos.close(); > + //System.out.println(bos.getOut().toString()); > + return bos.getOut().toString(); > + } > + > +} > > Propchange: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/syst > est/jaxrs/JAXRSClientServerSpringBookTest.java > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Added: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/resources/jaxrs/WEB-INF/beans.xml?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml (added) > +++ > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,48 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!-- > + Licensed to the Apache Software Foundation (ASF) under one > + or more contributor license agreements. See the NOTICE file > + distributed with this work for additional information > + regarding copyright ownership. The ASF licenses this file > + to you under the Apache License, Version 2.0 (the > + "License"); you may not use this file except in compliance > + with the License. You may obtain a copy of the License at > + > + http://www.apache.org/licenses/LICENSE-2.0 > + > + Unless required by applicable law or agreed to in writing, > + software distributed under the License is distributed on an > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + KIND, either express or implied. See the License for the > + specific language governing permissions and limitations > + under the License. > +--> > +<!-- START SNIPPET: beans --> > +<!--beans xmlns="http://www.springframework.org/schema/beans" > + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + xmlns:simple="http://cxf.apache.org/simple" > + xsi:schemaLocation=" > + http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > + http://cxf.apache.org/simple > http://cxf.apache.org/schemas/simple.xsd"--> > +<beans xmlns="http://www.springframework.org/schema/beans" > + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + xmlns:jaxrs="http://cxf.apache.org/jaxrs" > + xsi:schemaLocation=" > +http://www.springframework.org/schema/beans > +http://www.springframework.org/schema/beans/spring-beans.xsd > +http://cxf.apache.org/jaxrs > +http://cxf.apache.org/schemas/jaxrs.xsd"> > + > + <import resource="classpath:META-INF/cxf/cxf.xml" /> > + <import > resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /> > + <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > + > + <jaxrs:server id="bookservice" > + address="/"> > + <jaxrs:serviceBeans> > + <bean class="org.apache.cxf.systest.jaxrs.BookStore" /> > + </jaxrs:serviceBeans> > + </jaxrs:server> > + > +</beans> > +<!-- END SNIPPET: beans --> > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > beans.xml > -------------------------------------------------------------- > ---------------- > svn:mime-type = text/xml > > Added: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/web.xml > URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/ > test/resources/jaxrs/WEB-INF/web.xml?rev=590950&view=auto > ============================================================== > ================ > --- > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > web.xml (added) > +++ > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/ > web.xml Thu Nov 1 02:50:29 2007 > @@ -0,0 +1,52 @@ > +<?xml version="1.0" encoding="ISO-8859-1"?> > + > +<!DOCTYPE web-app > + PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" > + "http://java.sun.com/dtd/web-app_2_3.dtd"> > + > +<!-- > + 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. > +--> > +<!-- START SNIPPET: webxml --> > +<web-app> > + <context-param> > + <param-name>contextConfigLocation</param-name> > + <param-value>WEB-INF/beans.xml</param-value> > + </context-param> > + > + <listener> > + <listener-class> > + > org.springframework.web.context.ContextLoaderListener > + </listener-class> > + </listener> > + > + <servlet> > + <servlet-name>CXFServlet</servlet-name> > + <display-name>CXF Servlet</display-name> > + <servlet-class> > + org.apache.cxf.transport.servlet.CXFServlet > + </servlet-class> > + <load-on-startup>1</load-on-startup> > + </servlet> > + > + <servlet-mapping> > + <servlet-name>CXFServlet</servlet-name> > + <url-pattern>/*</url-pattern> > + </servlet-mapping> > +</web-app> > +<!-- END SNIPPET: webxml --> > \ No newline at end of file > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/web.xml > -------------------------------------------------------------- > ---------------- > svn:eol-style = native > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/web.xml > -------------------------------------------------------------- > ---------------- > svn:keywords = Rev Date > > Propchange: > incubator/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/web.xml > -------------------------------------------------------------- > ---------------- > svn:mime-type = text/xml > > ---------------------------- IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
