[jboss-svn-commits] JBL Code SVN: r7677 - in labs/jbossesb/trunk/product: console console/resources/WEB-INF console/src/org/jboss/soa/esb/admin/console/transform console/src/org/jboss/soa/esb/admin/console/transform/configimport console/test/src/org/jboss/soa/esb/admin/console/transform console/view/transform lib/ext
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 17 07:26:59 EST 2006
Author: tfennelly
Date: 2006-11-17 07:26:48 -0500 (Fri, 17 Nov 2006)
New Revision: 7677
Added:
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceImport.java
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceLocation.java
labs/jbossesb/trunk/product/console/view/transform/import-resources.xhtml
Modified:
labs/jbossesb/trunk/product/console/build.properties
labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml
labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java
labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java
labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar
Log:
add config import feature - to make demoing easier
Modified: labs/jbossesb/trunk/product/console/build.properties
===================================================================
--- labs/jbossesb/trunk/product/console/build.properties 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/build.properties 2006-11-17 12:26:48 UTC (rev 7677)
@@ -1,2 +1,2 @@
-deploy.dir=/home/tfennelly/jboss-4.0.4.GA/server/default/deploy
-#deploy.dir=/home/tfennelly/packages/apache-tomcat-5.5.20/webapps
+#deploy.dir=/home/tfennelly/jboss-4.0.4.GA/server/default/deploy
+deploy.dir=/home/tfennelly/packages/apache-tomcat-5.5.20/webapps
Modified: labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml 2006-11-17 12:26:48 UTC (rev 7677)
@@ -115,6 +115,12 @@
<redirect />
</navigation-case>
+ <navigation-case>
+ <from-outcome>import-resources</from-outcome>
+ <to-view-id>/transform/import-resources.xhtml</to-view-id>
+ <redirect />
+ </navigation-case>
+
<!-- ==============================================================================================
Message Contract Config View navigation rules.
=============================================================================================== -->
Modified: labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml 2006-11-17 12:26:48 UTC (rev 7677)
@@ -4,4 +4,7 @@
<!-- Support GET requests for the configuration data i.e. the ESB reading the configurations... -->
<page view-id="/transform/smooks-config.xhtml" action="#{listAllResources.list}"/>
+
+ <!-- Support GET requests for performing imports... -->
+ <page view-id="/transform/import-resources.xhtml" action="#{resourceImport.show}"/>
</pages>
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -55,9 +55,7 @@
* Initialises the data model before it's outjected.
* @return
*/
- public String list() {
+ public void list() {
allResourceConfigs = esbDatabase.createQuery("from TransformationResource").list();
-
- return "list-resources-as-smooks-config";
}
}
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -137,11 +137,7 @@
public String save() {
try {
// Persist...
- esbDatabase.persist(transResource);
- for(TransformationResourceParameter parameter : transResource.getParameters()) {
- parameter.setTransResource(transResource);
- esbDatabase.persist(parameter);
- }
+ persistNewResource(transResource, esbDatabase);
return "home";
} catch(Throwable thrown) {
@@ -150,6 +146,14 @@
}
}
+ public static void persistNewResource(TransformationResource transResource, Session esbDatabase) {
+ esbDatabase.persist(transResource);
+ for(TransformationResourceParameter parameter : transResource.getParameters()) {
+ parameter.setTransResource(transResource);
+ esbDatabase.persist(parameter);
+ }
+ }
+
/**
* Assert that all parameters that have been defined as "required" on the resource spec
* are set.
Modified: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -51,8 +51,9 @@
public TransformationResourceParameter() {
}
- public TransformationResourceParameter(String name, String value) {
+ public TransformationResourceParameter(String name, String type, String value) {
this.name = name;
+ this.type = type;
setValueAsString(value);
}
Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceImport.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceImport.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceImport.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -0,0 +1,164 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.configimport;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.core.FacesMessages;
+import org.jboss.soa.esb.admin.console.transform.NewResource;
+import org.jboss.soa.esb.admin.console.transform.TransformationResource;
+import org.jboss.soa.esb.admin.console.transform.TransformationResourceParameter;
+import org.milyn.cdr.Parameter;
+import org.milyn.cdr.SmooksResourceConfiguration;
+import org.milyn.cdr.SmooksResourceConfigurationList;
+import org.milyn.cdr.SmooksResourceConfigurationStore;
+import org.milyn.cdr.UseragentExpression;
+import org.milyn.cdr.XMLConfigDigester;
+import org.milyn.container.standalone.StandaloneContainerContext;
+import org.milyn.device.MockUAContext;
+import org.xml.sax.SAXException;
+
+/**
+ * Import Smooks transformation resource condifurations.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("resourceImport")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="home")
+public class ResourceImport implements Serializable {
+
+ @In(create=true)
+ private Session esbDatabase;
+
+ @In(required=false) @Out(scope=CONVERSATION)
+ private ResourceLocation resourceLocation;
+
+ @Begin(join=true)
+ public void show() {
+ resourceLocation = new ResourceLocation();
+ }
+
+ @End
+ public String importResources() {
+ File localFile = new File(resourceLocation.getLocation());
+ InputStream resStream = null;
+
+ try {
+ if(localFile.exists()) {
+ resStream = new FileInputStream(localFile);
+ } else {
+ URI uri = new URI(resourceLocation.getLocation());
+ resStream = uri.toURL().openStream();
+ }
+
+ loadConfigurations(resStream);
+ } catch(Exception e) {
+ e.printStackTrace();
+ FacesMessages.instance().add("Import Failed: " + e.getMessage());
+ } finally {
+ if(resStream != null) {
+ try {
+ resStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return "home";
+ }
+
+ private void loadConfigurations(InputStream resStream) throws SAXException, IOException {
+ SmooksResourceConfigurationList resList = XMLConfigDigester.digestConfig("import-list", resStream);
+
+ for(int i = 0; i < resList.size(); i++) {
+ TransformationResource transResource = toTransformationResource(resList.get(i));
+
+ NewResource.persistNewResource(transResource, esbDatabase);
+ }
+ }
+
+ private TransformationResource toTransformationResource(SmooksResourceConfiguration configuration) {
+ TransformationResource resource = new TransformationResource();
+
+ resource.setUseragent(getUseragentString(configuration.getUseragentExpressions()));
+ resource.setSelector(configuration.getSelector());
+ resource.setPath(configuration.getPath());
+ resource.setNamespace(configuration.getNamespaceURI());
+
+ List smooksParams = configuration.getParameters();
+ resource.setParameters(new ArrayList<TransformationResourceParameter>());
+ for(int i = 0; i < smooksParams.size(); i++) {
+ TransformationResourceParameter parameter = null;
+
+ Object listEntry = smooksParams.get(i);
+ if(listEntry instanceof List) {
+ List parameterGroup = (List)listEntry;
+ for(int ii = 0; ii < parameterGroup.size(); ii++) {
+ Parameter param = (Parameter)parameterGroup.get(ii);
+ parameter = new TransformationResourceParameter(param.getName(), param.getType(), param.getValue());
+ }
+ } else if(listEntry instanceof Parameter) {
+ Parameter param = (Parameter)listEntry;
+ parameter = new TransformationResourceParameter(param.getName(), param.getType(), param.getValue());
+ }
+
+ if(parameter != null) {
+ parameter.setTransResource(resource);
+ resource.getParameters().add(parameter);
+ }
+ }
+
+ return resource;
+ }
+
+
+ private String getUseragentString(UseragentExpression[] useragentExpressions) {
+ StringBuffer string = new StringBuffer();
+
+ for(int i = 0; i < useragentExpressions.length; i++) {
+ string.append(useragentExpressions[i].getExpression());
+ if(i < (useragentExpressions.length - 1)) {
+ string.append(", ");
+ }
+ }
+
+ return null;
+ }
+}
Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceLocation.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceLocation.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/configimport/ResourceLocation.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.configimport;
+
+import org.jboss.seam.annotations.Name;
+
+/**
+ * Resource Import location bean.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("resourceLocation")
+public class ResourceLocation {
+
+ private String location;
+
+ /**
+ * @return Returns the location.
+ */
+ public String getLocation() {
+ return location;
+ }
+
+ /**
+ * @param location The location to set.
+ */
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+}
Modified: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java 2006-11-17 12:26:48 UTC (rev 7677)
@@ -47,7 +47,7 @@
res.setPath("path");
res.setSelector("selector");
res.setUseragent("ua");
- res.setParameters(Arrays.asList(new TransformationResourceParameter[] {new TransformationResourceParameter("name", "value")}));
+ res.setParameters(Arrays.asList(new TransformationResourceParameter[] {new TransformationResourceParameter("name", null, "value")}));
transList.add(res);
transList.add(res);
Added: labs/jbossesb/trunk/product/console/view/transform/import-resources.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/import-resources.xhtml 2006-11-16 23:11:56 UTC (rev 7676)
+++ labs/jbossesb/trunk/product/console/view/transform/import-resources.xhtml 2006-11-17 12:26:48 UTC (rev 7677)
@@ -0,0 +1,38 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+ <div class="section">
+ <fieldset>
+ <h:form>
+ <h2>Import Transformation/Analysis Resources</h2>
+ <s:validateAll>
+ <div class="section">
+ <div class="entry">
+ <div class="label"><h:outputLabel for="Location">Location (URI or filesystem path):</h:outputLabel></div>
+ <div class="input">
+ <h:inputText id="Location" value="#{resourceLocation.location}" size="100" required="true" />
+ <br/><span class="errors"><h:message for="Location" /></span>
+ </div>
+ </div>
+ </div>
+ <div class="section">
+ <h:commandButton value="Import" action="#{resourceImport.importResources}" />
+ </div>
+ </s:validateAll>
+ </h:form>
+ </fieldset>
+ </div>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+</ui:define>
+
+</ui:composition>
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar
===================================================================
(Binary files differ)
More information about the jboss-svn-commits
mailing list