[jboss-svn-commits] JBL Code SVN: r33578 - in labs/jbossrules/trunk/drools-guvnor/src/main: java/org/drools/guvnor/client and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 21 17:01:42 EDT 2010
Author: KrisVerlaenen
Date: 2010-06-21 17:01:41 -0400 (Mon, 21 Jun 2010)
New Revision: 33578
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/processeditor/
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/processeditor/BusinessProcessEditor.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/GuvnorAPIServlet.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleFlowContentModel.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/BPMN2ProcessHandler.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/PackageDeploymentURIHelper.java
labs/jbossrules/trunk/drools-guvnor/src/main/resources/preferences.properties
labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml
Log:
JBRULES-2519: Support integration with external editor for BPMN 2.0 edition
- adding in Oryx integration
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml 2010-06-21 21:01:41 UTC (rev 33578)
@@ -33,7 +33,7 @@
<script src="js/ext/adapter/ext/ext-base.js" />
<script src="js/ext/ext-all.js" />
-
+ <servlet path="/guvnorAPI" class="org.drools.guvnor.server.GuvnorAPIServlet" />
<servlet path="/guvnorService" class="org.drools.guvnor.server.RepositoryServiceServlet" />
<servlet path="/securityService" class="org.drools.guvnor.server.SecurityServiceServlet" />
<servlet path="/asset" class="org.drools.guvnor.server.files.AssetFileServlet"/>
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/processeditor/BusinessProcessEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/processeditor/BusinessProcessEditor.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/processeditor/BusinessProcessEditor.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2005 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.client.processeditor;
+
+import org.drools.guvnor.client.common.DirtyableComposite;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.rpc.RuleFlowContentModel;
+import org.drools.guvnor.client.ruleeditor.SaveEventListener;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.IFrameElement;
+import com.google.gwt.user.client.ui.Frame;
+
+/**
+ * The Business Process Editor, wrapping the Process Editor
+ *
+ * @author <a href="mailto:atoulme at intalio.com">Antoine Toulme</a>
+ */
+public class BusinessProcessEditor extends DirtyableComposite implements SaveEventListener {
+
+ private String modelUUID;
+ private RuleAsset asset;
+ private Frame frame;
+
+ public BusinessProcessEditor(RuleAsset asset) {
+ this.asset = asset;
+ modelUUID = asset.uuid;
+ initWidgets();
+ }
+
+ protected void initWidgets() {
+ String name = "/designer/editor";
+ name += "?uuid=" + modelUUID;
+ frame = new Frame(name);
+ frame.getElement().setAttribute("domain", Document.get().getDomain());
+ frame.setWidth("100%");
+ frame.setHeight("100%");
+ initWidget(frame);
+ setWidth("100%");
+ setHeight("100%");
+ }
+
+ private final native String callSave(Document frameDoc) /*-{
+ //console.log(frameDoc.defaultView.ORYX.EDITOR.getSerializedJSON());
+ return frameDoc.defaultView.ORYX.EDITOR.getSerializedJSON();
+ }-*/;
+
+ public void onSave() {
+ //we replace the model by the new model:
+ String s = callSave(((IFrameElement)
+ ((com.google.gwt.dom.client.Element)
+ frame.getElement())).getContentDocument());
+ if (asset.content == null) {
+ asset.content = new RuleFlowContentModel();
+ }
+ ((RuleFlowContentModel) asset.content).setXml(null);
+ ((RuleFlowContentModel) asset.content).setJson(s);
+ }
+
+ public void onAfterSave() {
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleFlowContentModel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleFlowContentModel.java 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleFlowContentModel.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -32,6 +32,7 @@
private List<TransferNode> nodes = new ArrayList<TransferNode>();
private Collection<TransferConnection> connections = new ArrayList<TransferConnection>();
private String xml;
+ private String json;
public void setNodes(List<TransferNode> nodes) {
this.nodes = nodes;
@@ -57,4 +58,12 @@
return xml;
}
+ public void setJson(String json) {
+ this.json = json;
+ }
+
+ public String getJson() {
+ return json;
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -28,8 +28,8 @@
import org.drools.guvnor.client.factmodel.FactModelWidget;
import org.drools.guvnor.client.modeldriven.ui.RuleModeller;
import org.drools.guvnor.client.modeldriven.ui.RuleModellerWidgetFactory;
-import org.drools.guvnor.client.modeldriven.ui.RuleTemplateEditor;
import org.drools.guvnor.client.packages.ModelAttachmentFileWidget;
+import org.drools.guvnor.client.processeditor.BusinessProcessEditor;
import org.drools.guvnor.client.qa.ScenarioWidget;
import org.drools.guvnor.client.rpc.RuleAsset;
@@ -54,52 +54,57 @@
/**
* This will return the appropriate viewer for the asset.
*/
- public static Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {
- RulePackageSelector.currentlySelectedPackage = asset.metaData.packageName;
- // depending on the format, load the appropriate editor
- if (asset.metaData.format.equals(AssetFormats.BUSINESS_RULE)) {
- return new RuleModeller(asset, new RuleModellerWidgetFactory());
- } else if (asset.metaData.format.equals(AssetFormats.DSL_TEMPLATE_RULE)) {
- return new RuleValidatorWrapper(new DSLRuleEditor(asset), asset);
- } else if (asset.metaData.format.equals(AssetFormats.BPEL_PACKAGE)
- && Preferences.getBooleanPref("flex-bpel-editor")) {
- return new BPELWrapper(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.MODEL)) {
- return new ModelAttachmentFileWidget(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.DECISION_SPREADSHEET_XLS)) {
- return new DecisionTableXLSWidget(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.RULE_FLOW_RF)) {
- return new RuleFlowWrapper(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.BPMN2_PROCESS)) {
- return new RuleFlowWrapper(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.DRL)) {
- return new DrlEditor(asset);
- } else if (asset.metaData.format.equals(AssetFormats.ENUMERATION)) {
- return new DefaultRuleContentWidget(asset);
- } else if (asset.metaData.format.equals(AssetFormats.TEST_SCENARIO)) {
- return new ScenarioWidget(asset);
- } else if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)) {
- return new GuidedDecisionTableWidget(asset);
- } else if (asset.metaData.format.equals(AssetFormats.DRL_MODEL)) {
- return new FactModelWidget(asset);
- } else if (asset.metaData.format.equals(AssetFormats.DSL)) {
- return new DefaultRuleContentWidget(asset);
- } else if (asset.metaData.format.equals(AssetFormats.PROPERTIES)) {
- return new PropertiesWidget(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.XML)) {
- return new XmlFileWidget(asset, viewer);
- } else if (asset.metaData.format.equals(AssetFormats.FUNCTION)) {
- return new FunctionEditor(asset);
- } else if (asset.metaData.format.equals(AssetFormats.WORKING_SET)) {
- return new WorkingSetEditor(asset);
- } else if (asset.metaData.format.equals(AssetFormats.RULE_TEMPLATE)) {
- return new RuleTemplateEditor(asset);
- } else {
- return new DefaultContentUploadEditor(asset, viewer);
- }
+ public static Widget getEditorViewer(RuleAsset asset,
+ RuleViewer viewer) {
+ RulePackageSelector.currentlySelectedPackage = asset.metaData.packageName;
+ //depending on the format, load the appropriate editor
+ if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
+ return new RuleModeller( asset, new RuleModellerWidgetFactory());
+ } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
+ return new RuleValidatorWrapper( new DSLRuleEditor( asset ),
+ asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.BPEL_PACKAGE ) && Preferences.getBooleanPref( "flex-bpel-editor" ) ) {
+ return new BPELWrapper( asset,
+ viewer );
+ } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
+ return new ModelAttachmentFileWidget( asset,
+ viewer );
+ } else if ( asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS ) ) {
+ return new DecisionTableXLSWidget( asset,
+ viewer );
- }
+ } else if ( asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF ) ) {
+ return new RuleFlowWrapper( asset,
+ viewer );
+ } else if (asset.metaData.format.equals(AssetFormats.BPMN2_PROCESS) && Preferences.getBooleanPref( "oryx-bpmn-editor" ) ) {
+ return new BusinessProcessEditor(asset);
+ } else if ( asset.metaData.format.equals( AssetFormats.DRL ) ) {
+ return new DrlEditor( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.ENUMERATION ) ) {
+ return new DefaultRuleContentWidget( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.TEST_SCENARIO ) ) {
+ return new ScenarioWidget( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.DECISION_TABLE_GUIDED ) ) {
+ return new GuidedDecisionTableWidget( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.DRL_MODEL ) ) {
+ return new FactModelWidget( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.DSL ) ) {
+ return new DefaultRuleContentWidget( asset );
+ } else if ( asset.metaData.format.equals( AssetFormats.PROPERTIES ) ) {
+ return new PropertiesWidget( asset,
+ viewer );
+ } else if ( asset.metaData.format.equals( AssetFormats.XML ) ) {
+ return new XmlFileWidget( asset,
+ viewer );
+ } else if ( asset.metaData.format.equals( AssetFormats.FUNCTION ) ) {
+ return new FunctionEditor( asset );
+ } else {
+ return new DefaultContentUploadEditor( asset,
+ viewer );
+ }
+ }
+
private static Map<String, String> getTypeImages() {
Map<String, String> result = new HashMap<String, String>();
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/GuvnorAPIServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/GuvnorAPIServlet.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/GuvnorAPIServlet.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2005 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;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.rpc.RuleFlowContentModel;
+import org.drools.guvnor.server.util.LoggingHelper;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+/**
+ * A servlet opening an API into the Guvnor services.
+ *
+ * @author <a href="mailto:atoulme at intalio.com">Antoine Toulme</a>
+ */
+public class GuvnorAPIServlet extends HttpServlet {
+
+ private static final Logger log = LoggingHelper.getLogger(GuvnorAPIServlet.class);
+
+ public void service(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ if (log.isDebugEnabled()) {
+ log.debug("Incoming request for Guvnor API:" + request.getRequestURL());
+ }
+ String action = request.getParameter("action");
+ if ("load".equals(action)) {
+ String uuid = request.getParameter("uuid");
+ if (uuid == null) {
+ throw new ServletException(new IllegalArgumentException("The load action requires the parameter uuid"));
+ }
+ try {
+ RuleAsset asset = RepositoryServiceServlet.getService().loadRuleAsset(uuid);
+ if (asset.content != null) {
+ response.setContentType("application/json");
+ String content = null;
+ if (asset.content instanceof RuleFlowContentModel) {
+ content = ((RuleFlowContentModel) asset.content).getXml();
+ } else {
+ content = asset.content.toString();
+ }
+ try {
+ // TODO fix for non-localhost
+ content = deserialize(
+ "http://localhost:8080/designer/bpmn2_0deserialization", content);
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
+ throw new ServletException(e.getMessage(), e);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("Sending model");
+ log.debug(content);
+ log.debug("End of sending model");
+ }
+ response.setContentLength(content.getBytes().length);
+ response.getOutputStream().write(content.getBytes());
+ response.getOutputStream().close();
+ }
+ } catch (SerializableException e) {
+ log.error(e.getMessage(), e);
+ throw new ServletException(e.getMessage(), e);
+ }
+
+ } else {
+ throw new ServletException(new IllegalArgumentException("The servlet requires a parameter named action"));
+ }
+ }
+
+ public static String deserialize(String deserializeUrl, String modelXml) throws IOException {
+ OutputStream out = null;
+ InputStream content = null;
+ ByteArrayOutputStream bos = null;
+
+ try {
+ URL bpmn2_0SerializationURL = new URL(deserializeUrl);
+ modelXml = "data=" + URLEncoder.encode(modelXml, "UTF-8");
+ byte[] bytes = modelXml.getBytes("UTF-8");
+
+ HttpURLConnection connection = (HttpURLConnection) bpmn2_0SerializationURL.openConnection();
+ connection.setRequestMethod("POST");
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ connection.setFixedLengthStreamingMode(bytes.length);
+ connection.setDoOutput(true);
+ out = connection.getOutputStream();
+ out.write(bytes);
+ out.close();
+
+ content = connection.getInputStream();
+
+ bos = new ByteArrayOutputStream();
+ int b = 0;
+ while ((b = content.read()) > -1) {
+ bos.write(b);
+ }
+ bytes = bos.toByteArray();
+ content.close();
+ bos.close();
+ return new String(bytes);
+ } finally {
+ try {
+ if (out != null) {
+ out.close();
+ }
+ if (content != null) {
+ content.close();
+ }
+ if (bos != null) {
+ bos.close();
+ }
+ } catch (IOException e) {
+ }
+ }
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/BPMN2ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/BPMN2ProcessHandler.java 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/BPMN2ProcessHandler.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -17,10 +17,16 @@
*/
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import org.apache.log4j.Logger;
import org.drools.bpmn2.xml.BPMNSemanticModule;
import org.drools.bpmn2.xml.XmlBPMNProcessDumper;
import org.drools.compiler.DroolsParserException;
@@ -28,12 +34,18 @@
import org.drools.compiler.xml.XmlProcessReader;
import org.drools.guvnor.client.rpc.RuleAsset;
import org.drools.guvnor.client.rpc.RuleFlowContentModel;
+import org.drools.guvnor.server.GuvnorAPIServlet;
import org.drools.guvnor.server.builder.BRMSPackageBuilder;
import org.drools.guvnor.server.builder.RuleFlowContentModelBuilder;
+import org.drools.guvnor.server.builder.RuleFlowProcessBuilder;
import org.drools.guvnor.server.builder.ContentPackageAssembler.ErrorLogger;
+import org.drools.guvnor.server.util.LoggingHelper;
import org.drools.repository.AssetItem;
import org.drools.repository.PackageItem;
+import org.drools.repository.RulesRepositoryException;
import org.drools.ruleflow.core.RuleFlowProcess;
+import org.drools.compiler.xml.XmlProcessReader;
+import org.drools.compiler.xml.XmlRuleFlowProcessDumper;
import com.google.gwt.user.client.rpc.SerializableException;
@@ -41,6 +53,8 @@
implements
ICompilable {
+ private static final Logger log = LoggingHelper.getLogger(BPMN2ProcessHandler.class);
+
public void retrieveAssetContent(RuleAsset asset,
PackageItem pkg,
AssetItem item) throws SerializableException {
@@ -49,7 +63,12 @@
RuleFlowContentModel content = RuleFlowContentModelBuilder.createModel( process );
content.setXml( item.getContent() );
asset.content = content;
- }
+ } else {
+ // we are very fault tolerant
+ RuleFlowContentModel content = new RuleFlowContentModel();
+ content.setXml(item.getContent());
+ asset.content = content;
+ }
}
protected RuleFlowProcess readProcess(InputStream is) {
@@ -77,8 +96,90 @@
public void storeAssetContent(RuleAsset asset,
AssetItem repoAsset) throws SerializableException {
+ RuleFlowContentModel content = (RuleFlowContentModel) asset.content;
+ System.out.println(content);
+ //
+ // Migrate v4 ruleflows to v5
+ // Added guards to check for nulls in the case where the ruleflows
+ // have not been migrated from drools 4 to 5.
+ //
+ if ( content != null ) {
+ if ( content.getXml() != null ) {
+ RuleFlowProcess process = readProcess( new ByteArrayInputStream( content.getXml().getBytes() ) );
+
+ if ( process != null ) {
+ RuleFlowProcessBuilder.updateProcess( process,
+ content.getNodes() );
+
+ XmlRuleFlowProcessDumper dumper = XmlRuleFlowProcessDumper.INSTANCE;
+ String out = dumper.dump( process );
+
+ repoAsset.updateContent( out );
+ } else {
+ //
+ // Migrate v4 ruleflows to v5
+ // Put the old contents back as there is no updating possible
+ //
+ repoAsset.updateContent( content.getXml() );
+ }
+ }
+ if ( content.getJson() != null) {
+ try {
+ String xml = serialize( "http://localhost:8080/designer/bpmn2_0serialization", content.getJson());
+ System.out.println("xml = " + xml);
+ repoAsset.updateContent(xml);
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+ }
}
+ public static String serialize(String serializeUrl, String modelJson) throws IOException {
+ OutputStream out = null;
+ InputStream content = null;
+ ByteArrayOutputStream bos = null;
+
+ try {
+ modelJson = "data=" + URLEncoder.encode(modelJson, "UTF-8") + "&xml=true";
+ byte[] bytes = modelJson.getBytes("UTF-8");
+
+ HttpURLConnection connection = (HttpURLConnection) new URL(serializeUrl).openConnection();
+ connection.setRequestMethod("POST");
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ connection.setFixedLengthStreamingMode(bytes.length);
+ connection.setDoOutput(true);
+ out = connection.getOutputStream();
+ out.write(bytes);
+ out.close();
+
+ content = connection.getInputStream();
+
+ bos = new ByteArrayOutputStream();
+ int b = 0;
+ while ((b = content.read()) > -1) {
+ bos.write(b);
+ }
+ bytes = bos.toByteArray();
+ content.close();
+ bos.close();
+ return new String(bytes);
+ } finally {
+ try {
+ if (out != null) {
+ out.close();
+ }
+ if (content != null) {
+ content.close();
+ }
+ if (bos != null) {
+ bos.close();
+ }
+ } catch (IOException e) {
+ }
+ }
+ }
+
/**
* The rule flow can not be built if the package name is not the same as the
* package that it exists in. This changes the package name.
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/PackageDeploymentURIHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/PackageDeploymentURIHelper.java 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/PackageDeploymentURIHelper.java 2010-06-21 21:01:41 UTC (rev 33578)
@@ -36,7 +36,7 @@
private String version;
private String packageName;
private String assetName = null;
- private boolean source;
+ private boolean source = true;
private boolean documentation;
public PackageDeploymentURIHelper(String uri) throws UnsupportedEncodingException {
@@ -44,15 +44,21 @@
String url = URLDecoder.decode( uri,
"UTF-8" );
- if ( url.endsWith( ".drl" ) || url.endsWith( ".pdf" ) ) {
+ if ( url.endsWith( ".drl" ) || url.endsWith( ".bpmn" ) || url.endsWith( ".pdf" ) ) {
+ int subs = 0;
if ( url.endsWith( ".drl" ) ) {
source = true;
+ subs = 4;
+ } else if ( url.endsWith( ".bpmn" ) ) {
+ source = true;
+ subs = 5;
} else if ( url.endsWith( ".pdf" ) ) {
documentation = true;
+ subs = 4;
}
url = url.substring( 0,
- url.length() - 4 );
+ url.length() - subs );
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/resources/preferences.properties
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/resources/preferences.properties 2010-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/resources/preferences.properties 2010-06-21 21:01:41 UTC (rev 33578)
@@ -6,6 +6,7 @@
visual-ruleflow=true
flex-bpel-editor=true
verifier=true
+oryx-bpmn-editor=true
# Date and language settings
drools.dateformat=dd-MMM-yyyy
drools.defaultlanguage=en
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-06-21 20:59:16 UTC (rev 33577)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/webapp/WEB-INF/web.xml 2010-06-21 21:01:41 UTC (rev 33578)
@@ -58,8 +58,11 @@
<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-mapping>
<servlet-name>guvnorService</servlet-name>
<url-pattern>/org.drools.guvnor.Guvnor/guvnorService</url-pattern>
@@ -100,8 +103,11 @@
<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>
-
<session-config>
<session-timeout>180</session-timeout>
</session-config>
More information about the jboss-svn-commits
mailing list