AirVergo

Web製作にまつわる雑記帳です。たまに更新してます。

Apache Camelを試してみました。

2014/10/5

前々から試してみたかったApache Camelをやってみたので、紹介します。

今回はメールサーバからメールをフェッチしてきて、自動的にDBに格納する検証を行いました。

javaのビルド?にMaven使いました。Maven便利ですね。依存するjarファイルとってきてくれるので、、

 

最近Java EEの学習をしていることもあって、NetBeansを使いました。

「新規プロジェクト」->「Maven」->「Javaアプリケーション」を選択してプロジェクト作成します。

 

pom.xmlに今回使用する依存ライブラリを書いていきます。

 

pom.xmlはこんな感じです。

 

<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/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>com.midalort</groupId>
<artifactId>MidalortDovecot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>2.14.0</version>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jpa</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mail</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jdbc</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
</project>

不必要なパッケージもあるかもしれません、、

pox.xmlが用意出来たらコードを書いていきます。

今回はJPAを使ってメールをMySQLに投入するテストを行いました。

クラスは三つ用意しました。

Apache Camelについては以下を参照してください

http://sourceforge.jp/projects/cameluserjp/wiki/FrontPage

http://camel.apache.org/

http://camel.apache.org/components.html

http://camel.apache.org/mail.html

http://camel.apache.org/jpa.html

データのルーティングに使える?みたいなので結構開発楽しいです。

JPAの持続性ユニットでDBへの接続とpersistenceUnit名を指定したのち、クラスのコーディングをします。

まず、メインクラス「CamelMain.java」

次にBeanクラス?の「Logwatch.java」クラスを作成します。(名前適当です)

テーブル名・カラム名を実際のテーブルに合わせています。

最後にメール本文をLogwatchクラスにセットする「OutputProcess.java」を用意します。

メッセージのbodyにbeanクラスをセットすることで、MySQLにデータを投入できました。

今後本格的に開発予定なので、継続して検証したいと思います。

facebooktwittergoogle_plusredditpinterestlinkedinmail