Author: ningjiang
Date: Wed Mar  2 03:49:50 2011
New Revision: 1076099

URL: http://svn.apache.org/viewvc?rev=1076099&view=rev
Log:
CAMEL-3741 Added new PgmCall option to the Jt400 component

Added:
    
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
   (with props)
    
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
   (with props)
    
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
   (with props)
    
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
   (with props)
Modified:
    
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
    
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400ComponentTest.java

Modified: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java?rev=1076099&r1=1076098&r2=1076099&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
 (original)
+++ 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
 Wed Mar  2 03:49:50 2011
@@ -25,11 +25,12 @@ import org.apache.camel.impl.DefaultComp
 /**
  * {@link Component} to provide integration with AS/400 objects. 
  * 
- * Current implementation only supports working with data queues (*DTAQ)
+ * Current implementation supports working with data queues (*DTAQ) and 
Program calls (*PGM)
  */
 public class Jt400Component extends DefaultComponent {
 
     private static final String DATA_QUEUE = "DTAQ";
+    private static final String PGM = "PGM";
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> properties) throws Exception {
@@ -38,6 +39,11 @@ public class Jt400Component extends Defa
         if (DATA_QUEUE.equals(type)) {
             return new Jt400DataQueueEndpoint(uri, this);
         }
+        
+        if (PGM.equals(type)) {
+            return new Jt400PgmEndpoint(uri, this);
+        }
+        
         throw new CamelException(String.format("AS/400 Object type %s is not 
supported", type));
     }
 }

Added: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java?rev=1076099&view=auto
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
 (added)
+++ 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
 Wed Mar  2 03:49:50 2011
@@ -0,0 +1,123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.Map;
+
+import javax.naming.OperationNotSupportedException;
+
+import com.ibm.as400.access.AS400;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelException;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultEndpoint;
+
+public class Jt400PgmEndpoint extends DefaultEndpoint {
+
+    private String programToExecute;
+
+    private Integer[] outputFieldsIdxArray;
+    private Integer[] outputFieldsLengthArray;
+
+    private AS400 iSeries;
+
+    /**
+     * Creates a new AS/400 PGM CALL endpoint
+     */
+    protected Jt400PgmEndpoint(String endpointUri, Jt400Component component) 
throws CamelException {
+        super(endpointUri, component);
+        try {
+            URI uri = new URI(endpointUri);
+            String[] credentials = uri.getUserInfo().split(":");
+            iSeries = new AS400(uri.getHost(), credentials[0], credentials[1]);
+            programToExecute = uri.getPath();
+        } catch (URISyntaxException e) {
+            throw new CamelException("Unable to parse URI for " + endpointUri, 
e);
+        }
+    }
+
+    public Jt400PgmEndpoint(String endpointUri, String programToExecute, 
Map<String, Object> parameters,
+                            CamelContext camelContext) {
+        super(endpointUri, camelContext);
+        this.programToExecute = programToExecute;
+    }
+
+    public Producer createProducer() throws Exception {
+        return new Jt400PgmProducer(this);
+    }
+
+    public Consumer createConsumer(Processor processor) throws Exception {
+        throw new OperationNotSupportedException();
+    }
+
+    public boolean isSingleton() {
+        return false;
+    }
+
+    @Override
+    public void stop() throws Exception {
+        super.stop();
+        if (iSeries != null) {
+            iSeries.disconnectAllServices();
+        }
+    }
+
+    public boolean isFieldIdxForOuput(int idx) {
+        return Arrays.binarySearch(outputFieldsIdxArray, idx) >= 0;
+    }
+
+    public int getOutputFieldLength(int idx) {
+        return outputFieldsLengthArray[idx];
+    }
+
+    // getters and setters
+    public String getProgramToExecute() {
+        return programToExecute;
+    }
+
+    public AS400 getiSeries() {
+        return iSeries;
+    }
+
+    public void setOutputFieldsIdx(String outputFieldsIdx) {
+        if (outputFieldsIdx != null) {
+            String[] outputArray = outputFieldsIdx.split(",");
+            outputFieldsIdxArray = new Integer[outputArray.length];
+            for (int i = 0; i < outputArray.length; i++) {
+                String str = outputArray[i];
+                outputFieldsIdxArray[i] = Integer.parseInt(str);
+            }
+        }
+    }
+
+    public void setFieldsLength(String fieldsLength) {
+        if (fieldsLength != null) {
+            String[] outputArray = fieldsLength.split(",");
+            outputFieldsLengthArray = new Integer[outputArray.length];
+            for (int i = 0; i < outputArray.length; i++) {
+                String str = outputArray[i];
+                outputFieldsLengthArray[i] = Integer.parseInt(str);
+            }
+        }
+    }
+
+}

Propchange: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmEndpoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java?rev=1076099&view=auto
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
 (added)
+++ 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
 Wed Mar  2 03:49:50 2011
@@ -0,0 +1,160 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.ibm.as400.access.AS400;
+import com.ibm.as400.access.AS400Message;
+import com.ibm.as400.access.AS400Text;
+import com.ibm.as400.access.ProgramCall;
+import com.ibm.as400.access.ProgramParameter;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.InvalidPayloadException;
+import org.apache.camel.impl.DefaultProducer;
+import org.apache.camel.util.ExchangeHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Jt400PgmProducer extends DefaultProducer {
+
+    private static final Logger LOG =  
LoggerFactory.getLogger(Jt400PgmProducer.class);
+
+    public Jt400PgmProducer(Jt400PgmEndpoint endpoint) {
+        super(endpoint);
+    }
+
+    private Jt400PgmEndpoint getISeriesEndpoint() {
+        return (Jt400PgmEndpoint)super.getEndpoint();
+    }
+
+    public void process(Exchange exchange) throws Exception {
+
+        AS400 iSeries = getISeriesEndpoint().getiSeries();
+
+        String commandStr = getISeriesEndpoint().getProgramToExecute();
+        ProgramParameter[] parameterList = getParameterList(exchange);
+
+        ProgramCall pgmCall = new ProgramCall(iSeries);
+        pgmCall.setProgram(commandStr);
+        pgmCall.setParameterList(parameterList);
+
+        if (LOG.isDebugEnabled()) {
+            LOG.trace("Starting to call PGM '" + commandStr + "' in host '" + 
iSeries.getSystemName()
+                      + "' authenticatin with the user '" + 
iSeries.getUserId() + "'");
+        }
+
+        boolean result = pgmCall.run();
+
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Executed PGM '" + commandStr + "' in host '" + 
iSeries.getSystemName() + "'. Success?"
+                     + result);
+        }
+
+        if (result) {
+            handlePGMOutput(exchange, pgmCall, parameterList);
+        } else {
+            // TODO Do we need to throw an exception
+            handleMessages(pgmCall);
+        }
+
+    }
+
+    private ProgramParameter[] getParameterList(Exchange exchange) throws 
InvalidPayloadException {
+
+        Object body = ExchangeHelper.getMandatoryInBody(exchange);
+
+        String[] params = (String[])body;
+
+        ProgramParameter[] parameterList = new ProgramParameter[params.length];
+        for (int i = 0; i < params.length; i++) {
+            Object param = params[i];
+
+            boolean input = param != null;
+            boolean output = getISeriesEndpoint().isFieldIdxForOuput(i);
+
+            byte[] inputData = null;
+            int outputLength = -1;
+            if (input) {
+                String value = (String)param;
+                inputData = new AS400Text(value.length()).toBytes(value);
+            }
+            if (output) {
+                outputLength = getISeriesEndpoint().getOutputFieldLength(i);
+            }
+
+            if (input && output) {
+                parameterList[i] = new ProgramParameter(inputData, 
outputLength);
+            }
+            if (input) {
+                parameterList[i] = new ProgramParameter(inputData);
+            }
+            if (output) {
+                parameterList[i] = new ProgramParameter(outputLength);
+            }
+        }
+
+        return parameterList;
+    }
+
+    private void handlePGMOutput(Exchange exchange, ProgramCall pgmCall, 
ProgramParameter[] inputs)
+        throws InvalidPayloadException {
+
+        Object bodyIN = ExchangeHelper.getMandatoryInBody(exchange);
+        String[] params = (String[])bodyIN;
+
+        List<String> results = new ArrayList<String>();
+
+        int i = 1;
+        for (ProgramParameter pgmParam : pgmCall.getParameterList()) {
+            byte[] output = pgmParam.getOutputData();
+
+            String value = params[i - 1];
+
+            if (output != null) {
+                int length = pgmParam.getOutputDataLength();
+                length = pgmParam.getOutputDataLength();
+
+                AS400Text text = new AS400Text(length);
+                value = (String)text.toObject(output);
+            }
+
+            results.add(value);
+            i++;
+        }
+
+        String[] bodyOUT = new String[results.size()];
+        bodyOUT = results.toArray(bodyOUT);
+
+        exchange.getOut().setBody(bodyOUT);
+    }
+
+    private void handleMessages(ProgramCall pgmCall) throws Exception {
+        // Show messages.
+        if (LOG.isDebugEnabled()) {
+            AS400Message[] messageList = pgmCall.getMessageList();
+            for (int i = 0; i < messageList.length; ++i) {
+                // Load additional message information.
+                messageList[i].load();
+                // Show each message.
+                LOG.debug("The message list [" + i + "]" + 
messageList[i].getText() + ", help info: " + messageList[i].getHelp());
+            }
+        }
+    }
+}

Propchange: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400PgmProducer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400ComponentTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400ComponentTest.java?rev=1076099&r1=1076098&r2=1076099&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400ComponentTest.java
 (original)
+++ 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400ComponentTest.java
 Wed Mar  2 03:49:50 2011
@@ -38,10 +38,10 @@ public class Jt400ComponentTest extends 
     }
 
     /**
-     * Test creation of a {@link Jt400DataQueueEndpoint}
+     * Test creation of a {@link Jt400DataQueueEndpoint} for Datq
      */
     @Test
-    public void testCreateEndpoint() throws Exception {
+    public void testCreateDatqEndpoint() throws Exception {
         Endpoint endpoint = component
             
.createEndpoint("jt400://user:password@host/qsys.lib/library.lib/queue.dtaq",
                             
"/user:password@host/qsys.lib/library.lib/queue.dtaq", new HashMap());
@@ -50,13 +50,25 @@ public class Jt400ComponentTest extends 
     }
 
     /**
+     * Test creation of a {@link Jt400DataQueueEndpoint} for pgm calls
+     */
+    @Test
+    public void testCreatePgmEndpoint() throws Exception {
+        Endpoint endpoint = component
+            
.createEndpoint("jt400://user:password@host/qsys.lib/library.lib/queue.pgm",
+                            
"/user:password@host/qsys.lib/library.lib/queue.pgm", new HashMap());
+        assertNotNull(endpoint);
+        assertTrue(endpoint instanceof Jt400PgmEndpoint);
+    }
+
+    /**
      * Test exception when trying to access any other object type on AS/400
      */
     @Test
     public void testCreateEndpointForOtherObjectType() throws Exception {
         try {
-            
component.createEndpoint("jt400://user:password@host/qsys.lib/library.lib/program.pgm",
-                                     
"/user:password@host/qsys.lib/library.lib/program.pgm", new HashMap());
+            
component.createEndpoint("jt400://user:password@host/qsys.lib/library.lib/program.xxx",
+                                     
"/user:password@host/qsys.lib/library.lib/program.xxx", new HashMap());
             fail("Exception should been thrown when trying to create an 
endpoint for an unsupported object type");
         } catch (CamelException e) {
             // this is just what we expected

Added: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java?rev=1076099&view=auto
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
 (added)
+++ 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
 Wed Mar  2 03:49:50 2011
@@ -0,0 +1,58 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400;
+
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test case for {@link Jt400DataQueueEndpoint}
+ */
+public class Jt400PgmEndpointTest extends CamelTestSupport {
+
+    private static final String USER = "USER";
+    private static final String HOST = "host";
+    private static final String PASSWORD = "password";
+    private static final String PGM = "/qsys.lib/library.lib/prog.pgm";
+
+    private Jt400PgmEndpoint endpoint;
+
+    @Override
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        endpoint = (Jt400PgmEndpoint)resolveMandatoryEndpoint("jt400://" + 
USER + ":" + PASSWORD
+                                                              + "@" + HOST + 
PGM + "?outputFieldsIdx=1,2&fieldsLength=10,512,255");
+    }
+
+    /**
+     * Check that the AS/400 connection is correctly configured for the URL
+     */
+    @Test
+    public void testSystemConfiguration() {
+        assertEquals(USER, endpoint.getiSeries().getUserId());
+        assertEquals(HOST, endpoint.getiSeries().getSystemName());
+        assertEquals(PGM, endpoint.getProgramToExecute());
+        assertEquals(10, endpoint.getOutputFieldLength(0));
+        assertEquals(512, endpoint.getOutputFieldLength(1));
+        assertEquals(255, endpoint.getOutputFieldLength(2));
+        assertEquals(false, endpoint.isFieldIdxForOuput(0));
+        assertEquals(true, endpoint.isFieldIdxForOuput(1));
+        assertEquals(true, endpoint.isFieldIdxForOuput(2));
+    }
+}

Propchange: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmEndpointTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java?rev=1076099&view=auto
==============================================================================
--- 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
 (added)
+++ 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
 Wed Mar  2 03:49:50 2011
@@ -0,0 +1,91 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jt400;
+
+import java.util.Arrays;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.ExpressionClause;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+/**
+ * Test case for routes that contain <code>jt400:</code> endpoints This test
+ * case does nothing by default -- you can use it to test integration when 
there
+ * is a real AS/400 system available by filling in correct values for
+ * {@link #USER}, {@link #PASSWORD}, {@link #SYSTEM}, {@link #LIBRARY} and
+ * {@link #QUEUE}
+ */
+public class Jt400PgmRouteTest extends CamelTestSupport {
+
+    // fill in correct values for all constants to test with a real AS/400
+    // system
+    private static final String USER = "grupo";
+    private static final String PASSWORD = "atwork";
+    private static final String SYSTEM = null;
+    private static final String LIBRARY = "library";
+    private static final String PGM = "program";
+    private static final String FIELDS_LENGTH = "1,512,2";
+    private static final String OUTPUT_FIELDS = "1,2";
+
+    @Test
+    public void testBasicTest() throws Exception {
+        if (SYSTEM != null) {
+            final MockEndpoint endpoint = getMockEndpoint("mock:a");
+            endpoint.setExpectedMessageCount(1);
+            Runnable runnable = new Runnable() {
+
+                public void run() {
+                    Exchange exchange = endpoint.getReceivedExchanges().get(0);
+                    char[] secondParameter = new char[512];
+                    Arrays.fill(secondParameter, ' ');
+                    String[] expectedBody = new String[] {"1234", new 
String(secondParameter), "01"};
+                    Object actualBody = exchange.getIn().getBody();
+
+                    assertNotNull(actualBody);
+                    assertTrue(actualBody.getClass().isArray());
+
+                    String[] actualBodyTyped = (String[])actualBody;
+                    for (int i = 0; i < expectedBody.length; i++) {
+                        assertEquals(expectedBody[i], actualBodyTyped[i]);
+                    }
+                }
+            };
+            endpoint.expects(runnable);
+            sendBody("direct:a", new String[] {"1234", "", ""});
+            endpoint.assertIsSatisfied();
+        }
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+
+            @Override
+            public void configure() throws Exception {
+                if (SYSTEM != null) {
+                    String uri = String
+                        
.format("jt400://%s:%s@%s/QSYS.LIB/%s.LIB/%s.pgm?outputFieldsIdx=%s&fieldsLength=%s",
+                                USER, PASSWORD, SYSTEM, LIBRARY, PGM, 
OUTPUT_FIELDS, FIELDS_LENGTH);
+                    from("direct:a").to(uri).to("mock:a");
+                }
+            }
+        };
+    }
+}

Propchange: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-jt400/src/test/java/org/apache/camel/component/jt400/Jt400PgmRouteTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date


Reply via email to