[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