Author: rmannibucau
Date: Tue Oct 18 19:46:55 2011
New Revision: 1185819
URL: http://svn.apache.org/viewvc?rev=1185819&view=rev
Log:
weird behavior needed by TCK but it seems UriBuilder.fromPath(null) is
forbidden and UriBuilder.fromPath(foo).replacePath(null) is allowed
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBRuntimeDelegateImpl.java
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBRuntimeDelegateImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBRuntimeDelegateImpl.java?rev=1185819&r1=1185818&r2=1185819&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBRuntimeDelegateImpl.java
(original)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBRuntimeDelegateImpl.java
Tue Oct 18 19:46:55 2011
@@ -25,12 +25,16 @@ public class OpenEJBRuntimeDelegateImpl
private static class OpenEJBUriBuilderImpl extends UriBuilderImpl {
private static final String[][] PREFIX = new String[][]{ { "http:/",
"http://" }, { "https:/", "https://" } };
+ private boolean init = false;
- @Override public UriBuilder replacePath(String path) {
- if (path == null) {
- throw new IllegalArgumentException("path is null");
+ @Override public UriBuilder replacePath(String value) {
+ // UriBuilder.fromPath("foo").replacePath(null) is ok
+ // but not UriBuilder.fromPath(null)
+ if (value == null && !init) {
+ throw new IllegalArgumentException("value is null");
}
- return super.replacePath(path);
+ init = true;
+ return super.replacePath(value);
}
@Override public URI build(Object... values) throws
IllegalArgumentException, UriBuilderException {
Modified:
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1185819&r1=1185818&r2=1185819&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
(original)
+++
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Tue Oct 18 19:46:55 2011
@@ -108,7 +108,6 @@ public abstract class RESTService implem
for (String clazz : webApp.restClass) {
if (restEjbs.containsKey(clazz)) {
deployEJB(webApp.contextRoot, restEjbs.get(clazz).context);
- LOGGER.info("REST EJB deployed: " + clazz);
} else {
try {
Class<?> loadedClazz = classLoader.loadClass(clazz);
@@ -116,7 +115,6 @@ public abstract class RESTService implem
} catch (ClassNotFoundException e) {
throw new OpenEJBRestRuntimeException("can't find
class " + clazz, e);
}
- LOGGER.info("REST service deployed: " + clazz);
}
}
} else {
@@ -153,19 +151,15 @@ public abstract class RESTService implem
if (restEjbs.containsKey(o.getClass().getName())) {
// no more a singleton if the ejb i not a
singleton...but it is a weird case
deployEJB(appPrefix,
restEjbs.get(o.getClass().getName()).context);
- LOGGER.info("deployed REST EJB: " + o);
} else {
deploySingleton(appPrefix, o, appInstance,
classLoader);
- LOGGER.info("deployed REST singleton: " + o);
}
}
for (Class<?> clazz : appInstance.getClasses()) {
if (restEjbs.containsKey(clazz.getName())) {
deployEJB(appPrefix,
restEjbs.get(clazz.getName()).context);
- LOGGER.info("deployed REST EJB: " + clazz);
} else {
deployPojo(appPrefix, clazz, appInstance, classLoader,
injections, context);
- LOGGER.info("deployed REST class: " + clazz);
}
}
@@ -232,15 +226,23 @@ public abstract class RESTService implem
services.add(address);
listener.deploySingleton(getFullContext(address, contextRoot), o,
appInstance);
+
+ LOGGER.info("deployed REST singleton: " + o);
}
private void deployPojo(String contextRoot, Class<?> loadedClazz,
Application app, ClassLoader classLoader, Collection<Injection> injections,
Context context) {
+ if (loadedClazz.isInterface()) {
+ return;
+ }
+
final String nopath = getAddress(contextRoot, loadedClazz) + "/.*";
final RsHttpListener listener = createHttpListener();
final String address = rsRegistry.createRsHttpListener(listener,
classLoader, nopath.substring(NOPATH_PREFIX.length() - 1), virtualHost);
services.add(address);
listener.deployPojo(getFullContext(address, contextRoot), loadedClazz,
app, injections, context);
+
+ LOGGER.info("deployed POJO class: " + loadedClazz.getName());
}
private void deployEJB(String context, BeanContext beanContext) {
@@ -250,6 +252,8 @@ public abstract class RESTService implem
services.add(address);
listener.deployEJB(getFullContext(address, context), beanContext);
+
+ LOGGER.info("REST EJB deployed: " +
beanContext.getBeanClass().getName());
}
/**