You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2012/02/20 02:12:01 UTC
svn commit: r1291109 - in /openejb/trunk/openejb/tomee: tomee-loader/
tomee-loader/src/main/java/org/apache/tomee/loader/dto/
tomee-loader/src/main/java/org/apache/tomee/loader/servlet/
tomee-loader/src/main/java/org/apache/tomee/loader/ws/ tomee-webap...
Author: tveronezi
Date: Mon Feb 20 01:12:01 2012
New Revision: 1291109
URL: http://svn.apache.org/viewvc?rev=1291109&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-130
TomEE web profile does not support JAX-RS ( yet... :O) ).
Use standard servlet instead.
Added:
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/TestServlet.java
Removed:
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/ws/JndiWs.java
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/ws/TestWs.java
Modified:
openejb/trunk/openejb/tomee/tomee-loader/pom.xml
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java
openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/TestDTO.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/JndiModel.js
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js
Modified: openejb/trunk/openejb/tomee/tomee-loader/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/pom.xml?rev=1291109&r1=1291108&r2=1291109&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/pom.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/pom.xml Mon Feb 20 01:12:01 2012
@@ -36,12 +36,6 @@
<version>${openejb.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.openejb</groupId>
- <artifactId>javaee-api</artifactId>
- <version>6.0-3</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>${tomcat.version}</version>
@@ -52,6 +46,11 @@
<artifactId>tomee-common</artifactId>
<version>${openejb.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.1</version>
+ </dependency>
</dependencies>
</project>
Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java?rev=1291109&r1=1291108&r2=1291109&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java Mon Feb 20 01:12:01 2012
@@ -16,9 +16,6 @@
*/
package org.apache.tomee.loader.dto;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "jndi")
public class JndiDTO {
public String path;
Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/TestDTO.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/TestDTO.java?rev=1291109&r1=1291108&r2=1291109&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/TestDTO.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/TestDTO.java Mon Feb 20 01:12:01 2012
@@ -16,9 +16,6 @@
*/
package org.apache.tomee.loader.dto;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "test")
public class TestDTO {
public String key;
Added: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java?rev=1291109&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java (added)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java Mon Feb 20 01:12:01 2012
@@ -0,0 +1,102 @@
+/*
+ * 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.tomee.loader.servlet;
+
+import com.google.gson.Gson;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
+import org.apache.tomee.loader.dto.JndiDTO;
+import org.apache.tomee.loader.dto.TestDTO;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameClassPair;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+@WebServlet(name = "jndi", urlPatterns = "/ws/jndi", asyncSupported = false)
+public class JndiServlet extends HttpServlet {
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ final String json;
+ try {
+ final Map<String, Object> result = new HashMap<String, Object>();
+ result.put("jndi", get());
+ json = new Gson().toJson(result);
+ } catch (NamingException e) {
+ throw new ServletException(e);
+ }
+ resp.setContentType("application/json");
+ resp.setCharacterEncoding("UTF-8");
+ resp.getWriter().write(json);
+ }
+
+ public List<JndiDTO> get() throws NamingException {
+ final List<JndiDTO> result = new ArrayList<JndiDTO>();
+ final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
+ mountJndiList(result, containerSystem.getJNDIContext(), "java:global");
+
+ return result;
+ }
+
+ private void mountJndiList(List<JndiDTO> jndi, Context context, String root) throws NamingException {
+ final NamingEnumeration namingEnumeration;
+ try {
+ namingEnumeration = context.list(root);
+ } catch (NamingException e) {
+ //not found?
+ return;
+ }
+ while (namingEnumeration.hasMoreElements()) {
+ final NameClassPair pair = (NameClassPair) namingEnumeration.next();
+ final String key = root + "/" + pair.getName();
+ final Object obj;
+ try {
+ obj = context.lookup(key);
+ } catch (NamingException e) {
+ //not found?
+ continue;
+ }
+
+ if (Context.class.isInstance(obj)) {
+ mountJndiList(jndi, Context.class.cast(obj), key);
+ } else {
+ final JndiDTO dto = new JndiDTO();
+ dto.path = key;
+ dto.name = pair.getName();
+ dto.value = String.valueOf(obj);
+ jndi.add(dto);
+ }
+ }
+
+ }
+}
Added: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/TestServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/TestServlet.java?rev=1291109&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/TestServlet.java (added)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/TestServlet.java Mon Feb 20 01:12:01 2012
@@ -0,0 +1,135 @@
+/*
+ * 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.tomee.loader.servlet;
+
+import com.google.gson.Gson;
+import org.apache.tomee.loader.dto.TestDTO;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+@WebServlet(name = "test", urlPatterns = "/ws/test", asyncSupported = false)
+public class TestServlet extends HttpServlet {
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ final String json;
+ try {
+ final Map<String, Object> result = new HashMap<String, Object>();
+ result.put("test", get());
+ json = new Gson().toJson(result);
+ } catch (NamingException e) {
+ throw new ServletException(e);
+ }
+ resp.setContentType("application/json");
+ resp.setCharacterEncoding("UTF-8");
+ resp.getWriter().write(json);
+ }
+
+ private List<TestDTO> get() throws NamingException {
+ final List<TestDTO> result = new ArrayList<TestDTO>();
+
+ {
+ final String homePath = System.getProperty("openejb.home");
+ result.add(createDTO("homeSet", !(homePath == null)));
+
+ final File openejbHome = new File(homePath);
+ result.add(createDTO("homeExists", openejbHome.exists()));
+
+ result.add(createDTO("homeDirectory", openejbHome.isDirectory()));
+
+ final File openejbHomeLib;
+ if (org.apache.tomee.common.TomcatVersion.v6.isTheVersion()
+ || org.apache.tomee.common.TomcatVersion.v7.isTheVersion()) {
+ openejbHomeLib = new File(openejbHome, "lib");
+ } else {
+ final File common = new File(openejbHome, "common");
+ openejbHomeLib = new File(common, "lib");
+ }
+ result.add(createDTO("libDirectory", openejbHomeLib.exists()));
+ }
+
+ {
+ ClassLoader myLoader = this.getClass().getClassLoader();
+
+ try {
+ Class openejb = Class.forName("org.apache.openejb.OpenEJB", true, myLoader);
+ result.add(createDTO("openEjbInstalled", true));
+
+ try {
+ Method isInitialized = openejb.getDeclaredMethod("isInitialized");
+ Boolean running = (Boolean) isInitialized.invoke(openejb);
+ result.add(createDTO("openEjbStarted", running));
+ } catch (Exception e) {
+ result.add(createDTO("openEjbStarted", false));
+ }
+ } catch (Exception e) {
+ result.add(createDTO("openEjbInstalled", false));
+ }
+
+ try {
+ Class.forName("javax.ejb.EJBHome", true, myLoader);
+ result.add(createDTO("ejbsInstalled", true));
+ } catch (Exception e) {
+ result.add(createDTO("ejbsInstalled", false));
+ }
+
+ try {
+ final Properties properties = new Properties();
+ properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory");
+ properties.put("openejb.loader", "embed");
+
+ final InitialContext ctx = new InitialContext(properties);
+ Object obj = ctx.lookup("");
+
+ if (obj.getClass().getName().equals("org.apache.openejb.core.ivm.naming.IvmContext")) {
+ result.add(createDTO("testLookup", true));
+ } else {
+ result.add(createDTO("testLookup", false));
+ }
+
+ } catch (Exception e) {
+ result.add(createDTO("testLookup", false));
+ }
+ }
+
+
+ return result;
+ }
+
+ private TestDTO createDTO(String key, boolean success) {
+ TestDTO result = new TestDTO();
+ result.key = key;
+ result.success = success;
+ return result;
+ }
+}
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/JndiModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/JndiModel.js?rev=1291109&r1=1291108&r2=1291109&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/JndiModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/JndiModel.js Mon Feb 20 01:12:01 2012
@@ -39,7 +39,7 @@ TOMEE.JndiModel = function (cfg) {
return TOMEE.ApplicationModel({
methodType: 'GET',
- url: '/tomee/ws/jndi/names',
+ url: '/tomee/ws/jndi',
//url: 'js/tomee/mock/jndi.json',
channel: myChannel,
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js?rev=1291109&r1=1291108&r2=1291109&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js Mon Feb 20 01:12:01 2012
@@ -39,18 +39,18 @@ TOMEE.TestModel = function (cfg) {
return TOMEE.ApplicationModel({
methodType: 'GET',
- url: '/tomee/ws/test/test',
+ url: '/tomee/ws/test',
//url: 'js/tomee/mock/test.json',
channel: myChannel,
prepareDataMethod: function (data) {
- myData = data;
+ myData = TOMEE.utils.getArray(data.test);
}
});
})();
var iterateTestBeans = function (callback) {
- $.each(myData.test, function (i, bean) {
+ $.each(myData, function (i, bean) {
callback(bean);
});
};