[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