You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2009/07/01 16:43:01 UTC
svn commit: r790194 - in /cxf/branches/2.2.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/
rt/frontend/jaxrs/sr...
Author: sergeyb
Date: Wed Jul 1 14:43:00 2009
New Revision: 790194
URL: http://svn.apache.org/viewvc?rev=790194&view=rev
Log:
Merged revisions 790188 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r790188 | sergeyb | 2009-07-01 15:37:32 +0100 (Wed, 01 Jul 2009) | 1 line
JAXRS : support for ResourceManager lookups
........
Added:
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/model/
- copied from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/model/
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/model/resources.xml
- copied unchanged from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/model/resources.xml
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/schemas/
- copied from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/schemas/
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/schemas/bookid.xsd
- copied unchanged from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/schemas/bookid.xsd
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/templates/
- copied from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/templates/
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/templates/template.xsl
- copied unchanged from r790188, cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/templates/template.xsl
Removed:
cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd
cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/template.xsl
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProvider.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/schemas/SchemaHandler.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/beans.xml
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jul 1 14:43:00 2009
@@ -1 +1 @@
-/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134
+/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java Wed Jul 1 14:43:00 2009
@@ -232,6 +232,7 @@
if (entityProviders != null) {
factory.setUserProviders(entityProviders);
}
+ factory.setBus(getBus());
if (schemaLocations != null) {
factory.setSchemaLocations(schemaLocations);
}
@@ -252,14 +253,14 @@
}
public void setModelRef(String modelRef) {
- List<UserResource> resources = ResourceUtils.getUserResources(modelRef);
+ List<UserResource> resources = ResourceUtils.getUserResources(modelRef, getBus());
if (resources != null) {
serviceFactory.setUserResources(resources);
}
}
public void setModelRefWithServiceClass(String modelRef, Class<?> sClass) {
- List<UserResource> resources = ResourceUtils.getUserResources(modelRef);
+ List<UserResource> resources = ResourceUtils.getUserResources(modelRef, getBus());
if (resources != null) {
serviceFactory.setUserResourcesWithServiceClass(resources, sClass);
}
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProvider.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProvider.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProvider.java Wed Jul 1 14:43:00 2009
@@ -21,11 +21,25 @@
import java.util.List;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+
public abstract class AbstractConfigurableProvider {
private List<String> consumeMediaTypes;
private List<String> produceMediaTypes;
private boolean enableBuffering;
+ private Bus bus;
+
+ public void setBus(Bus b) {
+ if (bus != null) {
+ bus = b;
+ }
+ }
+
+ public Bus getBus() {
+ return bus != null ? bus : BusFactory.getThreadDefaultBus();
+ }
public void setConsumeMediaTypes(List<String> types) {
consumeMediaTypes = types;
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Wed Jul 1 14:43:00 2009
@@ -81,7 +81,7 @@
}
public void setSchemaLocations(List<String> locations) {
- schema = SchemaHandler.createSchema(locations);
+ schema = SchemaHandler.createSchema(locations, getBus());
}
public void setSchema(Schema s) {
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java Wed Jul 1 14:43:00 2009
@@ -36,6 +36,7 @@
import javax.ws.rs.ext.MessageBodyReader;
import javax.ws.rs.ext.MessageBodyWriter;
+import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.jaxrs.client.ResponseExceptionMapper;
@@ -548,17 +549,32 @@
responseExceptionMappers.clear();
}
+ public void setBus(Bus bus) {
+ if (bus == null) {
+ return;
+ }
+ for (ProviderInfo<MessageBodyReader> r : messageReaders) {
+ injectProviderProperty(r.getProvider(), "setBus", Bus.class, bus);
+ }
+ }
+
+ private boolean injectProviderProperty(Object provider, String mName, Class<?> pClass,
+ Object pValue) {
+ try {
+ Method m = provider.getClass().getMethod(mName, new Class[]{pClass});
+ m.invoke(provider, new Object[]{pValue});
+ return true;
+ } catch (Exception ex) {
+ // ignore
+ }
+ return false;
+ }
+
public void setSchemaLocations(List<String> schemas) {
boolean schemasMethodAvailable = false;
for (ProviderInfo<MessageBodyReader> r : messageReaders) {
- try {
- Method m = r.getProvider().getClass().getMethod("setSchemas",
- new Class[]{List.class});
- schemasMethodAvailable = true;
- m.invoke(r.getProvider(), new Object[]{schemas});
- } catch (Exception ex) {
- // ignore
- }
+ schemasMethodAvailable = injectProviderProperty(r.getProvider(), "setSchemas",
+ List.class, schemas);
}
if (!schemasMethodAvailable) {
for (ProviderInfo<MessageBodyReader> r : SHARED_FACTORY.messageReaders) {
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java Wed Jul 1 14:43:00 2009
@@ -60,9 +60,9 @@
import org.xml.sax.InputSource;
import org.xml.sax.XMLFilter;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.jaxrs.ext.MessageContext;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
@Produces({"application/xml", "application/*+xml", "text/xml", "text/html" })
@Consumes({"application/xml", "application/*+xml", "text/xml", "text/html" })
@@ -273,7 +273,7 @@
InputStream is = null;
if (loc.startsWith("classpath:")) {
String path = loc.substring("classpath:".length());
- is = ClassLoaderUtils.getResourceAsStream(path, this.getClass());
+ is = ResourceUtils.getClasspathResourceStream(path, this.getClass(), this.getBus());
} else {
File f = new File(loc);
if (f.exists()) {
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java Wed Jul 1 14:43:00 2009
@@ -48,6 +48,8 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
@@ -62,6 +64,7 @@
import org.apache.cxf.jaxrs.model.URITemplate;
import org.apache.cxf.jaxrs.model.UserOperation;
import org.apache.cxf.jaxrs.model.UserResource;
+import org.apache.cxf.resource.ResourceManager;
public final class ResourceUtils {
@@ -332,12 +335,13 @@
}
}
- public static List<UserResource> getUserResources(String loc) {
+
+ public static List<UserResource> getUserResources(String loc, Bus bus) {
try {
InputStream is = null;
if (loc.startsWith("classpath:")) {
String path = loc.substring("classpath:".length());
- is = ClassLoaderUtils.getResourceAsStream(path, ResourceUtils.class);
+ is = getClasspathResourceStream(path, ResourceUtils.class, bus);
} else {
File f = new File(loc);
if (f.exists()) {
@@ -356,6 +360,21 @@
return null;
}
+ public static InputStream getClasspathResourceStream(String path, Class<?> callingClass, Bus bus) {
+ InputStream is = ClassLoaderUtils.getResourceAsStream(path, callingClass);
+ if (is == null && bus != null) {
+ ResourceManager rm = bus.getExtension(ResourceManager.class);
+ if (rm != null) {
+ is = rm.getResourceAsStream(path);
+ }
+ }
+ return is;
+ }
+
+ public static List<UserResource> getUserResources(String loc) {
+ return getUserResources(loc, BusFactory.getThreadDefaultBus());
+ }
+
public static List<UserResource> getUserResources(InputStream is) throws Exception {
Document doc = DOMUtils.readXml(new InputStreamReader(is, "UTF-8"));
return getResourcesFromElement(doc.getDocumentElement());
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/schemas/SchemaHandler.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/schemas/SchemaHandler.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/schemas/SchemaHandler.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/schemas/SchemaHandler.java Wed Jul 1 14:43:00 2009
@@ -35,8 +35,10 @@
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
public class SchemaHandler {
@@ -44,20 +46,25 @@
private static final String CLASSPATH_PREFIX = "classpath:";
private Schema schema;
+ private Bus bus;
public SchemaHandler() {
}
+ public void setBus(Bus b) {
+ bus = b;
+ }
+
public void setSchemas(List<String> locations) {
- schema = createSchema(locations);
+ schema = createSchema(locations, bus == null ? BusFactory.getThreadDefaultBus() : bus);
}
public Schema getSchema() {
return schema;
}
- public static Schema createSchema(List<String> locations) {
+ public static Schema createSchema(List<String> locations, Bus bus) {
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema s = null;
@@ -67,7 +74,7 @@
InputStream is = null;
if (loc.startsWith(CLASSPATH_PREFIX)) {
String path = loc.substring(CLASSPATH_PREFIX.length());
- is = ClassLoaderUtils.getResourceAsStream(path, SchemaHandler.class);
+ is = ResourceUtils.getClasspathResourceStream(path, SchemaHandler.class, bus);
if (is == null) {
LOG.warning("No schema resource " + loc + " is available on classpath");
return null;
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java Wed Jul 1 14:43:00 2009
@@ -18,8 +18,6 @@
*/
package org.apache.cxf.jaxrs.model.wadl;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
@@ -82,14 +80,14 @@
assertNotNull(r);
assertEquals(WadlGenerator.WADL_TYPE.toString(),
r.getMetadata().getFirst(HttpHeaders.CONTENT_TYPE));
- File f = new File("test.xml");
- f.delete();
- f.createNewFile();
- System.out.println(f.getAbsolutePath());
- FileOutputStream fos = new FileOutputStream(f);
- fos.write(r.getEntity().toString().getBytes());
- fos.flush();
- fos.close();
+// File f = new File("test.xml");
+// f.delete();
+// f.createNewFile();
+// System.out.println(f.getAbsolutePath());
+// FileOutputStream fos = new FileOutputStream(f);
+// fos.write(r.getEntity().toString().getBytes());
+// fos.flush();
+// fos.close();
}
@Test
Modified: cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/beans.xml?rev=790194&r1=790193&r2=790194&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/beans.xml (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs/WEB-INF/beans.xml Wed Jul 1 14:43:00 2009
@@ -117,7 +117,7 @@
</jaxrs:server>
<util:map id="outTemplates">
- <entry key="application/xhtml+xml" value="classpath:/org/apache/cxf/systest/jaxrs/resources/template.xsl"/>
+ <entry key="application/xhtml+xml" value="classpath:/WEB-INF/templates/template.xsl"/>
<entry key="application/xml" value="classpath:/org/apache/cxf/systest/jaxrs/resources/template2.xsl"/>
</util:map>
@@ -134,7 +134,7 @@
<bean id="uriResolver" class="org.apache.cxf.systest.jaxrs.URIResolverImpl"/>
<jaxrs:server id="bookservice6" address="/thebooks6"
- modelRef="classpath:/org/apache/cxf/systest/jaxrs/resources/resources.xml"/>
+ modelRef="classpath:/WEB-INF/model/resources.xml"/>
<jaxrs:server id="bookservice7" address="/thebooks7">
<jaxrs:model>
@@ -161,7 +161,7 @@
</bean>
<util:list id="theSchemas">
- <value>classpath:/org/apache/cxf/systest/jaxrs/resources/bookid.xsd</value>
+ <value>classpath:/WEB-INF/schemas/bookid.xsd</value>
<value>classpath:/org/apache/cxf/systest/jaxrs/resources/book.xsd</value>
</util:list>