Hi Dan, Thanks for the reminder.
And for the > Where did the "http://localhost:8181/cxf” value come from? It's the default cxf context when use in OSGi container Do you mean we should get those default value(8181 and /cxf) from the OSGi configAdmin? ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman小屋 On 2013-11-8, at 下午2:51, Daniel Kulp wrote: > Freeman, > > I have some problems with this commit…. inline…. > > > > On Nov 8, 2013, at 4:30 AM, [email protected] wrote: > >> >> >> Modified: cxf/trunk/rt/frontend/jaxrs/pom.xml >> URL: >> http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/pom.xml?rev=1539911&r1=1539910&r2=1539911&view=diff >> ============================================================================== >> --- cxf/trunk/rt/frontend/jaxrs/pom.xml (original) >> +++ cxf/trunk/rt/frontend/jaxrs/pom.xml Fri Nov 8 03:30:41 2013 >> @@ -36,6 +36,7 @@ >> javax.servlet*;version="${cxf.osgi.javax.servlet.version}", >> org.apache.aries*;version="${cxf.aries.version.range}", >> >> org.springframework*;resolution:="optional";version="${cxf.osgi.spring.version}", >> + >> com.wordnik.swagger.jaxrs*;resolution:="optional";version="[1.3.0, 1.4.0)", >> javax.ws.rs.client;version="[2.0,3)", >> javax.ws.rs*;version="[1.0,3)", >> </cxf.osgi.import> >> @@ -158,6 +159,10 @@ >> </exclusion> >> </exclusions> >> </dependency> >> + <dependency> >> + <groupId>com.wordnik</groupId> >> + <artifactId>swagger-jaxrs_2.10</artifactId> >> + </dependency> >> </dependencies> >> > > The dependency should likely be marked optional as well. > > > > >> Modified: >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java >> URL: >> http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=1539911&r1=1539910&r2=1539911&view=diff >> ============================================================================== >> --- >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java >> (original) >> +++ >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java >> Fri Nov 8 03:30:41 2013 >> @@ -110,6 +110,7 @@ public class AbstractJAXRSFactoryBean ex >> super.setBus(bus); >> checkBindingFactory(bus); >> serviceFactory.setBus(bus); >> + bus.setProperty(JAXRSServiceFactoryBean.class.getName(), >> serviceFactory); >> } > > I’m -1 to this…. We can have multiple ServiceFactories being initialized > at once on the bus. This is not thread safe at all. In particular, if using > the API’s to create many clients at once from various threads, this would > cause all kinds of potential problems. > > >> /* >> @@ -204,6 +205,7 @@ public class AbstractJAXRSFactoryBean ex >> */ >> public void setServiceFactory(JAXRSServiceFactoryBean serviceFactory) { >> this.serviceFactory = serviceFactory; >> + getBus().setProperty(JAXRSServiceFactoryBean.class.getName(), >> serviceFactory); >> } > > Likewise. > > If something is needed in the Feature, make sure it’s saved on the Server > object or, preferably, on the Endpoint. > > >> protected Endpoint createEndpoint() throws BusException, >> EndpointException { > > Likely in this call someplace or the createEndpointInfo method. > > >> >> Added: >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerFeature.java >> URL: >> http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerFeature.java?rev=1539911&view=auto >> ============================================================================== >> --- >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerFeature.java >> (added) >> +++ >> cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerFeature.java >> Fri Nov 8 03:30:41 2013 >> @@ -0,0 +1,142 @@ > > > snip…... > >> + >> + private void calulateDefaultBasePath(Server server) { >> + String address = >> server.getEndpoint().getEndpointInfo().getAddress(); >> + if (getBasePath() == null || getBasePath().length() == 0) { >> + if (address.startsWith("http")) { >> + setBasePath(address + "/api-docs"); >> + } else { >> + setBasePath("http://localhost:8181/cxf" + address + >> "/api-docs"); >> + } >> + } >> + } > > Where did the "http://localhost:8181/cxf” value come from? > > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com >
