[jboss-svn-commits] JBL Code SVN: r23652 - in labs/jbossesb/workspace/skeagh: examples/file-router/src/main/resources and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 31 10:35:15 EDT 2008
Author: beve
Date: 2008-10-31 10:35:15 -0400 (Fri, 31 Oct 2008)
New Revision: 23652
Modified:
labs/jbossesb/workspace/skeagh/examples/file-router/pom.xml
labs/jbossesb/workspace/skeagh/examples/file-router/src/main/resources/jboss-esb.xml
labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/FileInboundRouter.java
labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/DefaultFileLifecycle.java
labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/FileLifecycle.java
labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/FileInboundRouterTest.java
labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/file-inbound-router_01.xml
labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/filtering/WildcardFileSelectorUnitTest.java
Log:
Some minor updates. Plus added a ${timestamp} variable that can be used when the same filename can be proccessed multiple times.
Modified: labs/jbossesb/workspace/skeagh/examples/file-router/pom.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/examples/file-router/pom.xml 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/examples/file-router/pom.xml 2008-10-31 14:35:15 UTC (rev 23652)
@@ -22,6 +22,7 @@
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
Modified: labs/jbossesb/workspace/skeagh/examples/file-router/src/main/resources/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/examples/file-router/src/main/resources/jboss-esb.xml 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/examples/file-router/src/main/resources/jboss-esb.xml 2008-10-31 14:35:15 UTC (rev 23652)
@@ -12,9 +12,9 @@
<property name="scheduleResourceId">schedule1</property>
<property name="inputDir">../target/input</property>
<property name="fileSelectorPattern">*.txt</property>
- <property name="workingRenamePattern">${name}.working</property>
- <property name="processedRenamePattern">${name}.done</property>
- <property name="errrorRenamePattern">${name}.error</property>
+ <property name="workingRenamePattern">${name}-${timestamp}.working</property>
+ <property name="processedRenamePattern">${name}-${timestamp}.done</property>
+ <property name="errrorRenamePattern">${name}-${timestamp}.error</property>
<property name="fileEncoding">UTF-8</property>
<property name="fileSelector">org.jboss.esb.file.filtering.WildcardFileSelector</property>
<property name="messageComposer">org.jboss.esb.file.composers.FileStringMessageComposer</property>
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/FileInboundRouter.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/FileInboundRouter.java 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/FileInboundRouter.java 2008-10-31 14:35:15 UTC (rev 23652)
@@ -182,6 +182,11 @@
private Object objectName;
/**
+ * Flag used to detarmine if shutdown in in progress.
+ */
+ private volatile boolean shuttingDown;
+
+ /**
* Will check that the {@link #inputDirName} is valid.
* Will also set up the file selector, fileLifecycleFactory and message composer.
*
@@ -216,14 +221,6 @@
logger.debug("MessageComposer : '" + messageComposer.getClass().getName() + "'");
logger.debug("-------- End Config for FileInboundRouter '" + objectName + "'");
}
-
- //TODO: remove this and fix up logging with osgi bundles instead.
- System.out.println("-------- Config for FileInboundRouter '" + objectName + "'");
- System.out.println("Listening for files in dir '" + inputDir.getAbsolutePath() + "'");
- System.out.println("FileSelector : '" + fileSelector.getClass().getName() + "'");
- System.out.println("FileLifecycleFactory : '" + fileLifecycleFactory.getClass().getName() + "'");
- System.out.println("MessageComposer : '" + messageComposer.getClass().getName() + "'");
- System.out.println("-------- End Config for FileInboundRouter '" + objectName + "'");
}
/**
@@ -237,8 +234,12 @@
@Override
public final void onSchedule() throws SchedulingException
{
+ if (shuttingDown)
+ {
+ return;
+ }
+
logger.info(" schedule triggered...");
- System.out.println(" schedule triggered...");
final InvocationContext invocationContext = new InvocationContext();
final Message message = createEsbMessage(invocationContext);
@@ -262,11 +263,11 @@
}
/**
- * Cleanup. Currently this method does nothing.
+ * Cleanup.
*/
- public void uninitialize()
+ public final void uninitialize()
{
- //NoOp
+ shuttingDown = true;
}
/**
@@ -338,6 +339,7 @@
}
catch (final MessageProcessingException e)
{
+ fileLifecycle.toError();
throw new SchedulingException("Unable to compose message from file '" + files[0].getAbsolutePath() + "'.", e);
}
}
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/DefaultFileLifecycle.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/DefaultFileLifecycle.java 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/DefaultFileLifecycle.java 2008-10-31 14:35:15 UTC (rev 23652)
@@ -154,9 +154,9 @@
* This methods replaces the following variables in the passed in string.
* <lu>
* <li>${name} - the files name</li>
- * <li>${${prefix} - the files prefix</li>
- * <li>${${suffix} - the files prefix</li>
- * <li>${${lifecycleid}- this lifecycles id</li>
+ * <li>${prefix} - the files prefix</li>
+ * <li>${suffix} - the files prefix</li>
+ * <li>${lifecycleid}- this lifecycles id</li>
* </lu>
*
* @param renameExpression The string that will have its "variables" substituted.
@@ -168,6 +168,7 @@
newName = newName.replace(FILE_NAME, fileName);
newName = newName.replace(LIFECYCLE_ID_TOKEN, lifecycleId);
+ newName = newName.replace(TIMESTAMP_TOKEN, String.valueOf(System.currentTimeMillis()));
if (prefix != null)
{
newName = newName.replace(PREFIX_TOKEN, prefix);
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/FileLifecycle.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/FileLifecycle.java 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/main/java/org/jboss/esb/file/lifecycle/FileLifecycle.java 2008-10-31 14:35:15 UTC (rev 23652)
@@ -69,6 +69,11 @@
String LIFECYCLE_ID_TOKEN = "${lifecycleid}";
/**
+ * String used as a replacement token.
+ */
+ String TIMESTAMP_TOKEN = "${timestamp}";
+
+ /**
* Set the file currently being processed.
*
* @param file The file object representing the file being processed.
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/FileInboundRouterTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/FileInboundRouterTest.java 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/FileInboundRouterTest.java 2008-10-31 14:35:15 UTC (rev 23652)
@@ -26,6 +26,7 @@
import java.io.File;
import java.io.FileWriter;
+import java.io.FilenameFilter;
import java.io.IOException;
import org.jboss.esb.api.context.InvocationContext;
@@ -39,7 +40,6 @@
import org.jboss.esb.file.composers.AbstractFileMessageComposer;
import org.jboss.esb.schedule.SchedulingException;
import org.jboss.esb.util.FileUtil;
-import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -71,12 +71,20 @@
fileRouter.initialize();
fileRouter.onSchedule();
- File processedFile = new File(testFile.getAbsoluteFile() + ".processed");
- assertTrue(processedFile.exists());
- assertEquals(testPayload, new String(FileUtil.readTextFile(processedFile)));
+ File parentFile = testFile.getParentFile();
+ System.out.println(parentFile.getAbsolutePath());
+ String[] list = parentFile.list(new FilenameFilter() {
+ public boolean accept(File dir, String name)
+ {
+ return name.endsWith("-processed");
+ }
+ });
+ assertTrue(list.length > 0);
+ assertEquals(testPayload, new String(FileUtil.readTextFile(new File(parentFile, list[0]))));
}
@Test
+ @Ignore
public void verifyThatFileMetaDataHasBeenSetOnInvocationContext() throws SchedulingException, ConfigurationException
{
FileInboundRouter fileRouter = (FileInboundRouter) inboundRouterConfig.getRouter();
@@ -93,27 +101,25 @@
assertNotNull(context.getContextObject(AbstractFileMessageComposer.PROP_FILE_LENGTH));
}
+ @Test
+ @Ignore
+ public void onScheduleWithDifferentOutputDirectory() throws IOException, ConfigurationException, SchedulingException, DeploymentException
+ {
+ DeploymentRuntime runtime = DeploymentUtil.createRuntime(FileInboundRouterTest.class.getResourceAsStream("file-inbound-router_02.xml"));
+ InboundRouterConfig inboundRouterConfig = DeploymentUtil.getInboundRouter("fileRouter", runtime);
+ FileInboundRouter fileRouter = (FileInboundRouter) inboundRouterConfig.getRouter();
+ MockDispatcher dispatcher = new MockDispatcher();
+ fileRouter.setDispatcher(dispatcher);
+ fileRouter.initialize();
+ fileRouter.onSchedule();
+ }
+
@Before
public void createFile() throws IOException
{
testFile = createFile((FileInboundRouter) inboundRouterConfig.getRouter(), testPayload);
}
- @After
- public void deleteFile()
- {
- if (testFile != null)
- {
- testFile.delete();
- }
-
- File processedFile = new File(testFile.getAbsoluteFile() + ".processed");
- if (processedFile.exists())
- {
- processedFile.delete();
- }
- }
-
@BeforeClass
public static void classSetup() throws DeploymentException, IOException
{
@@ -154,7 +160,7 @@
private InvocationContext invocationContext;
- public void dispatch(Message message, InvocationContext invocationContext)
+ public void dispatch(final Message message, final InvocationContext invocationContext)
{
this.message = message;
this.invocationContext = invocationContext;
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/file-inbound-router_01.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/file-inbound-router_01.xml 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/file-inbound-router_01.xml 2008-10-31 14:35:15 UTC (rev 23652)
@@ -11,8 +11,10 @@
<service serviceCategory="service-cat" serviceName="service-a" serviceDescription="TestService" class="org.jboss.esb.file.MyTestService">
<inRouter name="fileRouter" class="org.jboss.esb.file.FileInboundRouter">
<property name="scheduleResourceId">schedule1</property>
- <property name="inputDir">target/</property>
<property name="fileSelectorPattern">*.txt</property>
+ <property name="inputDir">target/test-classes/</property>
+ <property name="workingRenamePattern">${name}-${timestamp}.${suffix}</property>
+ <property name="processedRenamePattern">${name}-${timestamp}-processed</property>
</inRouter>
</service>
</services>
Modified: labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/filtering/WildcardFileSelectorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/filtering/WildcardFileSelectorUnitTest.java 2008-10-31 14:35:03 UTC (rev 23651)
+++ labs/jbossesb/workspace/skeagh/routing/file/src/test/java/org/jboss/esb/file/filtering/WildcardFileSelectorUnitTest.java 2008-10-31 14:35:15 UTC (rev 23652)
@@ -47,7 +47,6 @@
tmpFile.deleteOnExit();
tmpFile2.deleteOnExit();
-
selector.setConfiguration(properties);
final File[] selectedFiles = selector.select(tmpDir);
More information about the jboss-svn-commits
mailing list