Author: rmannibucau
Date: Thu Aug 23 18:02:04 2012
New Revision: 1376616
URL: http://svn.apache.org/viewvc?rev=1376616&view=rev
Log:
TOMEE-403 jaxrs subresources for ejbs
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/PojoUtil.java
- copied, changed from r1376560,
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PojoUtil.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyEJB.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/NoopResourceProvider.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
Removed:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PojoUtil.java
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/ProxyEJB.java
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/HookedRest.java
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/SimpleEJB.java
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
Copied:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/PojoUtil.java
(from r1376560,
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PojoUtil.java)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/PojoUtil.java?p2=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/PojoUtil.java&p1=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PojoUtil.java&r1=1376560&r2=1376616&rev=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PojoUtil.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/PojoUtil.java
Thu Aug 23 18:02:04 2012
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.openejb.util;
+package org.apache.openejb.assembler.classic.util;
import org.apache.openejb.assembler.classic.IdPropertiesInfo;
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyEJB.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyEJB.java?rev=1376616&view=auto
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyEJB.java
(added)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/ProxyEJB.java
Thu Aug 23 18:02:04 2012
@@ -0,0 +1,67 @@
+/**
+ * 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.openejb.util.proxy;
+
+import org.apache.openejb.BeanContext;
+import org.apache.openejb.RpcContainer;
+import org.apache.openejb.core.ivm.IntraVmProxy;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+public class ProxyEJB {
+ private ProxyEJB() {
+ // no-op
+ }
+
+ public static Object proxy(final BeanContext beanContext) {
+ if (beanContext.getBusinessLocalInterface() != null) {
+ return proxy(beanContext, new Class<?>[] {
beanContext.getBusinessLocalInterface() });
+ }
+ if (beanContext.isLocalbean()) {
+ return proxy(beanContext, new
Class<?>[]{beanContext.getBusinessLocalBeanInterface()});
+ }
+ if (beanContext.getBusinessRemoteInterface() != null) {
+ return proxy(beanContext, new Class<?>[] {
beanContext.getBusinessRemoteInterface() });
+ }
+ throw new IllegalArgumentException("can't proxy " +
beanContext.getEjbName());
+ }
+
+ public static Object proxy(final BeanContext beanContext, final Class<?>[]
itfs) {
+ if (beanContext.isLocalbean()) {
+ return
LocalBeanProxyFactory.newProxyInstance(itfs[0].getClassLoader(), new
Handler(beanContext), itfs[0], IntraVmProxy.class, Serializable.class);
+ }
+ return Proxy.newProxyInstance(itfs[0].getClassLoader(), itfs, new
Handler(beanContext));
+ }
+
+ private static class Handler implements
java.lang.reflect.InvocationHandler {
+ private BeanContext beanContext;
+
+ public Handler(BeanContext bc) {
+ beanContext = bc;
+ }
+
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
+ final RpcContainer container =
RpcContainer.class.cast(beanContext.getContainer());
+ return container.invoke(beanContext.getDeploymentID(),
+ beanContext.getInterfaceType(method.getDeclaringClass()),
+ method.getDeclaringClass(), method, args, null);
+ }
+ }
+}
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
(original)
+++
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
Thu Aug 23 18:02:04 2012
@@ -28,6 +28,7 @@ import org.apache.openejb.config.Configu
import org.apache.openejb.config.DeploymentLoader;
import org.apache.openejb.config.UnknownModuleTypeException;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.proxy.ProxyEJB;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
(original)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Thu Aug 23 18:02:04 2012
@@ -37,6 +37,7 @@ import org.apache.openejb.server.httpd.H
import org.apache.openejb.server.rest.RsHttpListener;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.proxy.ProxyEJB;
import org.apache.webbeans.config.WebBeansContext;
import javax.naming.Context;
@@ -96,7 +97,9 @@ public class CxfRsHttpListener implement
@Override
public void deployEJB(String fullContext, BeanContext beanContext,
Collection<Class<?>> additionalProviders, ServiceConfiguration configuration) {
- deploy(beanContext.getBeanClass(), fullContext, null, null, null, new
OpenEJBEJBInvoker(beanContext), additionalProviders, configuration);
+ final Object proxy = ProxyEJB.proxy(beanContext);
+ deploy(beanContext.getBeanClass(), fullContext, new
NoopResourceProvider(beanContext.getBeanClass(), proxy),
+ proxy, null, new OpenEJBEJBInvoker(), additionalProviders,
configuration);
}
private void deploy(Class<?> clazz, String address, ResourceProvider rp,
Object serviceBean, Application app, Invoker invoker,
Added:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/NoopResourceProvider.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/NoopResourceProvider.java?rev=1376616&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/NoopResourceProvider.java
(added)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/NoopResourceProvider.java
Thu Aug 23 18:02:04 2012
@@ -0,0 +1,50 @@
+/*
+ * 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.openejb.server.cxf.rs;
+
+import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
+import org.apache.cxf.message.Message;
+
+public class NoopResourceProvider implements ResourceProvider {
+ private final Object instance;
+ private final Class<?> clazz;
+
+ public NoopResourceProvider(final Class<?> clazz, final Object instance) {
+ this.instance = instance;
+ this.clazz = clazz;
+ }
+
+ @Override
+ public Object getInstance(Message m) {
+ return instance;
+ }
+
+ @Override
+ public void releaseInstance(final Message m, final Object o) {
+ // no-op
+ }
+
+ @Override
+ public Class<?> getResourceClass() {
+ return clazz;
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return true;
+ }
+}
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
(original)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
Thu Aug 23 18:02:04 2012
@@ -16,56 +16,29 @@
*/
package org.apache.openejb.server.cxf.rs;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.rmi.RemoteException;
-import java.util.List;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Providers;
-
-import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.jaxrs.JAXRSInvoker;
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
import org.apache.cxf.jaxrs.model.OperationResourceInfo;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.message.Exchange;
-import org.apache.cxf.message.MessageContentsList;
-import org.apache.openejb.BeanContext;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.RpcContainer;
+import org.apache.openejb.InvalidateReferenceException;
import org.apache.openejb.rest.ThreadLocalContextManager;
-public class OpenEJBEJBInvoker extends JAXRSInvoker {
- private BeanContext context;
-
- public OpenEJBEJBInvoker(BeanContext beanContext) {
- context = beanContext;
- }
-
- @Override public Object invoke(Exchange exchange, Object request, Object
resourceObject) {
- final OperationResourceInfo ori =
exchange.get(OperationResourceInfo.class);
- final ClassResourceInfo cri = ori.getClassResourceInfo();
- final Method method = cri.getMethodDispatcher().getMethod(ori);
- final RpcContainer container =
RpcContainer.class.cast(context.getContainer());
-
- Object[] parameters;
- if (request instanceof List) {
- List<Object> params = CastUtils.cast((List<?>) request);
- parameters = params.toArray(new Object[params.size()]);
- } else if (request != null) {
- List<Object> params = new MessageContentsList(request);
- parameters = params.toArray(new Object[params.size()]);
- } else {
- parameters = new Object[0];
- }
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Providers;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.rmi.RemoteException;
- // injecting context parameters
- super.insertExchange(method, parameters, exchange);
+public class OpenEJBEJBInvoker extends JAXRSInvoker {
+ @Override
+ public Object invoke(final Exchange exchange, final Object request, final
Object resourceObject) {
+ final ClassResourceInfo cri =
exchange.get(OperationResourceInfo.class).getClassResourceInfo();
// binding context fields
for (Field field : cri.getContextFields()) {
@@ -91,30 +64,31 @@ public class OpenEJBEJBInvoker extends J
}
}
- // invoking the EJB
try {
- Object result = container.invoke(context.getDeploymentID(),
- context.getInterfaceType(method.getDeclaringClass()),
- method.getDeclaringClass(), method, parameters, null);
-
- return new MessageContentsList(result);
- } catch (OpenEJBException e) {
- Throwable cause = e.getCause();
- if (cause == null) {
- cause = e;
- }
- if (cause instanceof RemoteException && cause.getCause() != null) {
- cause = cause.getCause();
- }
-
- final Response excResponse =
JAXRSUtils.convertFaultToResponse(cause, exchange.getInMessage());
- return new MessageContentsList(excResponse);
+ return super.invoke(exchange, request, resourceObject);
} finally {
ThreadLocalContextManager.reset();
}
}
- @Override public Object getServiceObject(Exchange exchange) {
- return null;
+ @Override
+ protected Object performInvocation(final Exchange exchange, final Object
serviceObject,
+ final Method m, final Object[]
paramArray) throws Exception {
+ try {
+ return m.invoke(serviceObject, insertExchange(m, paramArray,
exchange));
+ } catch (InvocationTargetException ite) {
+ Throwable cause = ite.getTargetException();
+ // unwrap to get ExceptionMapper working
+ if (cause instanceof InvalidateReferenceException) {
+ cause = cause.getCause();
+ if (cause instanceof RemoteException) {
+ cause = cause.getCause();
+ }
+ }
+ if (cause instanceof Exception) {
+ throw (Exception) cause;
+ }
+ throw ite;
+ }
}
}
Added:
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java?rev=1376616&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
(added)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
Thu Aug 23 18:02:04 2012
@@ -0,0 +1,75 @@
+/*
+ * 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.openejb.server.cxf.rs;
+
+import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.jee.SingletonBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Configuration;
+import org.apache.openejb.junit.Module;
+import org.apache.openejb.loader.IO;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(ApplicationComposer.class)
+public class SubResourceTest {
+ @Module
+ public SingletonBean bean() {
+ return (SingletonBean) new SingletonBean(Endpoint1.class).localBean();
+ }
+
+ @Configuration
+ public static Properties configuration() throws Exception {
+ final Properties properties = new Properties();
+ properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE,
"true");
+ return properties;
+ }
+
+ @Test
+ public void rest() throws IOException {
+ final String response = IO.slurp(new
URL("http://127.0.0.1:4204/SubResourceTest/sub1/sub2/value"));
+ assertEquals("2", response);
+ }
+
+ @Path("/sub1")
+ public static class Endpoint1 {
+ @Path("sub{i}")
+ public Endpoint2 uno(@PathParam("i") final int discr) {
+ if (2 == discr) {
+ return new Endpoint2();
+ }
+ return null;
+ }
+ }
+
+ public static class Endpoint2 {
+ @GET
+ @Path("/value")
+ public int due() {
+ return 2;
+ }
+ }
+}
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/HookedRest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/HookedRest.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/HookedRest.java
(original)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/HookedRest.java
Thu Aug 23 18:02:04 2012
@@ -27,10 +27,11 @@ public class HookedRest {
@Inject
private SimpleEJB ejb;
private boolean post = false;
+ private int construct = 0;
@PostConstruct
public void post() {
- post = true && ejb != null;
+ post = ejb != null && construct == 0;
}
@Path("/post")
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/SimpleEJB.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/SimpleEJB.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/SimpleEJB.java
(original)
+++
openejb/trunk/openejb/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/beans/SimpleEJB.java
Thu Aug 23 18:02:04 2012
@@ -16,10 +16,21 @@
*/
package org.apache.openejb.server.cxf.rs.beans;
-import javax.ejb.Stateless;
+import javax.annotation.PostConstruct;
+import javax.ejb.Singleton;
-@Stateless
+@Singleton
public class SimpleEJB {
+ private int init = 0;
+
+ @PostConstruct
+ public void count() {
+ init++;
+ if (init > 1) {
+ throw new RuntimeException();
+ }
+ }
+
public String ok() {
return "ok";
}
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=1376616&r1=1376615&r2=1376616&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
Thu Aug 23 18:02:04 2012
@@ -28,6 +28,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.WebAppInfo;
import
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
import
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
+import org.apache.openejb.assembler.classic.util.PojoUtil;
import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
import org.apache.openejb.core.CoreContainerSystem;
import org.apache.openejb.core.WebContext;
@@ -41,7 +42,6 @@ import org.apache.openejb.server.httpd.H
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.PojoUtil;
import org.apache.webbeans.config.WebBeansContext;
import javax.naming.Context;
Modified:
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1376616&r1=1376615&r2=1376616&view=diff
==============================================================================
---
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
(original)
+++
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
Thu Aug 23 18:02:04 2012
@@ -31,6 +31,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.WsBuilder;
import
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
import
org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
+import org.apache.openejb.assembler.classic.util.PojoUtil;
import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
import org.apache.openejb.core.CoreContainerSystem;
import org.apache.openejb.core.WebContext;
@@ -48,7 +49,6 @@ import org.apache.openejb.server.httpd.u
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.PojoUtil;
import org.apache.openejb.util.StringTemplate;
import javax.naming.Context;