Author: rmannibucau
Date: Sun May 6 22:16:12 2012
New Revision: 1334805
URL: http://svn.apache.org/viewvc?rev=1334805&view=rev
Log:
adding wink module (in progress)
Added:
openejb/trunk/openejb/server/openejb-wink/
openejb/trunk/openejb/server/openejb-wink/pom.xml
openejb/trunk/openejb/server/openejb-wink/src/
openejb/trunk/openejb/server/openejb-wink/src/main/
openejb/trunk/openejb/server/openejb-wink/src/main/java/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkHttpListener.java
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkService.java
openejb/trunk/openejb/server/openejb-wink/src/main/resources/
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/wink
openejb/trunk/openejb/server/openejb-wink/src/test/
openejb/trunk/openejb/server/openejb-wink/src/test/java/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/WinkSimpleTest.java
openejb/trunk/openejb/server/openejb-wink/src/test/resources/
openejb/trunk/openejb/server/openejb-wink/src/test/resources/META-INF/
openejb/trunk/openejb/server/openejb-wink/src/test/resources/META-INF/ejb-jar.xml
Modified:
openejb/trunk/openejb/server/pom.xml
Added: openejb/trunk/openejb/server/openejb-wink/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/pom.xml?rev=1334805&view=auto
==============================================================================
--- openejb/trunk/openejb/server/openejb-wink/pom.xml (added)
+++ openejb/trunk/openejb/server/openejb-wink/pom.xml Sun May 6 22:16:12 2012
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>server</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>4.0.0-beta-3-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>openejb-wink</artifactId>
+ <name>OpenEJB :: Server :: Wink</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>openejb-http</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>openejb-rest</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.wink</groupId>
+ <artifactId>wink-server</artifactId>
+ <version>1.1.3-incubating</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-annotation_1.1_spec</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-j2ee_1.4_spec</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+</project>
Added:
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkHttpListener.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkHttpListener.java?rev=1334805&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkHttpListener.java
(added)
+++
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkHttpListener.java
Sun May 6 22:16:12 2012
@@ -0,0 +1,398 @@
+package org.apache.openejb.server.wink;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.EventListener;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import javax.naming.Context;
+import javax.servlet.Filter;
+import javax.servlet.FilterRegistration;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRegistration;
+import javax.servlet.SessionCookieConfig;
+import javax.servlet.SessionTrackingMode;
+import javax.servlet.descriptor.JspConfigDescriptor;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.ws.rs.core.Application;
+import org.apache.openejb.BeanContext;
+import org.apache.openejb.Injection;
+import org.apache.openejb.server.httpd.HttpRequest;
+import org.apache.openejb.server.httpd.HttpRequestImpl;
+import org.apache.openejb.server.httpd.HttpResponse;
+import org.apache.openejb.server.rest.RsHttpListener;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.wink.common.internal.lifecycle.ObjectFactory;
+import org.apache.wink.server.internal.DeploymentConfiguration;
+import org.apache.wink.server.internal.RequestProcessor;
+import org.apache.wink.server.utils.RegistrationUtils;
+
+// TODO: lifecycle (se cxf-rs invokers)
+// TODO: see if using RestServlet is not more relevant = breaking our
RsHttpListener
+public class WinkHttpListener implements RsHttpListener {
+ private RequestProcessor processor;
+ private ServletContext servletContext;
+
+ @Override
+ public void deployEJB(final String fullContext, final BeanContext
beanContext) {
+ deployPojo(fullContext, beanContext.getBeanClass(), null, null, null,
null); // TODO
+ }
+
+ @Override
+ public void deploySingleton(final String fullContext, final Object o,
final Application appInstance) {
+
RegistrationUtils.registerInstances(contexts(o.getClass().getClassLoader()), o);
+ }
+
+ @Override
+ public void deployPojo(final String fullContext, final Class<?>
loadedClazz, final Application app, final Collection<Injection> injections,
final Context context, final WebBeansContext owbCtx) {
+
RegistrationUtils.registerClasses(contexts(loadedClazz.getClassLoader()),
loadedClazz);
+ }
+
+ private javax.servlet.ServletContext contexts(final ClassLoader
classLoader) {
+ final DeploymentConfiguration conf = new DeploymentConfiguration();
+ conf.setProperties(properties(classLoader));
+ conf.init();
+
+ processor = new RequestProcessor(conf);
+
+ servletContext = new ServletContext(classLoader);
+ servletContext.setAttribute(RequestProcessor.class.getName(),
processor);
+ return servletContext;
+ }
+
+ private static Properties properties(final ClassLoader cl) {
+ final Properties prop = new Properties();
+ final InputStream is =
cl.getResourceAsStream("META-INF/wink-default.properties");
+ if (is != null) {
+ try {
+ prop.load(is);
+ } catch (IOException e) {
+ e.printStackTrace(); // TODO
+ }
+ }
+
+ final Properties prop2 = new Properties();
+ final InputStream is2 =
cl.getResourceAsStream("META-INF/wink.properties");
+ if (is2 != null) {
+ try {
+ prop2.load(is2);
+ prop.putAll(prop2);
+ } catch (IOException e) {
+ e.printStackTrace(); // TODO
+ }
+ }
+
+ return prop; // TODO: cache it
+ }
+
+ @Override
+ public void undeploy() {
+
processor.getConfiguration().getProvidersRegistry().removeAllProviders();
+
processor.getConfiguration().getResourceRegistry().removeAllResources();
+ for (ObjectFactory<?> of :
processor.getConfiguration().getApplicationObjectFactories()) {
+ of.releaseAll(null);
+ }
+ }
+
+ @Override
+ public void onMessage(final HttpRequest httpRequest, final HttpResponse
response) throws Exception {
+ final HttpServletRequest wrapper = new
HttpServletRequestWrapper(httpRequest) {
+ @Override
+ public String getRequestURI() {
+ if (httpRequest instanceof HttpRequestImpl) {
+ return ((HttpRequestImpl) httpRequest).requestRawPath();
+ }
+ return super.getRequestURI();
+ }
+
+ @Override
+ public String getContextPath() {
+ if (httpRequest instanceof HttpRequestImpl) {
+ return ((HttpRequestImpl)
httpRequest).extractContextPath();
+ }
+ return super.getContextPath();
+ }
+
+ @Override
+ public ServletContext getServletContext() {
+ return servletContext;
+ }
+ };
+
+ RequestProcessor.getRequestProcessor(wrapper.getServletContext(),
RequestProcessor.class.getName())
+ .handleRequest(wrapper, response);
+ }
+
+ private static class ServletContext implements
javax.servlet.ServletContext {
+ private final Map<String, Object> attributes = new
ConcurrentHashMap<String, Object>();
+ private final ClassLoader classloader;
+
+ private ServletContext(final ClassLoader classloader) {
+ this.classloader = classloader;
+ }
+
+ @Override
+ public String getContextPath() {
+ return null;
+ }
+
+ @Override
+ public javax.servlet.ServletContext getContext(String uripath) {
+ return null;
+ }
+
+ @Override
+ public int getMajorVersion() {
+ return 0;
+ }
+
+ @Override
+ public int getMinorVersion() {
+ return 0;
+ }
+
+ @Override
+ public String getMimeType(String file) {
+ return null;
+ }
+
+ @Override
+ public Set<String> getResourcePaths(String path) {
+ return null;
+ }
+
+ @Override
+ public URL getResource(String path) throws MalformedURLException {
+ return null;
+ }
+
+ @Override
+ public InputStream getResourceAsStream(String path) {
+ return classloader.getResourceAsStream(path);
+ }
+
+ @Override
+ public RequestDispatcher getRequestDispatcher(String path) {
+ return null;
+ }
+
+ @Override
+ public RequestDispatcher getNamedDispatcher(String name) {
+ return null;
+ }
+
+ @Override
+ public Servlet getServlet(String name) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public Enumeration<Servlet> getServlets() {
+ return null;
+ }
+
+ @Override
+ public Enumeration<String> getServletNames() {
+ return null;
+ }
+
+ @Override
+ public void log(String msg) {
+
+ }
+
+ @Override
+ public void log(Exception exception, String msg) {
+
+ }
+
+ @Override
+ public void log(String message, Throwable throwable) {
+
+ }
+
+ @Override
+ public String getRealPath(String path) {
+ return null;
+ }
+
+ @Override
+ public String getServerInfo() {
+ return null;
+ }
+
+ @Override
+ public String getInitParameter(String name) {
+ return null;
+ }
+
+ @Override
+ public Enumeration<String> getInitParameterNames() {
+ return null;
+ }
+
+ @Override
+ public boolean setInitParameter(String name, String value) {
+ return false;
+ }
+
+ @Override
+ public Object getAttribute(String name) {
+ return attributes.get(name);
+ }
+
+ @Override
+ public Enumeration<String> getAttributeNames() {
+ return null;
+ }
+
+ @Override
+ public void setAttribute(String name, Object object) {
+ attributes.put(name, object);
+ }
+
+ @Override
+ public void removeAttribute(String name) {
+
+ }
+
+ @Override
+ public String getServletContextName() {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
String className) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
Servlet servlet) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
Class<? extends Servlet> clazz) throws IllegalArgumentException,
IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public <T extends Servlet> T createServlet(Class<T> clazz) throws
ServletException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration getServletRegistration(String servletName) {
+ return null;
+ }
+
+ @Override
+ public Map<String, ? extends ServletRegistration>
getServletRegistrations() {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, String
className) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, Filter
filter) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, Class<?
extends Filter> filterClass) throws IllegalArgumentException,
IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public <T extends Filter> T createFilter(Class<T> clazz) throws
ServletException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration getFilterRegistration(String filterName) {
+ return null;
+ }
+
+ @Override
+ public Map<String, ? extends FilterRegistration>
getFilterRegistrations() {
+ return null;
+ }
+
+ @Override
+ public void addListener(Class<? extends EventListener> listenerClass) {
+
+ }
+
+ @Override
+ public void addListener(String className) {
+
+ }
+
+ @Override
+ public <T extends EventListener> void addListener(T t) {
+
+ }
+
+ @Override
+ public <T extends EventListener> T createListener(Class<T> clazz)
throws ServletException {
+ return null;
+ }
+
+ @Override
+ public void declareRoles(String... roleNames) {
+
+ }
+
+ @Override
+ public SessionCookieConfig getSessionCookieConfig() {
+ return null;
+ }
+
+ @Override
+ public void setSessionTrackingModes(Set<SessionTrackingMode>
sessionTrackingModes) {
+
+ }
+
+ @Override
+ public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public int getEffectiveMajorVersion() throws
UnsupportedOperationException {
+ return 0;
+ }
+
+ @Override
+ public int getEffectiveMinorVersion() throws
UnsupportedOperationException {
+ return 0;
+ }
+
+ @Override
+ public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public ClassLoader getClassLoader() {
+ return null;
+ }
+
+ @Override
+ public JspConfigDescriptor getJspConfigDescriptor() {
+ return null;
+ }
+ }
+}
Added:
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkService.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkService.java?rev=1334805&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkService.java
(added)
+++
openejb/trunk/openejb/server/openejb-wink/src/main/java/org/apache/openejb/server/wink/WinkService.java
Sun May 6 22:16:12 2012
@@ -0,0 +1,293 @@
+package org.apache.openejb.server.wink;
+
+import org.apache.openejb.server.rest.RESTService;
+import org.apache.openejb.server.rest.RsHttpListener;
+
+import javax.servlet.*;
+import javax.servlet.descriptor.JspConfigDescriptor;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.EventListener;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class WinkService extends RESTService {
+ @Override
+ protected RsHttpListener createHttpListener() {
+ return new WinkHttpListener();
+ }
+
+ @Override
+ public String getName() {
+ return "wink";
+ }
+
+ public static class StandaloneServletContext implements ServletContext {
+ private final Map<String, Object> attributes = new
ConcurrentHashMap<String, Object>();
+ private ClassLoader classloader;
+
+ public StandaloneServletContext(ClassLoader classloader) {
+ this.classloader = classloader;
+ }
+
+ @Override
+ public InputStream getResourceAsStream(final String path) {
+ return classloader.getResourceAsStream(path);
+ }
+
+ @Override
+ public Object getAttribute(final String name) {
+ return attributes.get(name);
+ }
+
+ @Override
+ public void setAttribute(final String name, final Object object) {
+ attributes.put(name, object);
+ }
+
+ // mocks
+
+ @Override
+ public String getContextPath() {
+ return null;
+ }
+
+ @Override
+ public ServletContext getContext(String uripath) {
+ return null;
+ }
+
+ @Override
+ public int getMajorVersion() {
+ return 0;
+ }
+
+ @Override
+ public int getMinorVersion() {
+ return 0;
+ }
+
+ @Override
+ public String getMimeType(String file) {
+ return null;
+ }
+
+ @Override
+ public Set<String> getResourcePaths(String path) {
+ return null;
+ }
+
+ @Override
+ public URL getResource(String path) throws MalformedURLException {
+ return null;
+ }
+
+ @Override
+ public RequestDispatcher getRequestDispatcher(String path) {
+ return null;
+ }
+
+ @Override
+ public RequestDispatcher getNamedDispatcher(String name) {
+ return null;
+ }
+
+ @Override
+ public Servlet getServlet(String name) throws ServletException {
+ return null;
+ }
+
+ @Override
+ public Enumeration<Servlet> getServlets() {
+ return null;
+ }
+
+ @Override
+ public Enumeration<String> getServletNames() {
+ return null;
+ }
+
+ @Override
+ public void log(String msg) {
+
+ }
+
+ @Override
+ public void log(Exception exception, String msg) {
+
+ }
+
+ @Override
+ public void log(String message, Throwable throwable) {
+
+ }
+
+ @Override
+ public String getRealPath(String path) {
+ return null;
+ }
+
+ @Override
+ public String getServerInfo() {
+ return null;
+ }
+
+ @Override
+ public String getInitParameter(String name) {
+ return null;
+ }
+
+ @Override
+ public Enumeration<String> getInitParameterNames() {
+ return null;
+ }
+
+ @Override
+ public boolean setInitParameter(String name, String value) {
+ return false;
+ }
+
+ @Override
+ public Enumeration<String> getAttributeNames() {
+ return null;
+ }
+
+ @Override
+ public void removeAttribute(String name) {
+
+ }
+
+ @Override
+ public String getServletContextName() {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
String className) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
Servlet servlet) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration.Dynamic addServlet(String servletName,
Class<? extends Servlet> clazz) throws IllegalArgumentException,
IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public <T extends Servlet> T createServlet(Class<T> clazz) throws
ServletException {
+ return null;
+ }
+
+ @Override
+ public ServletRegistration getServletRegistration(String servletName) {
+ return null;
+ }
+
+ @Override
+ public Map<String, ? extends ServletRegistration>
getServletRegistrations() {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, String
className) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, Filter
filter) throws IllegalArgumentException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration.Dynamic addFilter(String filterName, Class<?
extends Filter> filterClass) throws IllegalArgumentException,
IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public <T extends Filter> T createFilter(Class<T> clazz) throws
ServletException {
+ return null;
+ }
+
+ @Override
+ public FilterRegistration getFilterRegistration(String filterName) {
+ return null;
+ }
+
+ @Override
+ public Map<String, ? extends FilterRegistration>
getFilterRegistrations() {
+ return null;
+ }
+
+ @Override
+ public void addListener(Class<? extends EventListener> listenerClass) {
+
+ }
+
+ @Override
+ public void addListener(String className) {
+
+ }
+
+ @Override
+ public <T extends EventListener> void addListener(T t) {
+
+ }
+
+ @Override
+ public <T extends EventListener> T createListener(Class<T> clazz)
throws ServletException {
+ return null;
+ }
+
+ @Override
+ public void declareRoles(String... roleNames) {
+
+ }
+
+ @Override
+ public SessionCookieConfig getSessionCookieConfig() {
+ return null;
+ }
+
+ @Override
+ public void setSessionTrackingModes(Set<SessionTrackingMode>
sessionTrackingModes) {
+
+ }
+
+ @Override
+ public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public int getEffectiveMajorVersion() throws
UnsupportedOperationException {
+ return 0;
+ }
+
+ @Override
+ public int getEffectiveMinorVersion() throws
UnsupportedOperationException {
+ return 0;
+ }
+
+ @Override
+ public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
+ return null;
+ }
+
+ @Override
+ public ClassLoader getClassLoader() {
+ return null;
+ }
+
+ @Override
+ public JspConfigDescriptor getJspConfigDescriptor() {
+ return null;
+ }
+ }
+}
Added:
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/wink
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/wink?rev=1334805&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/wink
(added)
+++
openejb/trunk/openejb/server/openejb-wink/src/main/resources/META-INF/org.apache.openejb.server.ServerService/wink
Sun May 6 22:16:12 2012
@@ -0,0 +1 @@
+server = org.apache.openejb.server.wink.WinkService
Added:
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/WinkSimpleTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/WinkSimpleTest.java?rev=1334805&view=auto
==============================================================================
---
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/WinkSimpleTest.java
(added)
+++
openejb/trunk/openejb/server/openejb-wink/src/test/java/org/apache/openejb/server/wink/WinkSimpleTest.java
Sun May 6 22:16:12 2012
@@ -0,0 +1,74 @@
+package org.apache.openejb.server.wink;
+
+import javax.ws.rs.PathParam;
+import org.apache.openejb.OpenEjbContainer;
+import org.apache.openejb.loader.IO;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import javax.ejb.Stateless;
+import javax.ejb.embeddable.EJBContainer;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+import static junit.framework.Assert.assertEquals;
+
+public class WinkSimpleTest {
+ private static EJBContainer container;
+
+ @BeforeClass
+ public static void start() throws Exception {
+ Properties properties = new Properties();
+ properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE,
"true");
+ container = EJBContainer.createEJBContainer(properties);
+ }
+
+ @AfterClass
+ public static void close() throws Exception {
+ if (container != null) {
+ container.close();
+ }
+ }
+
+ @Test public void rest() throws IOException {
+ String response = IO.slurp(new
URL("http://localhost:4204/openejb-wink/ejb/normal"));
+ assertEquals("ok", response);
+ }
+
+ @Test public void rest2() throws IOException {
+ String response = IO.slurp(new
URL("http://localhost:4204/openejb-wink/ejb2/ok2"));
+ assertEquals("ok2", response);
+ }
+
+ @Test public void foo() throws IOException {
+ String response = IO.slurp(new
URL("http://localhost:4204/openejb-wink/ejb2/foo/ok"));
+ assertEquals("_ok_", response);
+ }
+
+ @Stateless
+ @Path("/ejb")
+ public static class RESTIsCool {
+ @Path("/normal") @GET
+ public String normal() {
+ return "ok";
+ }
+ }
+
+ @Stateless
+ @Path("/ejb2")
+ public static class RESTIsCool2 {
+ @Path("/ok2") @GET
+ public String normal() {
+ return "ok2";
+ }
+
+ @Path("/foo/{bar}") @GET
+ public String foo(@PathParam("bar") final String bar) {
+ return "_" + bar + "_";
+ }
+ }
+}
Added:
openejb/trunk/openejb/server/openejb-wink/src/test/resources/META-INF/ejb-jar.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-wink/src/test/resources/META-INF/ejb-jar.xml?rev=1334805&view=auto
==============================================================================
(empty)
Modified: openejb/trunk/openejb/server/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/pom.xml?rev=1334805&r1=1334804&r2=1334805&view=diff
==============================================================================
--- openejb/trunk/openejb/server/pom.xml (original)
+++ openejb/trunk/openejb/server/pom.xml Sun May 6 22:16:12 2012
@@ -44,6 +44,7 @@
<module>openejb-rest</module>
<module>openejb-ssh</module>
<module>openejb-common-cli</module>
+ <module>openejb-wink</module>
</modules>
</project>