[jboss-svn-commits] JBL Code SVN: r36144 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/server/files and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Dec 1 08:46:31 EST 2010
Author: jervisliu
Date: 2010-12-01 08:46:30 -0500 (Wed, 01 Dec 2010)
New Revision: 36144
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/ActionsAPIServlet.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/ActionsAPI.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/Parameters.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/ActionAPIServletTest.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java
Log:
GUVNOR-1080?\239?\188?\154INCOMPLETE GUVNOR REST APIS
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/ActionsAPIServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/ActionsAPIServlet.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/ActionsAPIServlet.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -0,0 +1,43 @@
+package org.drools.guvnor.server.files;
+
+import org.drools.guvnor.server.rest.ActionsAPI;
+import org.drools.repository.RulesRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+import org.drools.guvnor.server.RepositoryServiceServlet;
+import org.drools.guvnor.server.ServiceImplementation;
+
+/**
+ * Entrance point to basic actions API.
+ *
+ * Fix for GUVNOR-1080
+ *
+ * @author andrew.waterman at gmail.com
+ */
+public class ActionsAPIServlet extends RepositoryServlet {
+
+ public static final Logger log = LoggerFactory.getLogger(
+ ActionsAPIServlet.class);
+
+ @Override
+ protected void doPost(final HttpServletRequest req,
+ final HttpServletResponse res) throws ServletException, IOException
+ {
+ final RulesRepository repository = RestAPIServlet.getRepository();
+ final ServiceImplementation service = RepositoryServiceServlet.getService();
+
+ doAuthorizedAction(req, res, new A() {
+ public void a() throws Exception {
+ Map map = req.getParameterMap();
+ ActionsAPI api = new ActionsAPI();
+ api.post(service, repository, req, res);
+ }
+ });
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/ActionsAPI.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/ActionsAPI.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/ActionsAPI.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -0,0 +1,84 @@
+package org.drools.guvnor.server.rest;
+
+import org.drools.guvnor.server.ServiceImplementation;
+import org.drools.repository.*;
+
+import java.io.*;
+import java.net.URLDecoder;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Basic API for executing simple actions against Guvnor:
+ * compilation and snapshot creation for packages.
+ *
+ * Fix for GUVNOR-1080
+ *
+ * @author andrew.waterman at gmail.com
+ */
+public class ActionsAPI {
+
+ /**
+ * Post is for actions.
+ *
+ * URL should be: http://servername:port/action/compile
+ * http://servername:port/action/snapshot
+ *
+ * parameters: package-name
+ * snapshot-name
+ *
+ * @throws IOException
+ * @throws RulesRepositoryException */
+ public void post(ServiceImplementation service, RulesRepository repository,
+ HttpServletRequest request, HttpServletResponse response)
+ throws IOException
+ {
+ try {
+ Map<String,String> parameters = request.getParameterMap();
+ String[] pathstr = split (request.getPathTranslated());
+ String packageName = parameters.get(Parameters.PackageName.toString());
+ if (pathstr [ 0 ].equals("compile")) {
+ if (repository.containsPackage(packageName)) {
+ PackageIterator iter = repository.listPackages();
+ while (iter.hasNext()) {
+ PackageItem p = iter.next();
+ if (p.getName().equals(packageName)) {
+ String uuid = p.getUUID();
+ service.buildPackage(uuid, true);
+ break;
+ }}
+ }
+ } else if (pathstr [ 0 ].equals ("snapshot"))
+ if(repository.containsPackage(packageName)) {
+ repository.createPackageSnapshot(packageName, (String)
+ parameters.get(Parameters.SnapshotName.toString()));
+ } else {
+ throw new RulesRepositoryException ("Unknown action request: "
+ + request.getContextPath());
+ }
+
+ response.setContentType( "text/html" );
+ response.setStatus(200);
+ response.getWriter().write("OK");
+
+ } catch (Exception e) {
+ throw new IOException (e.getMessage());
+ }
+ }
+
+ /**
+ * Split from RestAPI
+ */
+ String[] split(String path) throws UnsupportedEncodingException {
+ if (path.indexOf("action") > -1) {
+ path = path.split("action")[1];
+ }
+ if (path.startsWith("/")) path = path.substring(1);
+ String[] bits = path.split("/");
+ for (int i = 0; i < bits.length; i++) {
+ bits[i] = URLDecoder.decode(bits[i], "UTF-8");
+ }
+ return bits;
+ }
+}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/Parameters.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/Parameters.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/rest/Parameters.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -0,0 +1,21 @@
+package org.drools.guvnor.server.rest;
+
+/**
+ * Simple parameter names for Actions exposed
+ * in the ActionsAPI.
+ */
+public enum Parameters {
+
+ PackageName {
+ public String toString() {
+ return "package-name";
+ }
+ },
+
+ SnapshotName {
+ public String toString() {
+ return "snapshot-name";
+ }
+ };
+
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml 2010-12-01 13:30:07 UTC (rev 36143)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml 2010-12-01 13:46:30 UTC (rev 36144)
@@ -1,134 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <display-name>JBoss Drools Guvnor</display-name>
- <filter>
- <filter-name>Seam Filter</filter-name>
- <filter-class>org.jboss.seam.web.ContextFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>Seam Filter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <listener>
- <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
- </listener>
- <!-- servlets - mostly to do with file management -->
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <display-name>JBoss Drools Guvnor</display-name>
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.web.ContextFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+ <!-- servlets - mostly to do with file management -->
+ <servlet>
+ <servlet-name>guvnorService</servlet-name>
+ <servlet-class>org.drools.guvnor.server.RepositoryServiceServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>securityService</servlet-name>
+ <servlet-class>org.drools.guvnor.server.SecurityServiceServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>AssetFileServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.AssetFileServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>PackageDeploymentServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.PackageDeploymentServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>RepositoryBackupServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.RepositoryBackupServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>WebdavServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.WebdavServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>RestAPIServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.RestAPIServlet</servlet-class>
+ </servlet>
<servlet>
- <servlet-name>guvnorService</servlet-name>
- <servlet-class>org.drools.guvnor.server.RepositoryServiceServlet</servlet-class>
+ <servlet-name>ActionsAPIServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.ActionsAPIServlet</servlet-class>
</servlet>
- <servlet>
- <servlet-name>securityService</servlet-name>
- <servlet-class>org.drools.guvnor.server.SecurityServiceServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>AssetFileServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.AssetFileServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>PackageDeploymentServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.PackageDeploymentServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>RepositoryBackupServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.RepositoryBackupServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>WebdavServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.WebdavServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>RestAPIServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.RestAPIServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>FeedServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.files.FeedServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>WorkflowManagerServlet</servlet-name>
- <servlet-class>org.gridcc.mce.mceworkflow.servlets.WorkflowManagerServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>WSDLParserServlet</servlet-name>
- <servlet-class>org.gridcc.mce.mceworkflow.servlets.WSDLParserServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>guvnorAPI</servlet-name>
- <servlet-class>org.drools.guvnor.server.GuvnorAPIServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>verificationService</servlet-name>
- <servlet-class>org.drools.guvnor.server.VerificationServiceImplementation</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>standaloneEditorService</servlet-name>
- <servlet-class>org.drools.guvnor.server.StandaloneEditorServiceImplementation</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>standaloneEditorServlet</servlet-name>
- <servlet-class>org.drools.guvnor.server.StandaloneEditorServlet</servlet-class>
- </servlet>
+ <servlet>
+ <servlet-name>FeedServlet</servlet-name>
+ <servlet-class>org.drools.guvnor.server.files.FeedServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>WorkflowManagerServlet</servlet-name>
+ <servlet-class>org.gridcc.mce.mceworkflow.servlets.WorkflowManagerServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>WSDLParserServlet</servlet-name>
+ <servlet-class>org.gridcc.mce.mceworkflow.servlets.WSDLParserServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>guvnorAPI</servlet-name>
+ <servlet-class>org.drools.guvnor.server.GuvnorAPIServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>verificationService</servlet-name>
+ <servlet-class>org.drools.guvnor.server.VerificationServiceImplementation</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>guvnorService</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/guvnorService</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>securityService</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/securityService</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>AssetFileServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/asset</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>PackageDeploymentServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/package/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>RepositoryBackupServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/backup</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>WebdavServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/webdav/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>RestAPIServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/api/*</url-pattern>
+ </servlet-mapping>
<servlet-mapping>
- <servlet-name>guvnorService</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/guvnorService</url-pattern>
+ <servlet-name>ActionsAPIServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/action/*</url-pattern>
</servlet-mapping>
- <servlet-mapping>
- <servlet-name>securityService</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/securityService</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AssetFileServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/asset</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>PackageDeploymentServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/package/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>RepositoryBackupServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/backup</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>WebdavServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/webdav/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>RestAPIServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/api/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>FeedServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/feed/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>WorkflowManagerServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/workflowmanager/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>WSDLParserServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/wsdlparser/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>guvnorAPI</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/guvnorAPI</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>verificationService</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/verificationService</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>standaloneEditorService</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/standaloneEditorService</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>standaloneEditorServlet</servlet-name>
- <url-pattern>/org.drools.guvnor.Guvnor/standaloneEditorServlet</url-pattern>
- </servlet-mapping>
- <session-config>
- <session-timeout>180</session-timeout>
- </session-config>
+ <servlet-mapping>
+ <servlet-name>FeedServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/feed/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>WorkflowManagerServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/workflowmanager/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>WSDLParserServlet</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/wsdlparser/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>guvnorAPI</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/guvnorAPI</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>verificationService</servlet-name>
+ <url-pattern>/org.drools.guvnor.Guvnor/verificationService</url-pattern>
+ </servlet-mapping>
+ <session-config>
+ <session-timeout>180</session-timeout>
+ </session-config>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Added: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/ActionAPIServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/ActionAPIServletTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/ActionAPIServletTest.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2010, ECOSUR and Andrew Waterman (andrew.waterman at gmail.com)
+ *
+ * Licensed 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.
+ * under the License.
+ */
+
+package org.drools.guvnor.server.files;
+
+import ch.ethz.ssh2.crypto.Base64;
+import java.io.ByteArrayInputStream;
+import java.util.HashMap;
+import java.util.UUID;
+import junit.framework.TestCase;
+import org.drools.guvnor.server.rest.Parameters;
+import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
+import org.drools.repository.RulesRepository;
+
+/**
+ * Some basic unit tests for compilation and snapshot
+ * creation in the ActionsAPIServlet.
+ *
+ * @author andrew.waterman at gmail.com
+ */
+public class ActionAPIServletTest extends TestCase {
+
+ private final String compilationPath = "http://foo/action/compile";
+ private final String snapshotPath = "http://foo/action/snapshot";
+
+ /*
+ * Modeled after testPost in RestAPIServletTest.
+ * @author andrew.waterman at gmail.com
+ */
+ public void testCompilation() throws Exception {
+ final String dynamicPackage = "test-action" + UUID.randomUUID();
+ RulesRepository repo = new RulesRepository(
+ TestEnvironmentSessionHelper.getSession());
+ repo.createPackage(dynamicPackage, "test-action package for testing");
+ HashMap<String, String> headers = new HashMap<String, String>() {
+ {
+ put("Authorization", "BASIC " + new String(Base64.encode(
+ "test:password".getBytes())));
+ }
+ };
+ HashMap<String,String> parameters = new HashMap<String,String>() {
+ {
+ put (Parameters.PackageName.toString(), dynamicPackage);
+ }
+ };
+ ActionsAPIServlet serv = new ActionsAPIServlet();
+ MockHTTPRequest req = new MockHTTPRequest(compilationPath,
+ headers, parameters);
+ MockHTTPResponse res = new MockHTTPResponse();
+ serv.doPost(req, res);
+ assertEquals(200, res.status);
+ repo.logout();
+ }
+
+ public void testSnapshotCreation () throws Exception {
+ final String dynamicPackage = "test-snap" + UUID.randomUUID();
+ RulesRepository repo = new RulesRepository(
+ TestEnvironmentSessionHelper.getSession());
+ repo.createPackage(dynamicPackage, "test-snapshot package for testing");
+ HashMap<String, String> headers = new HashMap<String, String>() {
+ {
+ put("Authorization", "BASIC " + new String(Base64.encode("test:password".getBytes())));
+ }
+ };
+ HashMap<String,String> parameters = new HashMap<String,String>() {
+ {
+ put (Parameters.PackageName.toString(), dynamicPackage);
+ put (Parameters.SnapshotName.toString(), "test-action-snap1");
+ }
+ };
+
+ ByteArrayInputStream in = new ByteArrayInputStream(
+ "some content".getBytes());
+ ActionsAPIServlet serv = new ActionsAPIServlet();
+ MockHTTPRequest req = new MockHTTPRequest(snapshotPath, headers,
+ parameters, in);
+ MockHTTPResponse res = new MockHTTPResponse();
+ serv.doPost(req, res);
+ assertEquals(200, res.status);
+ repo.logout();
+ }
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java 2010-12-01 13:30:07 UTC (rev 36143)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -1,18 +1,18 @@
/**
- * Copyright 2010 JBoss Inc
- *
- * Licensed 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.
- */
+* Copyright 2010 JBoss Inc
+*
+* Licensed 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.drools.guvnor.server.files;
@@ -20,6 +20,8 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
@@ -33,231 +35,253 @@
public class MockHTTPRequest implements HttpServletRequest {
- final private String uri;
- private Map<String, String> headers;
- ServletInputStream stream;
- String queryString;
+ final private URI uri;
+ private Map<String, String> headers;
+ ServletInputStream stream;
+ String queryString;
Map<String, String> parameters;
public String method;
- public StringBuffer url = new StringBuffer("http://foo.com");
+ public StringBuffer url = new StringBuffer("http://foo.com");
public MockHTTPRequest(String uri, Map<String, String> headers) {
- this.uri = uri;
- this.headers = headers;
- }
+ try {
+ this.uri = new URI (uri);
+ this.headers = headers;
+ } catch (URISyntaxException e) {
+ throw new RuntimeException (e);
+ }
+ }
public MockHTTPRequest(String uri, Map<String, String> headers, Map<String, String> parameters) {
- this.uri = uri;
- this.headers = headers;
- this.parameters = parameters;
- }
+ try {
+ this.uri = new URI (uri);
+ this.headers = headers;
+ this.parameters = parameters;
+ } catch (URISyntaxException e) {
+ throw new RuntimeException (e);
+ }
+ }
- public MockHTTPRequest(String uri, Map<String, String> headers, InputStream in) {
- this.uri = uri;
- this.headers = headers;
- this.stream = new MockInput(in);
- }
+ public MockHTTPRequest(String uri, Map<String, String> headers, InputStream in) {
+ try {
+ this.uri = new URI (uri);
+ this.headers = headers;
+ this.stream = new MockInput(in);
+ } catch (URISyntaxException e) {
+ throw new RuntimeException (e);
+ }
+ }
- public String getAuthType() {
- // TODO Auto-generated method stub
- return null;
- }
+ public MockHTTPRequest(String uri, Map<String, String> headers,
+ Map<String,String> parameters, InputStream in)
+ {
+ try {
+ this.uri = new URI (uri);
+ this.headers = headers;
+ this.parameters = parameters;
+ this.stream = new MockInput(in);
+ } catch (URISyntaxException e) {
+ throw new RuntimeException (e);
+ }
+ }
- public String getContextPath() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getAuthType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public Cookie[] getCookies() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getContextPath() {
+ return uri.getPath();
+ }
- public long getDateHeader(String arg0) {
- // TODO Auto-generated method stub
- return 0;
- }
+ public Cookie[] getCookies() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getHeader(String n) {
- return headers.get(n);
- }
+ public long getDateHeader(String arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- public Enumeration getHeaderNames() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getHeader(String n) {
+ return headers.get(n);
+ }
- public Enumeration getHeaders(String arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public Enumeration getHeaderNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public int getIntHeader(String arg0) {
- // TODO Auto-generated method stub
- return 0;
- }
+ public Enumeration getHeaders(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getMethod() {
+ public int getIntHeader(String arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- return method;
- }
+ public String getMethod() {
- public String getPathInfo() {
- // TODO Auto-generated method stub
- return null;
- }
+ return method;
+ }
- public String getPathTranslated() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getPathInfo() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getQueryString() {
- return queryString;
- }
+ public String getPathTranslated() {
+ return uri.getPath();
+ }
- public String getRemoteUser() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getQueryString() {
+ return queryString;
+ }
- public String getRequestURI() {
- return uri;
- }
+ public String getRemoteUser() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public StringBuffer getRequestURL() {
+ public String getRequestURI() {
+ return uri.toString();
+ }
+ public StringBuffer getRequestURL() {
+
return url;
- }
+ }
- public String getRequestedSessionId() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getRequestedSessionId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getServletPath() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getServletPath() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public HttpSession getSession() {
- // TODO Auto-generated method stub
- return null;
- }
+ public HttpSession getSession() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public HttpSession getSession(boolean arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public HttpSession getSession(boolean arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public Principal getUserPrincipal() {
- // TODO Auto-generated method stub
- return null;
- }
+ public Principal getUserPrincipal() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public boolean isRequestedSessionIdFromCookie() {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isRequestedSessionIdFromCookie() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public boolean isRequestedSessionIdFromURL() {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isRequestedSessionIdFromURL() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public boolean isRequestedSessionIdFromUrl() {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isRequestedSessionIdFromUrl() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public boolean isRequestedSessionIdValid() {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isRequestedSessionIdValid() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public boolean isUserInRole(String arg0) {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isUserInRole(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public Object getAttribute(String arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public Object getAttribute(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public Enumeration getAttributeNames() {
- // TODO Auto-generated method stub
- return null;
- }
+ public Enumeration getAttributeNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getCharacterEncoding() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getCharacterEncoding() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public int getContentLength() {
- // TODO Auto-generated method stub
- return 0;
- }
+ public int getContentLength() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- public String getContentType() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getContentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public ServletInputStream getInputStream() throws IOException {
+ public ServletInputStream getInputStream() throws IOException {
- return stream ;
- }
+ return stream ;
+ }
- public Locale getLocale() {
- // TODO Auto-generated method stub
- return null;
- }
+ public Locale getLocale() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public Enumeration getLocales() {
- // TODO Auto-generated method stub
- return null;
- }
+ public Enumeration getLocales() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getParameter(String arg0) {
-
- return parameters.get(arg0);
- }
+ public String getParameter(String arg0) {
- public Map getParameterMap() {
- // TODO Auto-generated method stub
- return null;
- }
+ return parameters.get(arg0);
+ }
- public Enumeration getParameterNames() {
- // TODO Auto-generated method stub
- return null;
- }
+ public Map getParameterMap() {
+ return parameters;
+ }
- public String[] getParameterValues(String arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public Enumeration getParameterNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getProtocol() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String[] getParameterValues(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public BufferedReader getReader() throws IOException {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getProtocol() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getRealPath(String arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public BufferedReader getReader() throws IOException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ public String getRealPath(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
public int getRemotePort() {
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
@@ -275,69 +299,69 @@
}
public String getRemoteAddr() {
- // TODO Auto-generated method stub
- return null;
- }
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getRemoteHost() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getRemoteHost() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public RequestDispatcher getRequestDispatcher(String arg0) {
- // TODO Auto-generated method stub
- return null;
- }
+ public RequestDispatcher getRequestDispatcher(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getScheme() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getScheme() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public String getServerName() {
- // TODO Auto-generated method stub
- return null;
- }
+ public String getServerName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
- public int getServerPort() {
- // TODO Auto-generated method stub
- return 0;
- }
+ public int getServerPort() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
- public boolean isSecure() {
- // TODO Auto-generated method stub
- return false;
- }
+ public boolean isSecure() {
+ // TODO Auto-generated method stub
+ return false;
+ }
- public void removeAttribute(String arg0) {
- // TODO Auto-generated method stub
+ public void removeAttribute(String arg0) {
+ // TODO Auto-generated method stub
- }
+ }
- public void setAttribute(String arg0, Object arg1) {
- // TODO Auto-generated method stub
+ public void setAttribute(String arg0, Object arg1) {
+ // TODO Auto-generated method stub
- }
+ }
- public void setCharacterEncoding(String arg0)
- throws UnsupportedEncodingException {
- // TODO Auto-generated method stub
+ public void setCharacterEncoding(String arg0)
+ throws UnsupportedEncodingException {
+ // TODO Auto-generated method stub
- }
+ }
- static class MockInput extends ServletInputStream {
+ static class MockInput extends ServletInputStream {
- private InputStream stream;
+ private InputStream stream;
- MockInput(InputStream in) {
- this.stream = in;
- }
+ MockInput(InputStream in) {
+ this.stream = in;
+ }
- public int read() throws IOException {
- // TODO Auto-generated method stub
- return stream.read();
- }
+ public int read() throws IOException {
+ // TODO Auto-generated method stub
+ return stream.read();
+ }
- }
-}
+ }
+ }
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java 2010-12-01 13:30:07 UTC (rev 36143)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPResponse.java 2010-12-01 13:46:30 UTC (rev 36144)
@@ -40,6 +40,7 @@
private String contentType;
Map<String, String> headers = new HashMap<String, String>();
int errorCode;
+ int status;
public MockHTTPResponse() {
@@ -139,8 +140,7 @@
}
public void setStatus(int arg0) {
- // TODO Auto-generated method stub
-
+ status = arg0;
}
public void setStatus(int arg0, String arg1) {
More information about the jboss-svn-commits
mailing list