Hi JB,
I think I found what the problem was. In the Eclipse Run Configuration, I had
an environment entry for variable:
PATH=/usr/local/bin/:/bin
When I removed this line, it worked right away. Is the instance command
depending on system PATH variable?
Is is possible that a wrong PATH value causes Karaf to enter an infinite wait
condition?
The reason I had this setting is to deal with some problem in OSX when
executing “wget” command from the integration tests.
> On Dec 3, 2015, at 9:01 AM, Jean-Baptiste Onofré <[email protected]> wrote:
>
> Yes, when I execute a command but it's not a big deal (already fixed for
> 4.0.4).
>
> Regards
> JB
>
> On 12/03/2015 02:52 PM, Alex Soto wrote:
>> I am curious, do you this an exception like this in the child instance
>> log file?
>>
>> 2015-12-03 08:48:03,154 | WARN | 8]-nio2-thread-1 | ServerSession
>> | 1 - org.apache.sshd.core - 0.14.0 | Exception caught
>> java.io.IOException: Connection reset by peer
>> at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_45]
>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_45]
>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_45]
>> at sun.nio.ch.IOUtil.read(IOUtil.java:197)[:1.8.0_45]
>> at
>> sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:508)[:1.8.0_45]
>> at
>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276)[:1.8.0_45]
>> at
>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297)[:1.8.0_45]
>> at
>> java.nio.channels.AsynchronousSocketChannel.read(AsynchronousSocketChannel.java:420)[:1.8.0_45]
>> at
>> org.apache.sshd.common.io.nio2.Nio2Session.startReading(Nio2Session.java:170)[1:org.apache.sshd.core:0.14.0]
>> at
>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:135)[1:org.apache.sshd.core:0.14.0]
>> at
>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:120)[1:org.apache.sshd.core:0.14.0]
>> at
>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:32)
>> at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_45]
>> at
>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:30)[1:org.apache.sshd.core:0.14.0]
>> at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)[:1.8.0_45]
>> at sun.nio.ch.Invoker$2.run(Invoker.java:218)[:1.8.0_45]
>> at
>> sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)[:1.8.0_45]
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
>> at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
>>
>>
>>
>>
>>> On Dec 3, 2015, at 8:46 AM, Jean-Baptiste Onofré <[email protected]
>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>
>>> It works also in Karaf: actually, I extended the Karaf itests about
>>> instances with it.
>>>
>>> So, it's probably something in your custom distribution or
>>> environment/code.
>>>
>>> Regards
>>> JB
>>>
>>> On 12/03/2015 02:43 PM, Alex Soto wrote:
>>>> Hi JB,
>>>>
>>>> Yes, it works for Cellar, I can confirm this from a test I did with
>>>> a slightly modified CellarTestSupport. However, if I move this same
>>>> class to my project, then it fails. So, something is different,
>>>> perhaps in the dependencies, that is causing this. I will keep
>>>> researching and report back here any findings.
>>>>
>>>> Thanks for taking the time to help!
>>>>
>>>>> On Dec 3, 2015, at 2:05 AM, Jean-Baptiste Onofré <[email protected]
>>>>> <mailto:[email protected]>
>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>>>
>>>>> Hi Alex,
>>>>>
>>>>> I added an itest in Karaf that does:
>>>>>
>>>>> @Test
>>>>> public void createStartCommand() throws Exception {
>>>>> System.out.println(executeCommand("instance:create itest"));
>>>>> assertContains("itest", executeCommand("instance:list"));
>>>>> System.out.println(executeCommand("instance:start itest"));
>>>>> Thread.sleep(5000);
>>>>> String output = executeCommand("instance:status itest");
>>>>> System.out.println("itest instance status: " + output);
>>>>> assertContains("Started", output);
>>>>> System.out.println(executeCommand("instance:stop itest"));
>>>>> Thread.sleep(5000);
>>>>> output = executeCommand("instance:status itest");
>>>>> System.out.println("itest instance status: " + output);
>>>>> assertContains("Stopped", output);
>>>>> }
>>>>>
>>>>> and it works fine: the itest instance goes in Started instance. I
>>>>> added a sleep just to give time to the instance to start (else we
>>>>> may have Starting during the interval).
>>>>>
>>>>> We are using Pax Exam 4.6.0 for now, I'm upgrading to 4.7.0 to see
>>>>> if there's an impact.
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> On 12/02/2015 06:54 PM, Alex Soto wrote:
>>>>>> Correct.
>>>>>>
>>>>>>> On Dec 2, 2015, at 12:52 PM, Jean-Baptiste Onofré <[email protected]
>>>>>>> <mailto:[email protected]>
>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>>>>>
>>>>>>> You use Karaf 4.0.3 right ?
>>>>>>>
>>>>>>> Let me check in Karaf itest.
>>>>>>>
>>>>>>> Regards
>>>>>>> JB
>>>>>>>
>>>>>>> On 12/02/2015 06:15 PM, Alex Soto wrote:
>>>>>>>> Hi JB,
>>>>>>>>
>>>>>>>> I was able to narrow it down to this line in my @Configuration
>>>>>>>> method:
>>>>>>>>
>>>>>>>> configureConsole().ignoreLocalConsole().ignoreRemoteShell(),
>>>>>>>>
>>>>>>>> With the above option, the root instance never finishes initializing:
>>>>>>>>
>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>> -------------------------------------------------------------
>>>>>>>> 8101 | 1099 | 44444 | Starting | 7354 | root
>>>>>>>> 8102 | 1100 | 44445 | Stopped | 0 | LA1
>>>>>>>>
>>>>>>>>
>>>>>>>> Without it, the root instance initializes successfully, but not the
>>>>>>>> child instance:
>>>>>>>>
>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>> ------------------------------------------------------------
>>>>>>>> 8101 | 1099 | 44444 | Started | 7240 | root
>>>>>>>> 8102 | 1100 | 44445 | Stopped | 0 | LA1
>>>>>>>>
>>>>>>>>
>>>>>>>> and this exception is thrown in the logs:
>>>>>>>>
>>>>>>>> 2015-12-02 12:08:03,103 | INFO | 1]-nio2-thread-2 | ServerSession
>>>>>>>> | 1 - org.apache.sshd.core - 0.14.0 | Server
>>>>>>>> session created from /127.0.0.1:53673
>>>>>>>> 2015-12-02 12:08:03,103 | WARN | 1]-nio2-thread-2 | ServerSession
>>>>>>>> | 1 - org.apache.sshd.core - 0.14.0 | Exception
>>>>>>>> caught
>>>>>>>> java.io.IOException: Connection reset by peer
>>>>>>>> at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_45]
>>>>>>>> at
>>>>>>>> sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_45]
>>>>>>>> at
>>>>>>>> sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_45]
>>>>>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:197)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:508)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> java.nio.channels.AsynchronousSocketChannel.read(AsynchronousSocketChannel.java:420)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> org.apache.sshd.common.io.nio2.Nio2Session.startReading(Nio2Session.java:170)[1:org.apache.sshd.core:0.14.0]
>>>>>>>> at
>>>>>>>>
>>>>>>>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:135)[1:org.apache.sshd.core:0.14.0]
>>>>>>>> at
>>>>>>>>
>>>>>>>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:120)[1:org.apache.sshd.core:0.14.0]
>>>>>>>> at
>>>>>>>>
>>>>>>>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:32)
>>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>>>> Method)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:30)[1:org.apache.sshd.core:0.14.0]
>>>>>>>> at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)[:1.8.0_45]
>>>>>>>> at sun.nio.ch.Invoker$2.run(Invoker.java:218)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
>>>>>>>> at
>>>>>>>>
>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
>>>>>>>> at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
>>>>>>>>
>>>>>>>>
>>>>>>>> Any idea what is going on?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Dec 2, 2015, at 11:12 AM, Alex Soto <[email protected]
>>>>>>>>> <mailto:[email protected]>
>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>
>>>>>>>>> I am using very similar method, using the executeCommand, almost
>>>>>>>>> identical to how Cellar is doing it.
>>>>>>>>> I see the instance directory being created but there is nothing
>>>>>>>>> in the
>>>>>>>>> log file of the child instance.
>>>>>>>>>
>>>>>>>>> Thanks for the help!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Dec 2, 2015, at 10:34 AM, Jean-Baptiste Onofré
>>>>>>>>>> <[email protected] <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>>
>>>>>>>>>> It's @Ignore due to some hazelcast issue. I will re-enable it.
>>>>>>>>>>
>>>>>>>>>> With Karaf 4.0.0, you can see:
>>>>>>>>>>
>>>>>>>>>> protected void createCellarChild(String name, boolean debug, int
>>>>>>>>>> port) {
>>>>>>>>>> int instances = 0;
>>>>>>>>>> String createCommand = "instance:create --featureURL " +
>>>>>>>>>> System.getProperty("cellar.feature.url") + " --feature cellar ";
>>>>>>>>>> if (debug && port > 0) {
>>>>>>>>>> createCommand = createCommand + String.format(DEBUG_OPTS,
>>>>>>>>>> port);
>>>>>>>>>> }
>>>>>>>>>> System.err.println(executeCommand(createCommand + " " +
>>>>>>>>>> name));
>>>>>>>>>> System.err.println(executeCommand("instance:start " + name));
>>>>>>>>>>
>>>>>>>>>> //Wait till the node is listed as Starting
>>>>>>>>>> System.err.print("Waiting for " + name + " to start ");
>>>>>>>>>> for (int i = 0; i < 5 && instances == 0; i++) {
>>>>>>>>>> String response = executeCommand("instance:list | grep " +
>>>>>>>>>> name + " | grep -c " + INSTANCE_STARTED, COMMAND_TIMEOUT, true);
>>>>>>>>>> instances = Integer.parseInt(response.trim());
>>>>>>>>>> System.err.print(".");
>>>>>>>>>> try {
>>>>>>>>>> Thread.sleep(3000);
>>>>>>>>>> } catch (InterruptedException e) {
>>>>>>>>>> //Ignore
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> if (instances > 0) {
>>>>>>>>>> System.err.println(".Started!");
>>>>>>>>>> } else {
>>>>>>>>>> System.err.println(".Timed Out!");
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> It's what I used and it should work.
>>>>>>>>>>
>>>>>>>>>> Do you do the same ?
>>>>>>>>>>
>>>>>>>>>> Do you use the Instance service directly or the commands ?
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> JB
>>>>>>>>>>
>>>>>>>>>> On 12/02/2015 04:27 PM, Alex Soto wrote:
>>>>>>>>>>> Downloaded Cellar from the
>>>>>>>>>>> Headathttps://github.com/apache/karaf-cellar
>>>>>>>>>>> <headathttps://github.com/apache/karaf-cellar>
>>>>>>>>>>> All Integration Tests have the @Ignore annotation.
>>>>>>>>>>>
>>>>>>>>>>> Is anybody able to launch a second Karaf instance from a Pax-Exam
>>>>>>>>>>> integration test?
>>>>>>>>>>> If so, can you point me to a working example?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> On Dec 1, 2015, at 3:12 PM, Alex Soto <[email protected]
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hmm, I tried downloading Cellar and all the mirrors fail
>>>>>>>>>>>> with not
>>>>>>>>>>>> found error.
>>>>>>>>>>>> How do I get the source code?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> On Dec 1, 2015, at 3:00 PM, Alex Soto <[email protected]
>>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> JB:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, it works outside of Pax-Exam.
>>>>>>>>>>>>> I will take a look at Cellar.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Dec 1, 2015, at 2:54 PM, Jean-Baptiste Onofré
>>>>>>>>>>>>>> <[email protected] <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hey Alex,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I guess it works fine "outside" of Pax Exam, right ?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> You can take a look on Cellar as I use instance to simulate
>>>>>>>>>>>>>> multiple
>>>>>>>>>>>>>> nodes.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Let me try with 4.0.3.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>> JB
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 12/01/2015 08:16 PM, Alex Soto wrote:
>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I am using Karaf version 4.0.3. In my integration test I
>>>>>>>>>>>>>>> want to
>>>>>>>>>>>>>>> launch
>>>>>>>>>>>>>>> a second instance of Karaf, but it always times out, so I
>>>>>>>>>>>>>>> am now
>>>>>>>>>>>>>>> wondering if it is because the root instance is not yet
>>>>>>>>>>>>>>> finished
>>>>>>>>>>>>>>> starting.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> In order to troubleshoot this issue, I have now added the
>>>>>>>>>>>>>>> ‘instance:list’ command to my test:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> String listOutput = executeCommand("instance:list");
>>>>>>>>>>>>>>> log.info(listOutput);
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I call the above from my @Test method, but the output always
>>>>>>>>>>>>>>> shows:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>>>>> 8101 | 1099 | 44444 | Starting | 2914 | root
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> No matter how much I wait, it always shows the same status.
>>>>>>>>>>>>>>> Meaning the
>>>>>>>>>>>>>>> container never finishes starting. I can manually run the
>>>>>>>>>>>>>>> exact same
>>>>>>>>>>>>>>> container that was created under 'target/exam/<guid>’ folder,
>>>>>>>>>>>>>>> and issue
>>>>>>>>>>>>>>> the above command and get:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>>>>>>>>> ------------------------------------------------------------
>>>>>>>>>>>>>>> 8101 | 1099 | 44444 | Started | 3409 | root
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> So, it appears to be some kind of issue with the way the
>>>>>>>>>>>>>>> PAM-EXAM test
>>>>>>>>>>>>>>> is wired. I have added this dependency to try to cope
>>>>>>>>>>>>>>> with the
>>>>>>>>>>>>>>> problem:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> @Inject
>>>>>>>>>>>>>>> @Filter(timeout = SERVICE_TIMEOUT)
>>>>>>>>>>>>>>> protected BootFinished bootFinished;
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> but so far, I have not been able to solve it. As I said
>>>>>>>>>>>>>>> before, my
>>>>>>>>>>>>>>> ultimate goal is to run a child instance, but I suspect
>>>>>>>>>>>>>>> that won’t
>>>>>>>>>>>>>>> happen until the main instance is successfully started. Any
>>>>>>>>>>>>>>> hints?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>>> Alex Soto
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>>> <mailto:[email protected]
>>>>>>>>>>>>>> <mailto:[email protected]>><mailto:[email protected]
>>>>>>>>>>>>>> <mailto:[email protected]>>
>>>>>>>>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>>>>>>>>>>> <http://blog.nanthrax.net/
>>>>>>>>>>>>>> <http://blog.nanthrax.net/>><http://blog.nanthrax.net/
>>>>>>>>>>>>>> <http://blog.nanthrax.net/>>
>>>>>>>>>>>>>> Talend -http://www.talend.com <http://www.talend.com/>
>>>>>>>>>>>>>> <http://www.talend.com/
>>>>>>>>>>>>>> <http://www.talend.com/>><http://www.talend.com/
>>>>>>>>>>>>>> <http://www.talend.com/>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>> <mailto:[email protected]
>>>>>>>>>> <mailto:[email protected]>><mailto:[email protected]
>>>>>>>>>> <mailto:[email protected]>>
>>>>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>>>>>>> <http://blog.nanthrax.net/
>>>>>>>>>> <http://blog.nanthrax.net/>><http://blog.nanthrax.net/
>>>>>>>>>> <http://blog.nanthrax.net/>>
>>>>>>>>>> Talend -http://www.talend.com <http://www.talend.com/>
>>>>>>>>>> <http://www.talend.com/
>>>>>>>>>> <http://www.talend.com/>><http://www.talend.com/
>>>>>>>>>> <http://www.talend.com/>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Jean-Baptiste Onofré
>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>>>> <http://blog.nanthrax.net/ <http://blog.nanthrax.net/>>
>>>>>>> Talend -http://www.talend.com <http://www.talend.com/>
>>>>>>> <http://www.talend.com/ <http://www.talend.com/>>
>>>>>>
>>>>>
>>>>> --
>>>>> Jean-Baptiste Onofré
>>>>> [email protected] <mailto:[email protected]>
>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>> Talend - http://www.talend.com <http://www.talend.com/>
>>>>
>>>
>>> --
>>> Jean-Baptiste Onofré
>>> [email protected] <mailto:[email protected]>
>>> <mailto:[email protected] <mailto:[email protected]>>
>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>> Talend - http://www.talend.com <http://www.talend.com/>
>>
>
> --
> Jean-Baptiste Onofré
> [email protected] <mailto:[email protected]>
> http://blog.nanthrax.net <http://blog.nanthrax.net/>
> Talend - http://www.talend.com <http://www.talend.com/>