Maven

Handywedge with Maven

pom.xml

リポジトリを追加します。

  <repositories>
    <repository>
      <id>maven.handywedge</id>
      <name>Handywedge Maven Repo</name>
      <url>https://maven.handywedge.com/</url>
    </repository>
  </repositories>

依存関係を追加します。

  <dependencies>
    <dependency>
      <groupId>com.handywedge</groupId>
      <artifactId>handywedge-core</artifactId>
      <version>0.5.0</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

注意

OpenJDKではリポジトリからのダウンロード時にjavax.net.ssl.SSLHandshakeExceptionが発生することがあります。
その場合は、OracleのJDKにて一旦ローカルのリポジトリにダウンロードを試してみてください。(1.8.0_162で確認済みです)


deployment descriptor

tomcatで稼働した場合の各定義ファイルのサンプルです。

web.xml

CDIにはweldを利用しています

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>handywedge-test-app</display-name>
  <listener>
    <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
  </listener>
  <filter-mapping>
    <filter-name>handywedge_session_filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>handywedge_rest_filter</filter-name>
    <url-pattern>/fw/rest/*</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
  <resource-env-ref>
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
  </resource-env-ref>
  <resource-ref>
    <res-ref-name>jdbc/ds_handywedge</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
  <resource-ref>
    <res-ref-name>jdbc/fw</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
  <context-param>
    <param-name>handywedge.app_id</param-name>
    <param-value>handywedge-test-app</param-value>
  </context-param>
</web-app>
説明
handywedge_session_filter セッションフィルターを指定(固定値)
handywedge_rest_filter RESTフィルターを指定(固定値)
jdbc/fw FWリソースがアクセスするためのデータベースDataSourceを指定(固定値)
handywedge.app_id アプリケーションIDを指定

context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>
  <Resource
    name="jdbc/ds_handywedge"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="net.sf.log4jdbc.DriverSpy"
    url="jdbc:log4jdbc:postgresql://localhost:5432/handywedge_test_app"
    username="handywedge-app"
    password="handywedge-app"
    initialSize="2"
    maxWaitMillis="10000" />
  <Resource
    name="jdbc/fw"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="net.sf.log4jdbc.DriverSpy"
    url="jdbc:log4jdbc:postgresql://localhost:5432/handywedge_test_app"
    username="handywedge"
    password="handywedge"
    initialSize="2"
    maxWaitMillis="10000" />
  <Resource
    name="BeanManager"
    auth="Container"
    type="javax.enterprise.inject.spi.BeanManager"
    factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
            http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
  bean-discovery-mode="annotated"
  version="1.2"
>
  <interceptors>
    <class>com.handywedge.interceptor.FWTransactionalInterceptor</class>
  </interceptors>
</beans>