[jboss-svn-commits] JBL Code SVN: r6374 - in labs/jbossesb/trunk/product: core/listeners core/listeners/src/org/jboss/soa/esb/actions core/listeners/src/org/jboss/soa/esb/listeners core/listeners/tests/src core/listeners/tests/src/org/jboss/soa/esb/actions lib/ext
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 22 12:42:09 EDT 2006
Author: tfennelly
Date: 2006-09-22 12:40:48 -0400 (Fri, 22 Sep 2006)
New Revision: 6374
Added:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java
labs/jbossesb/trunk/product/core/listeners/tests/src/device-profile.xml
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl
labs/jbossesb/trunk/product/core/listeners/tests/src/smooks-cdr.lst
labs/jbossesb/trunk/product/lib/ext/commons-lang-2.1.jar
labs/jbossesb/trunk/product/lib/ext/dtdparser-1.21.jar
labs/jbossesb/trunk/product/lib/ext/milyn-commons-0.7.jar
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.7.2-SNAPSHOT.jar
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-misc-0.1.1.jar
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-templating-0.2.jar
labs/jbossesb/trunk/product/lib/ext/milyn-tinak-0.7.jar
labs/jbossesb/trunk/product/lib/ext/xercesImpl-2.7.1.jar
labs/jbossesb/trunk/product/lib/ext/xml-apis-1.3.02.jar
Removed:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformActionHandler.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformAction-Config-01.xml
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionFuncTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionUnitTest.java
Modified:
labs/jbossesb/trunk/product/core/listeners/build.xml
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FileCopier.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/JMSRouter.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToFileWriter.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToXStream.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/JmsQueueListener.java
Log:
Added initial Smooks integration code. SmooksTransformer implemented as an ActionProcessor
Modified: labs/jbossesb/trunk/product/core/listeners/build.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/build.xml 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/build.xml 2006-09-22 16:40:48 UTC (rev 6374)
@@ -15,7 +15,7 @@
</condition>
<path id="org.jboss.esb.listeners.base.classpath">
- <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="activation.jar jbossall-client.jar log4j.jar mail.jar xstream-1.1.3.jar"/>
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="activation.jar jbossall-client.jar log4j.jar mail.jar xstream-1.1.3.jar milyn*.jar"/>
</path>
<path id="org.jboss.esb.listeners.default.classpath">
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FileCopier.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FileCopier.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FileCopier.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -32,6 +32,7 @@
import java.util.List;
import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.helpers.*;
import org.jboss.soa.esb.listeners.DirectoryPoller.WorkingFile;
@@ -64,6 +65,12 @@
private File outputDir;
private String copyToSuffix;
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
public FileCopier(String actionName, List<KeyValuePair> properties) throws URISyntaxException {
String outputDirParam = KeyValuePair.getValue(PARMS_OUTDIR, properties);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/JMSRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/JMSRouter.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/JMSRouter.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -78,8 +78,8 @@
* @param actionName Action name.
* @param properties Action properties.
* @throws ConfigurationException Queue name not configured.
- * @throws JMSException
- * @throws NamingException
+ * @throws JMSException Unable to configure JMS destination.
+ * @throws NamingException Unable to configure JMS destination.
*/
public JMSRouter(String actionName, List<KeyValuePair> properties) throws ConfigurationException, NamingException, JMSException {
this.properties = properties;
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToFileWriter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToFileWriter.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToFileWriter.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -74,6 +74,12 @@
private String ext;
private String encoding;
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
public ObjectToFileWriter(String actionName, List<KeyValuePair> properties) throws ConfigurationException {
String fileName = KeyValuePair.getValue(FILE_NAME, properties);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToXStream.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToXStream.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ObjectToXStream.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -25,6 +25,7 @@
import java.io.Serializable;
import java.util.List;
+import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.actions.ActionProcessor;
import org.jboss.soa.esb.helpers.KeyValuePair;
@@ -42,6 +43,7 @@
* <property name="class-alias" value="Customer" /> <!-- Class alias used in call to <a href="http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html">XStream.alias(String, Class)</a> prior to serialisation. -->
* <property name="exclude-package" value="false" /> <!-- Default "true". Not applicable if a "class-alias" is specified. -->
* </Action>
+ * </pre>
* <p/>
* The XML root element is either set from the "class-alias" property or the classes full name. In the later case, the class package is
* excluded unless "exclude-package" is set to "false"/"no".
@@ -54,6 +56,12 @@
private String classAlias;
private boolean excludePackage;
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
public ObjectToXStream(String actionName, List<KeyValuePair> properties) {
classAlias = KeyValuePair.getValue("class-alias", properties);
excludePackage = KeyValuePair.getBooleanValue("exclude-package", properties, true);
Deleted: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformActionHandler.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformActionHandler.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformActionHandler.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY 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 along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.actions;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.jboss.soa.esb.helpers.KeyValuePair;
-
-/**
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- * @since Version 4.0
- */
-
-public class SmooksTransformActionHandler implements ActionProcessor {
-
- public SmooksTransformActionHandler(String name, List<KeyValuePair> properties) {
- System.out.println("Instantiate action handler: " + name);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
- */
- public Object process(Object message) {
- System.out.println("processAction: " + message);
- return message;
- }
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
- */
- public Serializable getOkNotification(Object message) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
- */
- public Serializable getErrorNotification(Object message) {
- return null;
- }
-}
Added: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -0,0 +1,175 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.actions;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Serializable;
+import java.util.List;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.milyn.SmooksStandalone;
+
+/**
+ * Smooks Transformer.
+ * <p/>
+ * This processor hooks the <a href="http://milyn.codehaus.org/Smooks">Milyn Smooks</a>
+ * XML Transformation/Processing Engine into a message processing pipeline to support
+ * XML message transformations.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Order_Xml-FROM_Acme-TO_AcmePartner" processor="SmooksTransformer">
+ * <property name="message-type" value="Order" /> <!-- REQUIRED. -->
+ * <property name="message-from" value="Acme" /> <!-- REQUIRED. -->
+ * <property name="message-to" value="AcmePartner" /> <!-- REQUIRED. -->
+ * <property name="message-encoding" value="UTF-8" /> <!-- OPTIONAL. Default "UTF-8" -->
+ * </Action>
+ * </pre>
+ * Eventually, all the message properties defined on the action will come from the message metadata. This will
+ * happen once we have a proper "normalized" message format with message headers etc.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+
+public class SmooksTransformer implements ActionProcessor {
+
+ private static final String SMOOKS_CDR_LST = "smooks-cdr.lst";
+ private static SmooksStandalone smooks;
+ private String messageType;
+ private String messageFrom;
+ private String messageTo;
+ private String messageEnc;
+ private String messageUseragent;
+ private String cpPrefix;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public SmooksTransformer(String name, List<KeyValuePair> properties) throws ConfigurationException {
+ messageType = KeyValuePair.getValue("message-type", properties);
+ if(messageType == null || messageType.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-type' not specified.");
+ }
+ messageFrom = KeyValuePair.getValue("message-from", properties);
+ if(messageFrom == null || messageFrom.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-from' not specified.");
+ }
+ messageTo = KeyValuePair.getValue("message-to", properties);
+ if(messageTo == null || messageTo.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-to' not specified.");
+ }
+ messageEnc = KeyValuePair.getValue("message-encoding", properties, "UTF-8");
+
+ // The "cpPrefix" property is "private" and only here in order to make unit testing easier.
+ // It allows us to force a "bad" config location for the smooks-cdr.lst file....
+ cpPrefix = KeyValuePair.getValue("smooks-cdr.list-classpath-prefix", properties, "/");
+ if(!cpPrefix.startsWith("/")) {
+ cpPrefix = "/" + cpPrefix;
+ }
+
+ initSmooks();
+
+ // In the context of the ESB, the Smooks useragent will be defined by the message "type", where it's
+ // coming "from" and where it's going "to"...
+ messageUseragent = messageType + "-" + messageFrom + "-" + messageTo;
+ // Register the message metadata as "profiles" within the Smooks context. These profiles ("type",
+ // "from" and "to") should expand out inside Smooks based on subprofiles that are
+ // statically configured against these profiles in the device-profiles.xml file. This is a bit
+ // of a hack but is fine for now just to get the ball rolling...
+ smooks.registerUseragent(messageUseragent, new String[] {"type:" + messageType, "from:" + messageFrom, "to:" + messageTo});
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Object process(Object message) {
+
+ // TODO: add the actual Smooks calling code
+
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Object message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Object message) {
+ return null;
+ }
+
+ /**
+ * Initialise the static SmooksStandalone instance.
+ * <p/>
+ * We may need to write a Smooks Container implementation specifically for JBossESB's needs. SmooksStandalone is
+ * fine for a start though.
+ * @throws ConfigurationException Failed to load Smooks configurations.
+ */
+ protected void initSmooks() throws ConfigurationException {
+ synchronized (SmooksTransformer.class) {
+ if(smooks == null) {
+ InputStream configListStream = getClass().getResourceAsStream(cpPrefix + SMOOKS_CDR_LST);
+
+ if(configListStream == null) {
+ throw new ConfigurationException("Failed to locate Smooks configuration list file [" + SMOOKS_CDR_LST + "]. This file must be located at " + cpPrefix + " relative to the root of the classpath.");
+ }
+
+ // TODO: There's a potential issue here if to SmooksTransformer action configs specify and require
+ // different encodings because they're all sharing the same static SmooksStandalone instance!!
+ // This should eventually be solveable by creating a proper Smooks container impl for the ESB.
+ smooks = new SmooksStandalone(messageEnc);
+
+ try {
+ BufferedReader configReader = new BufferedReader(new InputStreamReader(configListStream));
+ smooks.getContext().getStore().load(configReader);
+ } catch (Exception e) {
+ throw new ConfigurationException("Smooks configuration load failed.", e);
+ }
+ }
+ }
+ }
+
+ /**
+ * Reset the transformer.
+ * <p/>
+ * Clears the internal static smooks instance.
+ */
+ public void reset() {
+ synchronized (SmooksTransformer.class) {
+ smooks = null;
+ }
+ }
+}
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/JmsQueueListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/JmsQueueListener.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/JmsQueueListener.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -26,7 +26,6 @@
import javax.jms.*;
import org.jboss.soa.esb.actions.ActionDefinitionFactory;
-import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.actions.ActionProcessor;
import org.jboss.soa.esb.helpers.*;
Added: labs/jbossesb/trunk/product/core/listeners/tests/src/device-profile.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/device-profile.xml 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/device-profile.xml 2006-09-22 16:40:48 UTC (rev 6374)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE device-profiles PUBLIC "-//MILYN//DTD TINAK 1.0//EN" "http://www.milyn.org/dtd/device-profile-1.0.dtd">
+
+<device-profiles>
+ <device-profile name="type:Acme-Order-XML" list="profile1,profile2"/>
+ <device-profile name="from:Acme" list="profile23,profile24"/>
+ <device-profile name="to:AcmePartner" list="profile55,profile56"/>
+
+ <device-profile name="profile1" list="A"/>
+ <device-profile name="profile2" list="B"/>
+ <device-profile name="profile23" list="C"/>
+ <device-profile name="profile24" list="D"/>
+ <device-profile name="profile55" list="E"/>
+ <device-profile name="profile56" list="E"/>
+</device-profiles>
Deleted: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformAction-Config-01.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformAction-Config-01.xml 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformAction-Config-01.xml 2006-09-22 16:40:48 UTC (rev 6374)
@@ -1,35 +0,0 @@
-<EsbConfig
- command-queue-class="org.jboss.soa.esb.command.InMemoryCommandQueue"
- command-queue-name="test-queue"
->
-
- <ListenerConfig
- listenerClass="org.jboss.soa.esb.util.MockPoller"
- actions="X12N837-to-HL7V3, Process-HL7V3-Claim, HL7V3-to-X12N837, Route-to-Claims"
- maxThreads="1"
- >
- </ListenerConfig>
-
- <Actions>
- <!--
- Under the new architecture I think these will be equivalent to "Contracts Definitions"?
- -->
- <Action name="X12N837-to-HL7V3" processor="Smooks" />
- <Action name="Process-HL7V3-Claim" processor="ClaimsProcessor" />
- <Action name="HL7V3-to-X12N837" processor="Smooks" />
- <Action name="Route-to-Claims" processor="SocketRouter">
- <property name="address" value="xxxxx" />
- </Action>
-
- <ProcessorAliases>
- <!--
- Under the new architecture I think these will be equivalent to "Services"? The alias "name" being like the Service URN.
- -->
- <Alias name="Smooks" class="org.jboss.soa.esb.actions.SmooksTransformActionProcessor" />
- <Alias name="ClaimsProcessor" class="com.acme.health.ClaimsProcessor" />
- <Alias name="JmsRouter" class="org.jboss.soa.esb.actions.JmsRouter" />
- <Alias name="SocketRouter" class="org.jboss.soa.esb.actions.SocketRouter" />
- </ProcessorAliases>
- </Actions>
-
-</EsbConfig>
Deleted: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionFuncTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionFuncTest.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionFuncTest.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -1,18 +0,0 @@
-package org.jboss.soa.esb.actions;
-
-import org.jboss.soa.esb.helpers.DomElement;
-import org.jboss.soa.esb.listeners.GpListener;
-import org.jboss.soa.esb.util.ListenersManagerExecThread;
-
-import junit.framework.TestCase;
-
-public class SmooksTransformActionFuncTest extends TestCase {
-
- public void test() throws Exception {
- DomElement config = DomElement.fromInputStream(getClass().getResourceAsStream("SmooksTransformAction-Config-01.xml"));
- GpListener listenerManager = new GpListener(config);
- ListenersManagerExecThread execThread = new ListenersManagerExecThread(listenerManager);
-
- // TODO: ... Work in progress...
- }
-}
Deleted: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionUnitTest.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformActionUnitTest.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -1,10 +0,0 @@
-package org.jboss.soa.esb.actions;
-
-import junit.framework.TestCase;
-
-public class SmooksTransformActionUnitTest extends TestCase {
-
- public void test() {
- // TODO: ... Work in progress...
- }
-}
Added: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java 2006-09-22 16:40:48 UTC (rev 6374)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+import junit.framework.TestCase;
+
+/**
+ * SmooksTransformer unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class SmooksTransformerUnitTest extends TestCase {
+
+ public void test_bad_config() {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ // Should get exceptions where required configs are missing...
+ assertConfigException(properties, "Action configuration 'message-type' not specified");
+ properties.add(new KeyValuePair("message-type", "111"));
+ assertConfigException(properties, "Action configuration 'message-from' not specified");
+ properties.add(new KeyValuePair("message-from", "AAA"));
+ assertConfigException(properties, "Action configuration 'message-to' not specified");
+ properties.add(new KeyValuePair("message-to", "BBB"));
+
+ // Should get an exception where the smooks-cdr.lst file is missing....
+ properties.add(new KeyValuePair("smooks-cdr.list-classpath-prefix", "/some/bad/cp/location/"));
+ assertConfigException(properties, "Failed to locate Smooks configuration list file [smooks-cdr.lst]. This file must be located at");
+ }
+
+ public void test_trans() throws ConfigurationException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ // Set the message properties in order to trigger the appropriate transformations
+ // on the message...
+ properties.add(new KeyValuePair("message-type", "Acme-Order-XML"));
+ properties.add(new KeyValuePair("message-from", "Acme"));
+ properties.add(new KeyValuePair("message-to", "AcmePartner"));
+
+ // The smooks-cdr.lst and device-profile.xml files are located in the root of the
+ // test src folder...
+ SmooksTransformer transformer = new SmooksTransformer("trans", properties);
+
+ // TODO: Add the transformation....
+ }
+
+ private void assertConfigException(List<KeyValuePair> properties, String expectedException) {
+ try {
+ new SmooksTransformer("trans", properties);
+ fail("Expected ConfigurationException: [" + expectedException + "...]");
+ } catch(ConfigurationException e) {
+ assertTrue("Expected exception message to start with [" + expectedException + "]. Was [" + e.getMessage() + "]", e.getMessage().startsWith(expectedException));
+ }
+ }
+}
Added: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl 2006-09-22 16:40:48 UTC (rev 6374)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
+
+<smooks-resource-list default-selector='b' default-useragent='yyy' default-path='y.txt' default-namespace='http://milyn.codehaus.org/smooks-default'>
+
+ <!-- Overriding the defaults -->
+ <smooks-resource selector='a' useragent='xxx' path='x.txt' namespace='http://milyn.codehaus.org/smooks'/>
+
+ <!-- Inheriting the defaults -->
+ <smooks-resource>
+ <param name='param1'>param1Val</param>
+ <param name='param2'>true</param>
+ <param name='param3'>false</param>
+ </smooks-resource>
+</smooks-resource-list>
+
Added: labs/jbossesb/trunk/product/core/listeners/tests/src/smooks-cdr.lst
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/smooks-cdr.lst 2006-09-22 16:34:47 UTC (rev 6373)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/smooks-cdr.lst 2006-09-22 16:40:48 UTC (rev 6374)
@@ -0,0 +1 @@
+/org/jboss/soa/esb/actions/smooks-test.cdrl
\ No newline at end of file
Added: labs/jbossesb/trunk/product/lib/ext/commons-lang-2.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/commons-lang-2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/dtdparser-1.21.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/dtdparser-1.21.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-commons-0.7.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-commons-0.7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.7.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.7.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-misc-0.1.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-misc-0.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-templating-0.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-templating-0.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/milyn-tinak-0.7.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-tinak-0.7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/xercesImpl-2.7.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/xercesImpl-2.7.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/trunk/product/lib/ext/xml-apis-1.3.02.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/xml-apis-1.3.02.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list