You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by FuinhaAzul <fu...@gmail.com> on 2009/07/29 14:06:22 UTC

Please ServiceMix sample Email Poller -> FileWritter

Hi there.

I´m trying to create a servicemix application that takes a email and put the
content on a file. But i´m not understand how.  I did the file-binding
sample, but I´m not suceded to adapt this sample to use email.
This is waht I did:

servicemix.xml:


<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
	     xmlns:foo="http://servicemix.org/demo/" 
	     xmlns:mail="http://servicemix.apache.org/mail/1.0">

  <bean id="jndi"
class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
        factory-method="makeInitialContext" singleton="true" />

	<!-- the JBI container -->
	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">

		<sm:activationSpecs>

			<!-- Write files to the outbox directory -->
			<sm:activationSpec componentName="fileSender"
				service="foo:fileSender">
				<sm:component>
					<bean class="org.apache.servicemix.components.file.FileWriter">
						<property name="directory" value="outbox" />

					</bean>
				</sm:component>
			</sm:activationSpec>

			<sm:activationSpec componentName="emailPoller"
				service="emailPoller" destinationService="foo:fileSender">
				<sm:component>
					<bean class="org.apache.servicemix.components.email.MimeMailPoller">
						<property name="hostName" value="xxxxx" />
						<property name="password" value="xxxx" />
						<property name="userName" value="xxx" />
						<property name="debug" value="true" />
						
					</bean>
				</sm:component>
			</sm:activationSpec>
			
		</sm:activationSpecs>
	</sm:container>

</beans>

-- 
View this message in context: http://www.nabble.com/Please-ServiceMix-sample-Email-Poller--%3E-FileWritter-tp24717894p24717894.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by Oisin Hurley <oi...@gmail.com>.
> My problem is how to create the JBI projects in eclipse...
>
> Maybe can you help me, which maven commands I need to run, to build this
> project? (I want to create a right package structure, without using ant
> again)

Most maven/eclipse integrations will allow you to create the
project by choosing a particular archetype during the New Maven
Project wizard process.

Check the list of archetypes at

http://servicemix.apache.org/maven-archetypes.html

to discover which one suits your use-case the best. You can
then use the maven integration to kick off the correct archetype
at project creation time.

 --oh

Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

it's normal, you can't deploy a SU zip.

To be able to deploy it, you need to package your SUs into a SA zip. 
It's the SA zip file which is deployed.

To make a SA, you can use the following pom.xml:

<project ...>
   <modelVersion>4.0.0</modelVersion>
   <groupId>my</groupId>
   <artifactId>sa</artifactId>
   <version>1.0-SNAPSHOT</version>
   <package>jbi-service-assembly</package>

   <dependencies>
	<dependency>
		<groupId>my</groupId>
		<artifactId>su1</artifactId>
		<version>1.0-SNAPSHOT</version>
	</dependency>
	<dependency>
		<groupId>my</groupId>
		<artifactId>su2</artifactId>
		<version>1.0-SNAPSHOT</version>
	</dependency>
   </dependencies>

   <build>
	<plugins>
		<plugin>
			<groupId>org.apache.servicemix.tooling</groupId>
			<artifactId>jbi-maven-plugin</artifactId>
			<version>4.1</version>
			<extensions>true</extensions>
			<configuration>
				<type>service-assembly</type>
			</configuration>
		</plugin>
	</plugins>
   </build>

</project>

Make:
mvn clean install
and deploy the resulting sa zip file.

Only the SU is quite useless.

Regards
JB

FuinhaAzul wrote:
> I gived a few tries, but when I put the SU in the hotdeploy folder, nothing
> happen. Not even the debug output from mailPoller is show! (I didn´t
> undertand where is the "main" that servicemix look to start an application
> in the hotdeploy folder)
> 
> 
> Let I say the actual needs...
> 
> 
> My research need is to build a simple example ( in this time can be with
> lightweight container) that take a XML from a email, take a tag inside the
> xml to decide which system folder the XML will be write.
> 
> 
> I have 2 days left to finish this. If I suceded, then the company that i
> work, will let I spend more time to really understand concepts like JBI
> packaging structure, Maven ...
>   
> 
> So, can you guys help me to build this example? I promisse that I will be on
> my own soon! :-)
> 
> 
> OBS: Sorry for my bad English. 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Jean-Baptiste Onofré wrote:
>> Well,
>>
>> I take the example of the mail SU.
>>
>> In eclipse, create a Java project (New -> Java Project).
>> Name the project "mail-su".
>>
>> Now in the mail-su project, create a file named pom.xml and containing:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <project xmlns="http://maven.apache.org/POM/4.0.0"
>> 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> 	 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
>> http://maven.apache.org/maven-v4_0_0.xsd">
>>
>> 	<modelVersion>4.0.0</modelVersion>
>>
>> 	<groupId>org.apache.servicemix.samples</groupId>
>>          <artifactId>mail-su</artifactId>
>>          <version>1.0-SNAPSHOT</version>
>>          <packaging>jbi-service-unit</packaging>
>>
>>   	<dependencies>
>> 		<dependency>
>> 			<groupId>org.apache.servicemix</groupId>
>> 			<artifactId>servicemix-mail</artifactId>
>> 			<version>2009.01</version>
>> 		</dependency>
>> 	</dependencies>
>>
>> 	<build>
>> 		<plugins>
>> 			<plugin>
>> 				<groupId>org.apache.servicemix.tooling</groupId>
>> 				<artifactId>jbi-maven-plugin</artifactId>
>> 				<version>4.1</version>
>> 				<extensions>true</extensions>
>> 			</plugin>
>> 		</plugins>
>> 	</build>
>>
>> </project>
>>
>> After, in the mail-su project, you create a directory src/main/resources 
>> and you put the xbean.xml in this directory.
>>
>> Once done, you can make:
>> mvn clean install eclipse:eclipse
>>
>> The install goal will create the SU zip (that can be embedded in the SA) 
>> and eclipse:eclipse goal will setup the project to be eclipse compliant.
>>
>> Make a eclipse project refresh and it should be fine :)
>>
>> Regards
>> JB
>>
>> FuinhaAzul wrote:
>>> Great answer... This helped me to understant the diference between using
>>> the
>>> servicemix file and a SA package.
>>>
>>>
>>> I´m using eclipse to develop the project, but i´m not familiar with
>>> maven,
>>> just with ant. But i have instaled maven and give a few tries.
>>>
>>> My problem is how to create the JBI projects in eclipse...
>>>
>>> Maybe can you help me, which maven commands I need to run, to build this
>>> project? (I want to create a right package structure, without using ant
>>> again)
>>>
>>>
>>> Thanks in advance!
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Jean-Baptiste Onofré wrote:
>>>> Hi,
>>>>
>>>> I recommand to avoid the usage of the lightweight container and prefer 
>>>> the pure JBI form.
>>>>
>>>> In your case, you need to define two SUs:
>>>> 1/ a mail poller SU
>>>> 2/ a file sender (writer)
>>>>
>>>> Concerning the mail poller, you can define the following xbean.xml:
>>>>
>>>> <beans xmlns:my="http://www.example.org/myService"
>>>>         xmlns:mail="http://servicemix.apache.org/mail/1.0">
>>>> <mail:poller service="my:MailService" endpoint="MailPoller"
>>>> 	targetService="my:MailService"
>>>> 	targetEndpoint="MailFileWriter"
>>>> 	period="10000"
>>>> 	connection="imap://jbonofre@imap.nanthrax.net:143/INBOX?password=xxxx"
>>>> 	deleteProcessedMessages="false"
>>>> 	processOnlyUnseenMessages="true"/>
>>>> </beans>
>>>>
>>>> Create a maven project with this xbean as resources.
>>>>
>>>> On the file endpoint side, you can define the following xbean.xml:
>>>>
>>>> <beans xmlns:my="http://www.example.org/myService"
>>>>         xmlns:file="http://servicemix.apache.org/file/1.0">
>>>> <file:sender service="my:MailService" endpoint="MailFileWriter"
>>>> 	directory="file:/tmp/mailFiles"/>
>>>> </beans>
>>>>
>>>> After that you can assemble both SU (the mail poller and file sender) 
>>>> into a SA and create the SA zip file.
>>>>
>>>> Once done, you can deploy the SA zip file by copying it into the 
>>>> hotdeploy directory (if you use SMX3).
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> FuinhaAzul wrote:
>>>>> Hi there.
>>>>>
>>>>> I´m trying to create a servicemix application that takes a email and
>>>>> put
>>>>> the
>>>>> content on a file. But i´m not understand how.  I did the file-binding
>>>>> sample, but I´m not suceded to adapt this sample to use email.
>>>>> This is waht I did:
>>>>>
>>>>> servicemix.xml:
>>>>>
>>>>>
>>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>>> 	     xmlns:foo="http://servicemix.org/demo/" 
>>>>> 	     xmlns:mail="http://servicemix.apache.org/mail/1.0">
>>>>>
>>>>>   <bean id="jndi"
>>>>> class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
>>>>>         factory-method="makeInitialContext" singleton="true" />
>>>>>
>>>>> 	<!-- the JBI container -->
>>>>> 	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">
>>>>>
>>>>> 		<sm:activationSpecs>
>>>>>
>>>>> 			<!-- Write files to the outbox directory -->
>>>>> 			<sm:activationSpec componentName="fileSender"
>>>>> 				service="foo:fileSender">
>>>>> 				<sm:component>
>>>>> 					<bean class="org.apache.servicemix.components.file.FileWriter">
>>>>> 						<property name="directory" value="outbox" />
>>>>>
>>>>> 					</bean>
>>>>> 				</sm:component>
>>>>> 			</sm:activationSpec>
>>>>>
>>>>> 			<sm:activationSpec componentName="emailPoller"
>>>>> 				service="emailPoller" destinationService="foo:fileSender">
>>>>> 				<sm:component>
>>>>> 					<bean
>>>>> class="org.apache.servicemix.components.email.MimeMailPoller">
>>>>> 						<property name="hostName" value="xxxxx" />
>>>>> 						<property name="password" value="xxxx" />
>>>>> 						<property name="userName" value="xxx" />
>>>>> 						<property name="debug" value="true" />
>>>>> 						
>>>>> 					</bean>
>>>>> 				</sm:component>
>>>>> 			</sm:activationSpec>
>>>>> 			
>>>>> 		</sm:activationSpecs>
>>>>> 	</sm:container>
>>>>>
>>>>> </beans>
>>>>>
>>
> 

Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by FuinhaAzul <fu...@gmail.com>.
I gived a few tries, but when I put the SU in the hotdeploy folder, nothing
happen. Not even the debug output from mailPoller is show! (I didn´t
undertand where is the "main" that servicemix look to start an application
in the hotdeploy folder)


Let I say the actual needs...


My research need is to build a simple example ( in this time can be with
lightweight container) that take a XML from a email, take a tag inside the
xml to decide which system folder the XML will be write.


I have 2 days left to finish this. If I suceded, then the company that i
work, will let I spend more time to really understand concepts like JBI
packaging structure, Maven ...
  

So, can you guys help me to build this example? I promisse that I will be on
my own soon! :-)


OBS: Sorry for my bad English. 











Jean-Baptiste Onofré wrote:
> 
> Well,
> 
> I take the example of the mail SU.
> 
> In eclipse, create a Java project (New -> Java Project).
> Name the project "mail-su".
> 
> Now in the mail-su project, create a file named pom.xml and containing:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd">
> 
> 	<modelVersion>4.0.0</modelVersion>
> 
> 	<groupId>org.apache.servicemix.samples</groupId>
>          <artifactId>mail-su</artifactId>
>          <version>1.0-SNAPSHOT</version>
>          <packaging>jbi-service-unit</packaging>
> 
>   	<dependencies>
> 		<dependency>
> 			<groupId>org.apache.servicemix</groupId>
> 			<artifactId>servicemix-mail</artifactId>
> 			<version>2009.01</version>
> 		</dependency>
> 	</dependencies>
> 
> 	<build>
> 		<plugins>
> 			<plugin>
> 				<groupId>org.apache.servicemix.tooling</groupId>
> 				<artifactId>jbi-maven-plugin</artifactId>
> 				<version>4.1</version>
> 				<extensions>true</extensions>
> 			</plugin>
> 		</plugins>
> 	</build>
> 
> </project>
> 
> After, in the mail-su project, you create a directory src/main/resources 
> and you put the xbean.xml in this directory.
> 
> Once done, you can make:
> mvn clean install eclipse:eclipse
> 
> The install goal will create the SU zip (that can be embedded in the SA) 
> and eclipse:eclipse goal will setup the project to be eclipse compliant.
> 
> Make a eclipse project refresh and it should be fine :)
> 
> Regards
> JB
> 
> FuinhaAzul wrote:
>> Great answer... This helped me to understant the diference between using
>> the
>> servicemix file and a SA package.
>> 
>> 
>> I´m using eclipse to develop the project, but i´m not familiar with
>> maven,
>> just with ant. But i have instaled maven and give a few tries.
>> 
>> My problem is how to create the JBI projects in eclipse...
>> 
>> Maybe can you help me, which maven commands I need to run, to build this
>> project? (I want to create a right package structure, without using ant
>> again)
>> 
>> 
>> Thanks in advance!
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Jean-Baptiste Onofré wrote:
>>> Hi,
>>>
>>> I recommand to avoid the usage of the lightweight container and prefer 
>>> the pure JBI form.
>>>
>>> In your case, you need to define two SUs:
>>> 1/ a mail poller SU
>>> 2/ a file sender (writer)
>>>
>>> Concerning the mail poller, you can define the following xbean.xml:
>>>
>>> <beans xmlns:my="http://www.example.org/myService"
>>>         xmlns:mail="http://servicemix.apache.org/mail/1.0">
>>> <mail:poller service="my:MailService" endpoint="MailPoller"
>>> 	targetService="my:MailService"
>>> 	targetEndpoint="MailFileWriter"
>>> 	period="10000"
>>> 	connection="imap://jbonofre@imap.nanthrax.net:143/INBOX?password=xxxx"
>>> 	deleteProcessedMessages="false"
>>> 	processOnlyUnseenMessages="true"/>
>>> </beans>
>>>
>>> Create a maven project with this xbean as resources.
>>>
>>> On the file endpoint side, you can define the following xbean.xml:
>>>
>>> <beans xmlns:my="http://www.example.org/myService"
>>>         xmlns:file="http://servicemix.apache.org/file/1.0">
>>> <file:sender service="my:MailService" endpoint="MailFileWriter"
>>> 	directory="file:/tmp/mailFiles"/>
>>> </beans>
>>>
>>> After that you can assemble both SU (the mail poller and file sender) 
>>> into a SA and create the SA zip file.
>>>
>>> Once done, you can deploy the SA zip file by copying it into the 
>>> hotdeploy directory (if you use SMX3).
>>>
>>> Regards
>>> JB
>>>
>>> FuinhaAzul wrote:
>>>> Hi there.
>>>>
>>>> I´m trying to create a servicemix application that takes a email and
>>>> put
>>>> the
>>>> content on a file. But i´m not understand how.  I did the file-binding
>>>> sample, but I´m not suceded to adapt this sample to use email.
>>>> This is waht I did:
>>>>
>>>> servicemix.xml:
>>>>
>>>>
>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>> 	     xmlns:foo="http://servicemix.org/demo/" 
>>>> 	     xmlns:mail="http://servicemix.apache.org/mail/1.0">
>>>>
>>>>   <bean id="jndi"
>>>> class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
>>>>         factory-method="makeInitialContext" singleton="true" />
>>>>
>>>> 	<!-- the JBI container -->
>>>> 	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">
>>>>
>>>> 		<sm:activationSpecs>
>>>>
>>>> 			<!-- Write files to the outbox directory -->
>>>> 			<sm:activationSpec componentName="fileSender"
>>>> 				service="foo:fileSender">
>>>> 				<sm:component>
>>>> 					<bean class="org.apache.servicemix.components.file.FileWriter">
>>>> 						<property name="directory" value="outbox" />
>>>>
>>>> 					</bean>
>>>> 				</sm:component>
>>>> 			</sm:activationSpec>
>>>>
>>>> 			<sm:activationSpec componentName="emailPoller"
>>>> 				service="emailPoller" destinationService="foo:fileSender">
>>>> 				<sm:component>
>>>> 					<bean
>>>> class="org.apache.servicemix.components.email.MimeMailPoller">
>>>> 						<property name="hostName" value="xxxxx" />
>>>> 						<property name="password" value="xxxx" />
>>>> 						<property name="userName" value="xxx" />
>>>> 						<property name="debug" value="true" />
>>>> 						
>>>> 					</bean>
>>>> 				</sm:component>
>>>> 			</sm:activationSpec>
>>>> 			
>>>> 		</sm:activationSpecs>
>>>> 	</sm:container>
>>>>
>>>> </beans>
>>>>
>>>
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Please-ServiceMix-sample-Email-Poller--%3E-FileWritter-tp24717894p24738827.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Well,

I take the example of the mail SU.

In eclipse, create a Java project (New -> Java Project).
Name the project "mail-su".

Now in the mail-su project, create a file named pom.xml and containing:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<groupId>org.apache.servicemix.samples</groupId>
         <artifactId>mail-su</artifactId>
         <version>1.0-SNAPSHOT</version>
         <packaging>jbi-service-unit</packaging>

  	<dependencies>
		<dependency>
			<groupId>org.apache.servicemix</groupId>
			<artifactId>servicemix-mail</artifactId>
			<version>2009.01</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.servicemix.tooling</groupId>
				<artifactId>jbi-maven-plugin</artifactId>
				<version>4.1</version>
				<extensions>true</extensions>
			</plugin>
		</plugins>
	</build>

</project>

After, in the mail-su project, you create a directory src/main/resources 
and you put the xbean.xml in this directory.

Once done, you can make:
mvn clean install eclipse:eclipse

The install goal will create the SU zip (that can be embedded in the SA) 
and eclipse:eclipse goal will setup the project to be eclipse compliant.

Make a eclipse project refresh and it should be fine :)

Regards
JB

FuinhaAzul wrote:
> Great answer... This helped me to understant the diference between using the
> servicemix file and a SA package.
> 
> 
> I´m using eclipse to develop the project, but i´m not familiar with maven,
> just with ant. But i have instaled maven and give a few tries.
> 
> My problem is how to create the JBI projects in eclipse...
> 
> Maybe can you help me, which maven commands I need to run, to build this
> project? (I want to create a right package structure, without using ant
> again)
> 
> 
> Thanks in advance!
> 
> 
> 
> 
> 
> 
> 
> 
> Jean-Baptiste Onofré wrote:
>> Hi,
>>
>> I recommand to avoid the usage of the lightweight container and prefer 
>> the pure JBI form.
>>
>> In your case, you need to define two SUs:
>> 1/ a mail poller SU
>> 2/ a file sender (writer)
>>
>> Concerning the mail poller, you can define the following xbean.xml:
>>
>> <beans xmlns:my="http://www.example.org/myService"
>>         xmlns:mail="http://servicemix.apache.org/mail/1.0">
>> <mail:poller service="my:MailService" endpoint="MailPoller"
>> 	targetService="my:MailService"
>> 	targetEndpoint="MailFileWriter"
>> 	period="10000"
>> 	connection="imap://jbonofre@imap.nanthrax.net:143/INBOX?password=xxxx"
>> 	deleteProcessedMessages="false"
>> 	processOnlyUnseenMessages="true"/>
>> </beans>
>>
>> Create a maven project with this xbean as resources.
>>
>> On the file endpoint side, you can define the following xbean.xml:
>>
>> <beans xmlns:my="http://www.example.org/myService"
>>         xmlns:file="http://servicemix.apache.org/file/1.0">
>> <file:sender service="my:MailService" endpoint="MailFileWriter"
>> 	directory="file:/tmp/mailFiles"/>
>> </beans>
>>
>> After that you can assemble both SU (the mail poller and file sender) 
>> into a SA and create the SA zip file.
>>
>> Once done, you can deploy the SA zip file by copying it into the 
>> hotdeploy directory (if you use SMX3).
>>
>> Regards
>> JB
>>
>> FuinhaAzul wrote:
>>> Hi there.
>>>
>>> I´m trying to create a servicemix application that takes a email and put
>>> the
>>> content on a file. But i´m not understand how.  I did the file-binding
>>> sample, but I´m not suceded to adapt this sample to use email.
>>> This is waht I did:
>>>
>>> servicemix.xml:
>>>
>>>
>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>> 	     xmlns:foo="http://servicemix.org/demo/" 
>>> 	     xmlns:mail="http://servicemix.apache.org/mail/1.0">
>>>
>>>   <bean id="jndi"
>>> class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
>>>         factory-method="makeInitialContext" singleton="true" />
>>>
>>> 	<!-- the JBI container -->
>>> 	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">
>>>
>>> 		<sm:activationSpecs>
>>>
>>> 			<!-- Write files to the outbox directory -->
>>> 			<sm:activationSpec componentName="fileSender"
>>> 				service="foo:fileSender">
>>> 				<sm:component>
>>> 					<bean class="org.apache.servicemix.components.file.FileWriter">
>>> 						<property name="directory" value="outbox" />
>>>
>>> 					</bean>
>>> 				</sm:component>
>>> 			</sm:activationSpec>
>>>
>>> 			<sm:activationSpec componentName="emailPoller"
>>> 				service="emailPoller" destinationService="foo:fileSender">
>>> 				<sm:component>
>>> 					<bean class="org.apache.servicemix.components.email.MimeMailPoller">
>>> 						<property name="hostName" value="xxxxx" />
>>> 						<property name="password" value="xxxx" />
>>> 						<property name="userName" value="xxx" />
>>> 						<property name="debug" value="true" />
>>> 						
>>> 					</bean>
>>> 				</sm:component>
>>> 			</sm:activationSpec>
>>> 			
>>> 		</sm:activationSpecs>
>>> 	</sm:container>
>>>
>>> </beans>
>>>
>>
> 

Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by FuinhaAzul <fu...@gmail.com>.
Great answer... This helped me to understant the diference between using the
servicemix file and a SA package.


I´m using eclipse to develop the project, but i´m not familiar with maven,
just with ant. But i have instaled maven and give a few tries.

My problem is how to create the JBI projects in eclipse...

Maybe can you help me, which maven commands I need to run, to build this
project? (I want to create a right package structure, without using ant
again)


Thanks in advance!








Jean-Baptiste Onofré wrote:
> 
> Hi,
> 
> I recommand to avoid the usage of the lightweight container and prefer 
> the pure JBI form.
> 
> In your case, you need to define two SUs:
> 1/ a mail poller SU
> 2/ a file sender (writer)
> 
> Concerning the mail poller, you can define the following xbean.xml:
> 
> <beans xmlns:my="http://www.example.org/myService"
>         xmlns:mail="http://servicemix.apache.org/mail/1.0">
> <mail:poller service="my:MailService" endpoint="MailPoller"
> 	targetService="my:MailService"
> 	targetEndpoint="MailFileWriter"
> 	period="10000"
> 	connection="imap://jbonofre@imap.nanthrax.net:143/INBOX?password=xxxx"
> 	deleteProcessedMessages="false"
> 	processOnlyUnseenMessages="true"/>
> </beans>
> 
> Create a maven project with this xbean as resources.
> 
> On the file endpoint side, you can define the following xbean.xml:
> 
> <beans xmlns:my="http://www.example.org/myService"
>         xmlns:file="http://servicemix.apache.org/file/1.0">
> <file:sender service="my:MailService" endpoint="MailFileWriter"
> 	directory="file:/tmp/mailFiles"/>
> </beans>
> 
> After that you can assemble both SU (the mail poller and file sender) 
> into a SA and create the SA zip file.
> 
> Once done, you can deploy the SA zip file by copying it into the 
> hotdeploy directory (if you use SMX3).
> 
> Regards
> JB
> 
> FuinhaAzul wrote:
>> Hi there.
>> 
>> I´m trying to create a servicemix application that takes a email and put
>> the
>> content on a file. But i´m not understand how.  I did the file-binding
>> sample, but I´m not suceded to adapt this sample to use email.
>> This is waht I did:
>> 
>> servicemix.xml:
>> 
>> 
>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>> 	     xmlns:foo="http://servicemix.org/demo/" 
>> 	     xmlns:mail="http://servicemix.apache.org/mail/1.0">
>> 
>>   <bean id="jndi"
>> class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
>>         factory-method="makeInitialContext" singleton="true" />
>> 
>> 	<!-- the JBI container -->
>> 	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">
>> 
>> 		<sm:activationSpecs>
>> 
>> 			<!-- Write files to the outbox directory -->
>> 			<sm:activationSpec componentName="fileSender"
>> 				service="foo:fileSender">
>> 				<sm:component>
>> 					<bean class="org.apache.servicemix.components.file.FileWriter">
>> 						<property name="directory" value="outbox" />
>> 
>> 					</bean>
>> 				</sm:component>
>> 			</sm:activationSpec>
>> 
>> 			<sm:activationSpec componentName="emailPoller"
>> 				service="emailPoller" destinationService="foo:fileSender">
>> 				<sm:component>
>> 					<bean class="org.apache.servicemix.components.email.MimeMailPoller">
>> 						<property name="hostName" value="xxxxx" />
>> 						<property name="password" value="xxxx" />
>> 						<property name="userName" value="xxx" />
>> 						<property name="debug" value="true" />
>> 						
>> 					</bean>
>> 				</sm:component>
>> 			</sm:activationSpec>
>> 			
>> 		</sm:activationSpecs>
>> 	</sm:container>
>> 
>> </beans>
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Please-ServiceMix-sample-Email-Poller--%3E-FileWritter-tp24717894p24719835.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Please ServiceMix sample Email Poller -> FileWritter

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

I recommand to avoid the usage of the lightweight container and prefer 
the pure JBI form.

In your case, you need to define two SUs:
1/ a mail poller SU
2/ a file sender (writer)

Concerning the mail poller, you can define the following xbean.xml:

<beans xmlns:my="http://www.example.org/myService"
        xmlns:mail="http://servicemix.apache.org/mail/1.0">
<mail:poller service="my:MailService" endpoint="MailPoller"
	targetService="my:MailService"
	targetEndpoint="MailFileWriter"
	period="10000"
	connection="imap://jbonofre@imap.nanthrax.net:143/INBOX?password=xxxx"
	deleteProcessedMessages="false"
	processOnlyUnseenMessages="true"/>
</beans>

Create a maven project with this xbean as resources.

On the file endpoint side, you can define the following xbean.xml:

<beans xmlns:my="http://www.example.org/myService"
        xmlns:file="http://servicemix.apache.org/file/1.0">
<file:sender service="my:MailService" endpoint="MailFileWriter"
	directory="file:/tmp/mailFiles"/>
</beans>

After that you can assemble both SU (the mail poller and file sender) 
into a SA and create the SA zip file.

Once done, you can deploy the SA zip file by copying it into the 
hotdeploy directory (if you use SMX3).

Regards
JB

FuinhaAzul wrote:
> Hi there.
> 
> I´m trying to create a servicemix application that takes a email and put the
> content on a file. But i´m not understand how.  I did the file-binding
> sample, but I´m not suceded to adapt this sample to use email.
> This is waht I did:
> 
> servicemix.xml:
> 
> 
> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
> 	     xmlns:foo="http://servicemix.org/demo/" 
> 	     xmlns:mail="http://servicemix.apache.org/mail/1.0">
> 
>   <bean id="jndi"
> class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
>         factory-method="makeInitialContext" singleton="true" />
> 
> 	<!-- the JBI container -->
> 	<sm:container id="jbi" useMBeanServer="true" createMBeanServer="true">
> 
> 		<sm:activationSpecs>
> 
> 			<!-- Write files to the outbox directory -->
> 			<sm:activationSpec componentName="fileSender"
> 				service="foo:fileSender">
> 				<sm:component>
> 					<bean class="org.apache.servicemix.components.file.FileWriter">
> 						<property name="directory" value="outbox" />
> 
> 					</bean>
> 				</sm:component>
> 			</sm:activationSpec>
> 
> 			<sm:activationSpec componentName="emailPoller"
> 				service="emailPoller" destinationService="foo:fileSender">
> 				<sm:component>
> 					<bean class="org.apache.servicemix.components.email.MimeMailPoller">
> 						<property name="hostName" value="xxxxx" />
> 						<property name="password" value="xxxx" />
> 						<property name="userName" value="xxx" />
> 						<property name="debug" value="true" />
> 						
> 					</bean>
> 				</sm:component>
> 			</sm:activationSpec>
> 			
> 		</sm:activationSpecs>
> 	</sm:container>
> 
> </beans>
>