Author: rmannibucau
Date: Wed Jun  6 15:56:35 2012
New Revision: 1346960

URL: http://svn.apache.org/viewvc?rev=1346960&view=rev
Log:
adding the deployer logic to the DeployServlet

Modified:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java?rev=1346960&r1=1346959&r2=1346960&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
 Wed Jun  6 15:56:35 2012
@@ -18,6 +18,11 @@
 package org.apache.tomee.webapp.servlet;
 
 import com.google.gson.Gson;
+import javax.inject.Inject;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.assembler.Deployer;
+import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -34,17 +39,27 @@ import java.util.Map;
 public class DeployServlet extends HttpServlet {
     public static final Logger LOGGER = 
Logger.getInstance(LogCategory.OPENEJB, DeployServlet.class);
 
+    @Inject
+    private Deployer deployer;
+
     @Override
     protected void doPost(HttpServletRequest req, final HttpServletResponse 
resp) throws ServletException, IOException {
-        final String path = req.getParameter("path");
-        final File file = new File(path);
-
-        //TODO: deploy the file as David said (DeployerEjb)
-        //TODO: avoid sending the full file path. I dont think this is safe
+        final String path;
+        try {
+            final AppInfo info = deployer.deploy(req.getParameter("path"));
+
+            // the path is translated from the parameter to a file path
+            // the input can be "mvn:org.superbiz/rest-example.1.0/war" for 
instance or an http url
+            path = info.path;
+        } catch (OpenEJBException e) {
+            throw new OpenEJBRuntimeException(e); // TODO: show back to the 
user the exception
+        }
 
+        final File file = new File(path);
         final Map<String, Object> result = new HashMap<String, Object>();
-        result.put("file", file.getAbsolutePath());
         result.put("deployed", Boolean.TRUE);
+        // TODO: is it needed or do we use the input path since it is more 
explicit for the user?
+        result.put("file", file.getAbsolutePath());
 
         resp.setContentType("text/plain");
         resp.setCharacterEncoding("UTF-8");


Reply via email to