2013年9月3日火曜日

IClient functionality

IClient functionality
IClientの機能性

IClient interface is used for working with live data and ITesterClient inherits its functionality for working with historical data.
IClientインタフェイスはライブデータを操作するために使用され、ITesterClientは履歴データを操作するために、その機能を継承している。
One gets an instance of IClient by using ClientFactory.getDefaultInstance().
ClientFactory.getDefaultInstance()を使うことでIClientのインスタンスを取得する。
One connects to dukascopy servers by using the connect method, for example:
例題のように、connectメソッドを使うことで、dukascopyサーバに接続する。
client.connect("https://www.dukascopy.com/client/demo/jclient/jforex.jnlp", "username", "password");

2013年9月2日月曜日

JForex SDK

JForex理解度向上の為、SDKドキュメントを翻訳。
JForex SDK
http://www.dukascopy.com/wiki/#JForex_SDK

JForex Software Development Kit (JForex SDK) allows the user to use JForex API without JForex client.
JForexソフトウェア開発キット (JForex SDK)は、JForexクライアントを使うことなく、JForex APIの使用を可能にする。
Most prominently it enables the user to run his strategies from a custom java application.
最も顕著に有効なのは、カスタムJavaアプリケーションから自身のストラテジの実行を可能にすることだ。
One uses the IClient interface for working with live data and ITesterClient for working with historical data.
まず、ライブデータを操作するにはIClientインターフェイス過去データを扱うにはITesterClientのどちらか一つを使用する
Also JForex SDK provides interfaces for working with charts outside JForex client, find examples in sections Work with charts and Backtesting in GUI mode.
またJForex SDKは、JForexクライアント外部でのチャート操作として機能するインタフェイスを提供しており、Work with chartsセクションやBacktesting in GUI modeセクションで例題を見つけて欲しい。
Go to Use in Eclipse or Use in NetBeans to download the SDK with examples and get started.
例題としてSDKをダウンロードするのに、Use in Eclipse、又はUse in NetBeansに向かい、すぐに始めて欲しい。

2013年5月31日金曜日

PrimeFacesでのテーマ追加

PrimeFacesでテーマをデフォルトから変更する方法を探したら、
その方法を説明したページがあったので記録しておく。
[参考]
Themes
http://www.primefaces.org/themes.html

で、具体的には…
1.まず、使いたいテーマのJARファイルをダウンロードする。
2.次に、web.xmlのコンテキストパラムにprimefaces.THEMEというパラメータを追加して、テーマ名を設定する。

Installation
インスタレーション
Applying a theme from Theme Gallery to your PrimeFaces project is very easy, you just need to download the theme jar, add it your classpath and configure PrimeFaces to use it.
テーマギャラリからのテーマをあなたのPrimeFacesプロジェクトに適用するのは、とても簡単で、テーマのJARをダウンロードし、それをクラスパスに追加して、PrimeFacesがそれを使うように設定すればよい。

1) You can either download the theme manually from repository or using maven.
1) あなたはテーマを手動か、mavenを使ったレポジトリからダウンロードすることができる。

Manual Download
手動のダウンロード

PrimeFaces themes are bundled as jar files available at PrimeFaces Repository.
PrimeFacesテーマはPrimeFacesレポジトリにJARファイルとしてバンドルされている。

2) Next and final step is setting primefaces.
2) 次に最後のステップはprimefacesの設定である。
THEME parameter with the theme name, note that you can also use an EL expression for dynamic themes.
テーマ名を伴ったTHEMEパラメータで、あなたはまたダイナミックテーマの為にEL式を使うことができるのに注目して欲しい。

<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>bootstrap</param-value>
</context-param>

2013年4月23日火曜日

JBoss7にJSF1.2をデプロイする

JBoss7のGateInに、JSF1.2のポートレットをデプロイしてアクセスすると、
必ずUnsupportedOperationExceptionが発生して動かない。

で、調べてみた処web.xmlにコンテキストパラメータを設定しないといけないようだ。

[参考ページ]
Deploying Simple JSF 1.2 application in jboss 7
https://community.jboss.org/thread/170729
Design of AS7 multi-JSF feature
https://community.jboss.org/wiki/DesignOfAS7Multi-JSFFeature
JBoss AS7 tips
http://www.liferay.com/ja/community/wiki/-/wiki/Main/JBoss+AS7+tips
JSF 1.2 in AS 7
JBoss AS7 comes with JSF 2.0 implementation. Still, you can enable JSF 1.2 very simply, by adding the following snipped in web.xml:
<context-param>
      <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
      <param-value>Mojarra-1.2</param-value>
</context-param>

Lastly, application do not need jsf implementation jars or jstl jars, as they are already available by JBoss AS7.

20130527 追記
ただし、使用可能なのはデフォルトのMojarra 1.2, Mojarra 2.0, MyFaces 2.0。
MyFaces 1.2以下はデフォルトではNGみたい。
Chapter 3. Deploying Your JSF Applications
http://docs.jboss.org/jbossas/6/JSF_Guide/en-US/html/jsf.deployer.config.html
JBoss AS ships with three JSF Implementations, Mojarra 1.2, Mojarra 2.0, and MyFaces 2.0.

ちなみにMyFacesの場合は、こんな感じ。
Tomcatアプリケーションで動かす場合でも、この設定が必要。
(JBoss7固有の方便が、Tomcatでも強制されるってのは非常に迷惑だと思うのだが…)
<context-param>
      <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
      <param-value>MyFaces-1.2</param-value>
</context-param>


20130527 追記
上記はOpenShiftのEWS(Tomcat7)上でTobagoを動作させるのに使用した設定。
JBoss7.1上ではNGかもしれない。
素朴にスンゴク迷惑千万なWEBコンテナに思えるのだが…。

[web.xml]

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>FileServlet</servlet-name>
<servlet-class>com.test.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>/FileServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/view.jsp</welcome-file>
</welcome-file-list>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<context-param>
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
<param-value>Mojarra-1.2</param-value>
</context-param>
</web-app>

2013年4月21日日曜日

JSFポートレット・ファイルアップロード

JSFのファイルアップロード方法を解説したページがあったのでここに載せておく。
JSF Portlet File Upload
https://jsfportletbridge.java.net/public/JSFPortletFileUpload.html

まだ試してないが、
たぶんサブミットのアクションリスナで実装するのだと思う。

JSFにはファイルアップロード機能が無いので、SpringをWEBフレームワークとして優先させてたけど、ファイルアップロードがOKならばハナシはチョット変わってくる。
(ただJSF的には亜流感がかなりあるように思うが…)

そもそも何故JSFは2.0になってもファイルアップロード機能がサポートされないのだろう?
と疑問に思う。
誰も必要としていないのだろうか?
それなら、このような解説ページができるワケが無いよね。
何故なのだろう?

JSF Portlet File Upload
JSFポートレット・ファイルアップロード
This uses Portlet Filter approach to provide File Upload functionality in JSF Portlet.
これはJSFポートレットの中にファイルアップロード機能を提供する為にポートレットフィルタを使用したアプローチである。
This provides a generic solution that works in all JSF Portlet Bridges and will work on portals that support JSR 286.
ここで提供するのは通常のソリューションであり、全JSFポートレットブリッジで機能し、JSR286をサポートするポータルで機能する。
Following are the steps to add fileupload functionality in your jsf portlet ( See the example jsf fileupload portlet that uses this functionality.)
下記に追記するのは、あなたのJSFポートレットの中にファイルアップロード機能を追加するステップである(JSFファイルアップロード・ポートレットの例でこの機能の使用を見て欲しい)。

1. Add the following JARs to the WEB-INF/lib of the jsf portlet webapp.The version numbers doesn't matter as long as you get the newest.
1.下記JARファイルをJSFポートレットwebappのWEB-INF/libに追加する。最新版を入手する限り、バージョン番号は重要ではない。
commons-fileupload-1.2.1-jar  (supports file upload capability for a portlet)
commons-fileupload-1.2.1-jar  (ポートレットのファイルアップロード機能をサポート)
commons-io-1.4-jar (required by commons-fileupload)
commons-io-1.4-jar (commons-fileuploadに必要)
portlet-fileupload-filter.jar (handles the portlet filter and the fileupload functionality and makes the org.apache.commons.fileupload.FileItem available as a request attribute, Source Code)
portlet-fileupload-filter.jar (ポートレットフィルタとファイルアップロード機能をハンドルし、org.apache.commons.fileupload.FileItemをリクエスト属性として有効にさせる, ソースコード)


2. Add the following portlet filter entry in the portlet.xml
2.portlet.xmlに下記ポートレットフィルタ・エントリを追加する。
<portlet-app ..... version='2.0'>
    <portlet>
        <portlet-name>name_of_the_portlet</portlet-name>
                ........
    </portlet>
    <filter>
        <filter-name>PortletFileUploadFilter</filter-name>
        <filter-class>com.sun.portlet.PortletFileUploadFilter</filter-class>
        <lifecycle>ACTION_PHASE</lifecycle>
    </filter>
    <filter-mapping>
        <filter-name>PortletFileUploadFilter</filter-name>
        <portlet-name>name_of_the_portlet</portlet-name>
    </filter-mapping>
</portlet-app>


3. Define the fileupload component in the JSF page (you will use the name to get FileItem from the request)
3.JSFページにファイルアップロード・コンポーネントを定義する (リクエストからFileItemを入手するのにnameを使用する)
<input type="file" name="name_of_the_component" />


4. After you submit the JSF page, you can obtain the org.apache.commons.fileupload.FileItem for the input file component from the PortletRequest as follows. Once you have access to FileItem you can get the name, the I/O stream of the uploaded file.
4.JSFページでサブミットした後、下記でポートレットリクエストからインプットファイル・コンポーネントのFileItemが使用可能になる。一度FileItemのアクセスを取得すれば、アップロードされたファイルからnameやI/Oストリームが取得できる。
FacesContext facesContext = FacesContext.getCurrentInstance();
PortletRequest portletRequest = (PortletRequest) facesContext.getExternalContext().getRequest();
FileItem fileItem = (FileItem)portletRequest.getAttribute("name_of_the_component");



2013年3月4日月曜日

JSR286ポートレット2.0CSS

CSS Style Definitions

To achieve a common look and feel throughout the portal page, all portlets in the portal page should use a common CSS style sheet when generating content.
5 This appendix defines styles for a variety of logical units in the markup.
It follows the style being considered by the OASIS Web Services for Remote Portlets Technical
Committee.

PLT.C.1 Links (Anchor)
A custom CSS class is not defined for A the tag.
The entity should use the default 10 classes when embedding anchor tags.

PLT.C.2 Fonts
The font style definitions affect the font attributes only (font face, size, color, style, etc).
Style Description Example 
portlet-font Font attributes for the “normal” fragment font. Normal Text
portlet-font-dim Font attributes similar to the .portlet.font but the color is lighter. Dim Text
If an portlet developer wants a certain font type to be larger or smaller, they should 15 indicate this using a relative size. For example:
<div class="portlet-font" style="font-size:larger">Important information</div>
<div class="portlet-font-dim" style="font-size:80%">Small and 20 dim</div>

PLT.C.3 Messages
Message style definitions affect the rendering of a paragraph (alignment, borders, background color, etc) as well as text attributes.
Style Description Example
portlet-msg-status Status of the current operation. Progress: 80%
portlet-msg-info Help messages, general additional information, etc. Info about
portlet-msg-error Error messages. Portlet not available
portlet-msg-alert Warning messages. Timeout occurred, try again later
portlet-msg-success Verification of the successful completion of a task. Operation completed successfully

PLT.C.4 Sections
5 Section style definitions affect the rendering of markup sections such as table, div and span (alignment, borders, background color, etc) as well as their text attributes.
Style Description
portlet-section-header Table or section header
portlet-section-body Normal text in a table cell
portlet-section-alternate Text in every other row in the cell
portlet-section-selected Text in a selected cell range
portlet-section-subheader Text of a subheading
portlet-section-footer Table or section footnote
portlet-section-text Text that belongs to the table but does not fall in one of the other categories (e.g. explanatory or help text that is associated with the section).

PLT.C.5 Tables
Table style definitions affect the rendering (i.e. alignment, borders, background color, etc.) as well as their text attributes.
Style Description
portlet-table-header Table header
portlet-table-body Normal text in a table cell
portlet-table-alternate Text in every other row in the table
portlet-table-selected Text in a selected cell range
portlet-table-subheader Text of a subheading
portlet-table-footer Table footer
portlet-table-text Text that belongs to the table but does not fall in one of the other categories (e.g. explanatory or help text that is associated with the table).

5 PLT.C.6 Forms
Form styles define the look-and-feel of the elements in an HTML form.
Style Description
portlet-form-label Text used for the descriptive label of the whole form
(not the labels for fields.
portlet-form-input-field Text of the user-input in an input field.
portlet-form-button Text on a button
portlet-icon-label Text that appears beside a context dependent action icon.
portlet-dlg-icon-label Text that appears beside a “standard” icon (e.g. Ok, or Cancel)
portlet-form-field-label Text for a separator of fields (e.g. checkboxes, etc.)
portlet-form-field Text for a field (not input field, e.g. checkboxes, etc)
portlet-form-field-label Text that appears beside a form field (e.g. input fields, checkboxes, etc.)
portlet-form-field Text for a field which is not input field (e.g. checkboxes, etc)

PLT.C.7 Menus
Menu styles define the look-and-feel of the text and background of a menu structure.
This structure may be embedded in the aggregated page or may appear as a context sensitive
5 popup menu.
Style Description
portlet-menu General menu settings such as background color, margins, etc
portlet-menu-item Normal, unselected menu item.
portlet-menu-item-selected Selected menu item.
portlet-menu-item-hover Normal, unselected menu item when the mouse hovers over it.
portlet-menu-item-hover-selected Selected menu item when the mouse hovers over it.
portlet-menu-cascade-item Normal, unselected menu item that has submenus.
portlet-menu-cascade-item-selected Selected sub-menu item that has sub-menus.
portlet-menu-cascade General sub-menu settings such as background color, margins, etc
portlet-menu-cascade-item A normal, unselected sub-menu item
portlet-menu-cascade-item-selected Selected sub-menu item
portlet-menu-cascade-item-hover Normal, unselected sub-menu item when the mouse hovers over it
portlet-menu-cascade-item-hoverselected Selected sub-menu item when the mouse hovers over it
portlet-menu-separator Separator between menu items
portlet-menu-cascade-separator Separator between sub-menu items
portlet-menu-content Content for a normal, unselected menu or sub-menu item
portlet-menu-content-selected Content for an selected menu or sub-menu item
portlet-menu-content-hover Content for an unselected menu or sub-menu item when the mouse hovers over it
portlet-menu-content-hover-selected Content for a selected menu or sub-menu item when the mouse hovers over it
portlet-menu-indicator Indicator that a menu item has an associated sub-menu
portlet-menu-indicator-selected Indicator when the associated menu item is selected
portlet-menu-indicator-hover Indicator when the associated menu item has the mouse hover over it
portlet-menu-indicator-hover-selected Indicator when the associated menu item is selected and has the mouse hover over it
portlet-menu-description Descriptive text for the menu (e.g. in a help context below the menu)
portlet-menu-caption Menu caption

2013年2月10日日曜日

「Deploying GateIn to OpenShift」の間違い点


OpenShiftのJBossにGateInをデプロイして実行させた結果、起動できず。
で、調べてみた処、standalone.xmlの設定が間違っていたので、修正して、なんとか起動できた。
その報告を書いておく。
[参考ページ]
Deploying GateIn to OpenShift
https://community.jboss.org/wiki/DeployingGateInToOpenShift

間違っていた箇所は3箇所。
間違っていた箇所は4箇所。(20130520)
1つ目は、環境変数の指定。
2つ目は、TCPPINGのinitial_hostsプロパティの指定。
3つ目は、AUTHのauth_valueプロパティの指定。
4つ目は、.openshift/config/modules/org/jboss/as/webの作成とモジュールのコピー。(20130520)

1.環境変数の指定
参考ページによると、「standalone.xmlをダウンロードして、修正しろ」ってことだった。
で、そのstandalone.xmlは現状、こんな内容。
<system-properties>
 <property name="exo.conf.dir" value="/var/lib/stickshift/${USER_ID}/${APP_NAME}/jbossas-7/standalone/configuration/gatein" />
 <property name="gatein.conf.dir" value="/var/lib/stickshift/${USER_ID}/${APP_NAME}/jbossas-7/standalone/configuration/gatein" />
 <property name="exo.conf.dir.name" value="gatein" />
</system-properties>
この${USER_ID}を自分にユーザ名に変更しろってのはOK。
だが${APP_NAME}を"portal"に変更しろってのは間違い。
本当は"jbossas-7"に変更しなければいけない。
あと、パスの一部にある"stickshift"も間違いで、本当は"openshift"に変更しなければいけない。
よって、正しい内容は下記になる。
<system-properties>
 <property name="exo.conf.dir" value="/var/lib/openshift/ユーザー名/jbossas-7/jbossas-7/standalone/configuration/gatein" />
 <property name="gatein.conf.dir" value="/var/lib/openshift/ユーザー名/jbossas-7/jbossas-7/standalone/configuration/gatein" />
 <property name="exo.conf.dir.name" value="gatein" />
</system-properties>
(20130520)環境変数を使用した設定に変更。
<system-properties>
 <property name="exo.conf.dir" value="${env.JBOSS_HOME}/standalone/configuration/gatein" />
 <property name="gatein.conf.dir" value="${env.JBOSS_HOME}/standalone/configuration/gatein" />
 <property name="exo.conf.dir.name" value="gatein" />
</system-properties>


2.TCPPINGのinitial_hostsプロパティの指定。
ダウンロードしたstandalone.xmlは現状、こんな内容。
<protocol type="TCPPING">
<property name="timeout">3000</property>
<property name="initial_hosts">${env.OPENSHIFT_JBOSS_CLUSTER}</property>
<property name="port_range">0</property>
<property name="num_initial_members">1</property>
</protocol>
この${env.OPENSHIFT_JBOSS_CLUSTER}は間違いで、正しくは${env.OPENSHIFT_JBOSSAS_CLUSTER}。
よって、正しい内容は下記になる。
<protocol type="TCPPING">
 <property name="timeout">3000</property>
 <property name="initial_hosts">${env.OPENSHIFT_JBOSSAS_CLUSTER}</property>
 <property name="port_range">0</property>
 <property name="num_initial_members">1</property>
</protocol>

3.AUTHのauth_valueプロパティの指定
これも上記同様${env.OPENSHIFT_JBOSS_CLUSTER}は間違いで、正しくは${env.OPENSHIFT_JBOSSAS_CLUSTER}。
よって、正しい内容は下記になる。
<protocol type="AUTH">
 <property name="auth_class">org.jgroups.auth.MD5Token</property>
 <property name="token_hash">SHA</property>
 <property name="auth_value">${env.OPENSHIFT_JBOSSAS_CLUSTER}</property>
</protocol>

4..openshift/config/modules/org/jboss/as/webの作成とモジュールのコピー。
説明ページでは、
We also have to override org.jboss.as.web module, by adding a dependency into its modules.xml file. We just copy the whole patched-up module:
mkdir -p .openshift/config/modules/org/jboss/as/web
cp -r ../GateIn-3.2.0.Final-jbossas7-preview/modules/org/jboss/as/web .openshift/config/modules/org/jboss/as
とあるが、これは現在のOpenShiftバージョンでは不要

というか禁止
これやると起動できない。

その他にも、${env.OPENSHIFT_DB_HOST}:${env.OPENSHIFT_DB_PORT}など、修正が必要になる箇所が多数あるようす。
何せ、古いstandalone.xmlを使ってるもんだからね。

(20130520)今回使用したstandalone.xml
OpenShiftのデフォルトxmlに、GateInの設定を追加(したつもり)。
[standalone.xml]
<?xml version='1.0' encoding='UTF-8'?>

<server xmlns="urn:jboss:domain:1.1">

<extensions>
<extension module="org.jboss.as.clustering.infinispan" />
<extension module="org.jboss.as.clustering.jgroups" />
<extension module="org.jboss.as.cmp" />
<extension module="org.jboss.as.configadmin" />
<extension module="org.jboss.as.connector" />
<extension module="org.jboss.as.deployment-scanner" />
<extension module="org.jboss.as.ee" />
<extension module="org.jboss.as.ejb3" />
<extension module="org.jboss.as.jacorb" />
<extension module="org.jboss.as.jaxr" />
<extension module="org.jboss.as.jaxrs" />
<extension module="org.jboss.as.jdr" />
<extension module="org.jboss.as.jmx" />
<extension module="org.jboss.as.jpa" />
<extension module="org.jboss.as.jsr77" />
<extension module="org.jboss.as.logging" />
<extension module="org.jboss.as.mail" />
<extension module="org.jboss.as.messaging" />
<extension module="org.jboss.as.naming" />
<extension module="org.jboss.as.osgi" />
<extension module="org.jboss.as.pojo" />
<extension module="org.jboss.as.remoting" />
<extension module="org.jboss.as.sar" />
<extension module="org.jboss.as.security" />
<extension module="org.jboss.as.threads" />
<extension module="org.jboss.as.transactions" />
<extension module="org.jboss.as.web" />
<extension module="org.jboss.as.webservices" />
<extension module="org.jboss.as.weld" />
<extension module="org.gatein" />
</extensions>

<system-properties>
<property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION"
value="on" />
<property name="exo.conf.dir"
value="${env.JBOSS_HOME}/standalone/configuration/gatein" />
<property name="gatein.conf.dir"
value="${env.JBOSS_HOME}/standalone/configuration/gatein" />
<property name="exo.conf.dir.name" value="gatein" />
</system-properties>

<management>
<management-interfaces>
<native-interface>
<socket-binding native="management-native" />
</native-interface>
<http-interface>
<socket-binding http="management-http" />
</http-interface>
</management-interfaces>
</management>

<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<!--console-handler name="CONSOLE"> <level name="INFO"/> <formatter> <pattern-formatter
pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler -->
<periodic-rotating-file-handler name="FILE">
<formatter>
<pattern-formatter
pattern="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n" />
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log" />
<suffix value=".yyyy-MM-dd" />
<append value="true" />
</periodic-rotating-file-handler>
<logger category="com.arjuna">
<level name="WARN" />
</logger>
<logger category="org.apache.tomcat.util.modeler">
<level name="WARN" />
</logger>
<logger category="sun.rmi">
<level name="WARN" />
</logger>
<logger category="jacorb">
<level name="WARN" />
</logger>
<logger category="jacorb.config">
<level name="ERROR" />
</logger>
<root-logger>
<level name="INFO" />
<handlers>
<!--handler name="CONSOLE"/ -->
<handler name="FILE" />
</handlers>
</root-logger>
</subsystem>
<subsystem xmlns="urn:jboss:domain:cmp:1.0" />
<subsystem xmlns="urn:jboss:domain:configadmin:1.0" />
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS"
enabled="true" use-java-context="true" pool-name="H2DS">
<connection-url>jdbc:h2:${jboss.server.data.dir}/test;DB_CLOSE_DELAY=-1
</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:jboss/datasources/MysqlDS"
enabled="${mysql.enabled}" use-java-context="true" pool-name="MysqlDS"
use-ccm="true">
<connection-url>jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/${env.OPENSHIFT_APP_NAME}
</connection-url>
<driver>mysql</driver>
<security>
<user-name>${env.OPENSHIFT_MYSQL_DB_USERNAME}</user-name>
<password>${env.OPENSHIFT_MYSQL_DB_PASSWORD}</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<background-validation>true</background-validation>
</validation>
<pool>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
</datasource>
<datasource jndi-name="java:jboss/datasources/PostgreSQLDS"
enabled="${postgresql.enabled}" use-java-context="true" pool-name="PostgreSQLDS"
use-ccm="true">
<connection-url>jdbc:postgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.OPENSHIFT_POSTGRESQL_DB_PORT}/${env.OPENSHIFT_APP_NAME}
</connection-url>
<driver>postgresql</driver>
<security>
<user-name>${env.OPENSHIFT_POSTGRESQL_DB_USERNAME}</user-name>
<password>${env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<background-validation>true</background-validation>
</validation>
<pool>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource
</xa-datasource-class>
</driver>
<driver name="mysql" module="com.mysql.jdbc">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
</xa-datasource-class>
</driver>
<driver name="postgresql" module="org.postgresql.jdbc">
<xa-datasource-class>org.postgresql.xa.PGXADataSource
</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
<deployment-scanner path="deployments"
relative-to="jboss.server.base.dir" scan-interval="5000"
deployment-timeout="300" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:ee:1.0" />
<subsystem xmlns="urn:jboss:domain:ejb3:1.2">
<session-bean>
<stateless>
<bean-instance-pool-ref pool-name="slsb-strict-max-pool" />
</stateless>
<stateful default-access-timeout="5000" cache-ref="simple"
clustered-cache-ref="clustered" />
<singleton default-access-timeout="5000" />
</session-bean>
<mdb>
<resource-adapter-ref resource-adapter-name="hornetq-ra" />
<bean-instance-pool-ref pool-name="mdb-strict-max-pool" />
</mdb>
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool"
max-pool-size="20" instance-acquisition-timeout="5"
instance-acquisition-timeout-unit="MINUTES" />
<strict-max-pool name="mdb-strict-max-pool"
max-pool-size="20" instance-acquisition-timeout="5"
instance-acquisition-timeout-unit="MINUTES" />
</bean-instance-pools>
</pools>
<caches>
<cache name="simple" aliases="NoPassivationCache" />
<cache name="passivating" passivation-store-ref="file"
aliases="SimpleStatefulCache" />
<cache name="clustered" passivation-store-ref="infinispan"
aliases="StatefulTreeCache" />
</caches>
<passivation-stores>
<file-passivation-store name="file" />
<cluster-passivation-store name="infinispan"
cache-container="ejb" />
</passivation-stores>
<async thread-pool-name="default" />
<timer-service thread-pool-name="default">
<data-store path="timer-service-data" relative-to="jboss.server.data.dir" />
</timer-service>
<remote connector-ref="remoting-connector" thread-pool-name="default" />
<thread-pools>
<thread-pool name="default">
<max-threads count="10" />
<keepalive-time time="100" unit="milliseconds" />
</thread-pool>
</thread-pools>
<!--iiop enable-by-default="false" use-qualified-name="false"/ -->
</subsystem>
<subsystem xmlns="urn:jboss:domain:infinispan:1.1"
default-cache-container="cluster">
<cache-container name="cluster" aliases="ha-partition"
default-cache="default">
<transport lock-timeout="60000" />
<replicated-cache name="default" mode="SYNC"
batching="true">
<locking isolation="REPEATABLE_READ" />
</replicated-cache>
</cache-container>
<cache-container name="web" aliases="standard-session-cache"
default-cache="repl">
<transport lock-timeout="60000" />
<replicated-cache name="repl" mode="ASYNC"
batching="true">
<file-store />
</replicated-cache>
<replicated-cache name="sso" mode="SYNC" batching="true" />
<distributed-cache name="dist" mode="ASYNC"
batching="true">
<file-store />
</distributed-cache>
</cache-container>
<cache-container name="ejb" aliases="sfsb sfsb-cache"
default-cache="repl">
<transport lock-timeout="60000" />
<replicated-cache name="repl" mode="ASYNC"
batching="true">
<eviction strategy="LRU" />
<file-store />
</replicated-cache>
<!-- Clustered cache used internally by EJB subsytem for managing the
client-mapping(s) of the socketbinding referenced by the EJB remoting connector -->
<replicated-cache name="remote-connector-client-mappings"
mode="SYNC" batching="true" />
<distributed-cache name="dist" mode="ASYNC"
batching="true">
<eviction strategy="LRU" />
<file-store />
</distributed-cache>
</cache-container>
<cache-container name="hibernate" default-cache="local-query">
<transport lock-timeout="60000" />
<local-cache name="local-query">
<transaction mode="NONE" />
<eviction strategy="LRU" max-entries="10000" />
<expiration max-idle="100000" />
</local-cache>
<invalidation-cache name="entity" mode="SYNC">
<transaction mode="NON_XA" />
<eviction strategy="LRU" max-entries="10000" />
<expiration max-idle="100000" />
</invalidation-cache>
<replicated-cache name="timestamps" mode="ASYNC">
<transaction mode="NONE" />
<eviction strategy="NONE" />
</replicated-cache>
</cache-container>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jacorb:1.1">
<orb>
<initializers transactions="spec" security="on" />
</orb>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jaxr:1.0">
<connection-factory jndi-name="java:jboss/jaxr/ConnectionFactory" />
<juddi-server publish-url="http://${env.OPENSHIFT_JBOSSAS_IP}:8080/juddi/publish"
query-url="http://${env.OPENSHIFT_JBOSSAS_IP}:8080/juddi/query" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0" />
<subsystem xmlns="urn:jboss:domain:jca:1.1">
<archive-validation enabled="true" fail-on-error="true"
fail-on-warn="false" />
<bean-validation enabled="false" />
<default-workmanager>
<short-running-threads>
<core-threads count="10" />
<queue-length count="10" />
<max-threads count="10" />
<keepalive-time time="10" unit="seconds" />
</short-running-threads>
<long-running-threads>
<core-threads count="10" />
<queue-length count="10" />
<max-threads count="10" />
<keepalive-time time="10" unit="seconds" />
</long-running-threads>
</default-workmanager>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jdr:1.0" />
<subsystem xmlns="urn:jboss:domain:jgroups:1.0"
default-stack="tcp">
<stack name="tcp">
<transport type="TCP" socket-binding="jgroups-tcp">
<property name="external_addr">${env.OPENSHIFT_GEAR_DNS}</property>
<property name="external_port">${env.OPENSHIFT_JBOSSAS_CLUSTER_PROXY_PORT}
</property>
<property name="bind_port">7600</property>
<property name="bind_addr">${env.OPENSHIFT_JBOSSAS_IP}</property>
<property name="defer_client_bind_addr">true</property>
</transport>
<protocol type="TCPPING">
<property name="timeout">30000</property>
<property name="initial_hosts">${env.OPENSHIFT_JBOSSAS_CLUSTER}</property>
<property name="port_range">0</property>
<property name="num_initial_members">1</property>
</protocol>
<protocol type="MERGE2" />
<protocol type="FD" />
<protocol type="VERIFY_SUSPECT" />
<protocol type="BARRIER" />
<protocol type="pbcast.NAKACK" />
<protocol type="UNICAST2" />
<protocol type="pbcast.STABLE" />
<protocol type="AUTH">
<property name="auth_class">org.jgroups.auth.MD5Token</property>
<property name="token_hash">SHA</property>
<property name="auth_value">${env.OPENSHIFT_APP_UUID}</property>
</protocol>
<protocol type="pbcast.GMS" />
<protocol type="UFC" />
<protocol type="MFC" />
<protocol type="FRAG2" />
<!--protocol type="pbcast.STATE_TRANSFER"/> <protocol type="pbcast.FLUSH"/ -->
</stack>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jmx:1.1">
<show-model value="true" />
<remoting-connector />
</subsystem>
<subsystem xmlns="urn:jboss:domain:jpa:1.0">
<jpa default-datasource="" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:jsr77:1.0" />
<subsystem xmlns="urn:jboss:domain:mail:1.0">
<mail-session jndi-name="java:jboss/mail/Default">
<smtp-server outbound-socket-binding-ref="mail-smtp" />
</mail-session>
</subsystem>
<subsystem xmlns="urn:jboss:domain:messaging:1.1">
<hornetq-server>
<clustered>true</clustered>
<persistence-enabled>true</persistence-enabled>
<!--security-domain>messaging</security-domain -->
<security-enabled>false</security-enabled>
<journal-file-size>102400</journal-file-size>
<journal-min-files>2</journal-min-files>

<thread-pool-max-size>${messaging.thread.pool.max.size}
</thread-pool-max-size>
<scheduled-thread-pool-max-size>${messaging.scheduled.thread.pool.max.size}
</scheduled-thread-pool-max-size>

<connectors>
<netty-connector name="netty" socket-binding="messaging" />
<netty-connector name="netty-throughput"
socket-binding="messaging-throughput">
<param key="batch-delay" value="50" />
</netty-connector>
<in-vm-connector name="in-vm" server-id="0" />
</connectors>

<acceptors>
<netty-acceptor name="netty" socket-binding="messaging" />
<netty-acceptor name="netty-throughput"
socket-binding="messaging-throughput">
<param key="batch-delay" value="50" />
<param key="direct-deliver" value="false" />
</netty-acceptor>
<in-vm-acceptor name="in-vm" server-id="0" />
</acceptors>

<!--broadcast-groups> <broadcast-group name="bg-group1"> <group-address>231.7.7.7</group-address>
<group-port>9876</group-port> <broadcast-period>5000</broadcast-period> <connector-ref>
netty </connector-ref> </broadcast-group> </broadcast-groups> <discovery-groups>
<discovery-group name="dg-group1"> <group-address>231.7.7.7</group-address>
<group-port>9876</group-port> <refresh-timeout>10000</refresh-timeout> </discovery-group>
</discovery-groups> <cluster-connections> <cluster-connection name="my-cluster">
<address>jms</address> <connector-ref>netty</connector-ref> <discovery-group-ref
discovery-group-name="dg-group1"/> </cluster-connection> </cluster-connections -->

<!--security-settings> <security-setting match="#"> <permission type="send"
roles="guest"/> <permission type="consume" roles="guest"/> <permission type="createNonDurableQueue"
roles="guest"/> <permission type="deleteNonDurableQueue" roles="guest"/>
</security-setting> </security-settings -->

<address-settings>
<address-setting match="#">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<address-full-policy>BLOCK</address-full-policy>
<message-counter-history-day-limit>10
</message-counter-history-day-limit>
<redistribution-delay>1000</redistribution-delay>
</address-setting>
</address-settings>

<jms-connection-factories>
<connection-factory name="InVmConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm" />
</connectors>
<entries>
<entry name="java:/ConnectionFactory" />
</entries>
</connection-factory>
<connection-factory name="RemoteConnectionFactory">
<connectors>
<connector-ref connector-name="netty" />
</connectors>
<entries>
<entry name="RemoteConnectionFactory" />
<entry name="java:jboss/exported/jms/RemoteConnectionFactory" />
</entries>
</connection-factory>
<pooled-connection-factory name="hornetq-ra">
<transaction mode="xa" />
<connectors>
<connector-ref connector-name="in-vm" />
</connectors>
<entries>
<entry name="java:/JmsXA" />
</entries>
</pooled-connection-factory>
</jms-connection-factories>

<jms-destinations>
<jms-queue name="testQueue">
<entry name="queue/test" />
<entry name="java:jboss/exported/jms/queue/test" />
</jms-queue>
<jms-topic name="testTopic">
<entry name="topic/test" />
<entry name="java:jboss/exported/jms/topic/test" />
</jms-topic>
</jms-destinations>
</hornetq-server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:naming:1.1" />
<subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">
<properties>
<!-- Specifies the beginning start level of the framework -->
<property name="org.osgi.framework.startlevel.beginning">1</property>
</properties>
<capabilities>
<!-- modules registered with the OSGi layer on startup -->
<capability name="javax.servlet.api:v25" />
<capability name="javax.transaction.api" />
<!-- bundles started in startlevel 1 -->
<capability name="org.apache.felix.log" startlevel="1" />
<capability name="org.jboss.osgi.logging" startlevel="1" />
<capability name="org.apache.felix.configadmin"
startlevel="1" />
<capability name="org.jboss.as.osgi.configadmin"
startlevel="1" />
</capabilities>
</subsystem>
<subsystem xmlns="urn:jboss:domain:pojo:1.0" />
<subsystem xmlns="urn:jboss:domain:remoting:1.1">
<connector name="remoting-connector" socket-binding="remoting" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0" />
<subsystem xmlns="urn:jboss:domain:sar:1.0" />
<subsystem xmlns="urn:jboss:domain:security:1.1">
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="UsersRoles" flag="required" />
</authentication>
</security-domain>
<security-domain name="jboss-web-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required" />
</authorization>
</security-domain>
<security-domain name="jboss-ejb-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required" />
</authorization>
</security-domain>
<security-domain name="messaging" cache-type="default">
<authentication>
<login-module code="UsersRoles" flag="required">
<module-option name="usersProperties"
value="${jboss.server.config.dir}/application-users.properties" />
<module-option name="rolesProperties"
value="${jboss.server.config.dir}/application-roles.properties" />
</login-module>
</authentication>
</security-domain>
<security-domain name="gatein-domain" cache-type="default">
<authentication>
<login-module code="org.gatein.wci.security.WCILoginModule"
flag="optional">
<module-option name="portalContainerName" value="portal" />
<module-option name="realmName" value="gatein-domain" />
</login-module>
<login-module
code="org.exoplatform.services.security.jaas.SharedStateLoginModule"
flag="required">
<module-option name="portalContainerName" value="portal" />
<module-option name="realmName" value="gatein-domain" />
</login-module>
<login-module
code="org.exoplatform.services.security.j2ee.JbossLoginModule"
flag="required">
<module-option name="portalContainerName" value="portal" />
<module-option name="realmName" value="gatein-domain" />
</login-module>
</authentication>
</security-domain>
</security-domains>
</subsystem>
<subsystem xmlns="urn:jboss:domain:threads:1.1" />
<subsystem xmlns="urn:jboss:domain:transactions:1.1">
<core-environment>
<process-id>
<uuid />
</process-id>
</core-environment>
<recovery-environment socket-binding="txn-recovery-environment"
status-socket-binding="txn-status-manager" />
<coordinator-environment default-timeout="300" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:web:1.1"
default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http"
socket-binding="http" />
<virtual-server name="default-host"
enable-welcome-root="false">
<alias name="localhost" />
</virtual-server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:webservices:1.1">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>${env.OPENSHIFT_GEAR_DNS}</wsdl-host>
<wsdl-port>80</wsdl-port>
<endpoint-config name="Standard-Endpoint-Config" />
<endpoint-config name="Recording-Endpoint-Config">
<pre-handler-chain name="recording-handlers"
protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
<handler name="RecordingHandler"
class="org.jboss.ws.common.invocation.RecordingServerHandler" />
</pre-handler-chain>
</endpoint-config>
</subsystem>
<subsystem xmlns="urn:jboss:domain:weld:1.0" />
<subsystem xmlns="urn:jboss:domain:gatein:1.0">
<deployment-archives>
<archive name="gatein.ear" main="true" />
</deployment-archives>
</subsystem>
</profile>

<interfaces>
<interface name="management">
<loopback-address value="${env.OPENSHIFT_JBOSSAS_IP}" />
</interface>
<interface name="public">
<loopback-address value="${env.OPENSHIFT_JBOSSAS_IP}" />
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standarad configuration. To secure JacORB
you need to setup SSL -->
<loopback-address value="${env.OPENSHIFT_JBOSSAS_IP}" />
</interface>
</interfaces>

<socket-binding-group name="standard-sockets"
default-interface="public" port-offset="0">
<socket-binding name="http" port="8080" />
<socket-binding name="jacorb" interface="unsecure"
port="3528" />
<socket-binding name="jacorb-ssl" interface="unsecure"
port="3529" />
<socket-binding name="jgroups-tcp" port="7600" />
<socket-binding name="management-native" interface="management"
port="9999" />
<socket-binding name="management-http" interface="management"
port="9990" />
<socket-binding name="messaging" port="5445" />
<socket-binding name="messaging-throughput" port="5455" />
<socket-binding name="osgi-http" interface="management"
port="8090" />
<socket-binding name="remoting" port="4447" />
<socket-binding name="txn-recovery-environment" port="4712" />
<socket-binding name="txn-status-manager" port="4713" />
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25" />
</outbound-socket-binding>
</socket-binding-group>
</server>