Alfresco Community Edition 7.xの開発環境にJavaScript Consoleをインストールする方法 - Alfresco Community Edition 7.xの開発環境にJavaScript Consoleをインストールする方法 - aegif Labo Blog Alfresco
null Alfresco Community Edition 7.xの開発環境にJavaScript Consoleをインストールする方法
今回はAlfresco Community Edition 7.xの開発環境にJavaScript Consoleをインストールする方法についてご紹介します。6.xの開発環境でのインストール方法については過去のブログ(Alfresco SDK 4.1の開発環境にJavaScript Consoleをインストールする方法)をご参照ください。(こちらの方法は7.xではエラーとなります)
使用する開発環境の構築
まず、過去のブログ(Alfresco SDK 4.2で開発環境を構築する方法)を参考にalfresco-allinone-archetypeのプロジェクトを作成してください。こちらの記事中では使用するSDKバージョンの選択肢が 15: 4.2.0
までとなっていますが、現在は16: 4.3.0
が追加されています。SDK 4.2のバグ修正やAlfresco Community Edition 7.1への対応などが行われていますので、基本的には16
を選択しSDK 4.3を使用してください。なお、SDK 4.2で発生していた以下のエラーは4.3ではpom.xmlを修正しなくても発生しません。
ERROR [component.jms.DefaultJmsMessageListenerContainer] [Camel (alfrescoCamelContext) thread #1 - JmsConsumer[acs-repo-rendition-events]] Could not refresh JMS Connection for destination 'acs-repo-rendition-events' - retrying using FixedBackOff{interval=5000, currentAttempts=22, maxAttempts=unlimited}. Cause: Error while attempting to add new Connection to the pool; nested exception is javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Transport scheme NOT recognized: [vm]
プロジェクト作成後、./run.sh build_start
でコンテナを起動して、ブラウザから http://localhost:8180/share を開いて正常に起動できていることが確認できたら、一旦 ./run.sh stop
でコンテナを停止します。
JavaScript ConsoleのAMPファイル準備
JavaScript Consoleのgithubプロジェクトの最新版は、Alfresco Community Edition 7.xでエラーとならないように修正が行われていますので、こちらを使用します。前のバージョンと異なりmavenからインストールできないため、以下の手順によりgithubからソースコードのダウンロード、ビルドを行い、AMPファイル(Alfresco Module Package)を用意する必要があります。
- JavaScript Consoleのプロジェクトをクローンし、作成されたディレクトリに移動します。
git clone https://github.com/share-extras/js-console.git cd js-console
- mavenのpackageコマンドを実行します。
mvn package
javascript-console-repo/target/
にjavascript-console-repo-0.7-SNAPSHOT.amp
が、javascript-console-share/target/
にjavascript-console-share-0.7-SNAPSHOT.amp
が作成されていることを確認します。
作成したAMPファイルの導入
以下の手順により、作成したAMPファイルを使用する開発環境に導入します。
- 使用する開発環境のルートディレクトリ(プロジェクト作成時に入力したartifactIdと同名のディレクトリ)に移動します
- 以下の通り、AMPファイルを保管するためのディレクトリを作成します。
mkdir {artifactId}-platform-docker/src/main/docker/extensions mkdir {artifactId}-share-docker/src/main/docker/extensions
- 作成した各ampファイルを、以下のディレクトリにコピーします。
- javascript-console-repo-0.7-SNAPSHOT.amp: {artifactId}-platform-docker/src/main/docker/extensions/
- javascript-console-share-0.7-SNAPSHOT.amp: {artifactId}-share-docker/src/main/docker/extensions/
- {artifactId}-platform-docker/pom.xmlを、以下の通り修正します。
<!--前略(79行目から)--> <!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-and-filter-docker-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/docker</directory> <filtering>true</filtering> <excludes> <exclude>**/*.jar</exclude> <exclude>**/*.so</exclude> <exclude>**/*.gz</exclude> <exclude>**/*.amp</exclude> <!--追加--> </excludes> </resource> </resources> </configuration> </execution> <execution> <id>copy-and-filter-docker-resources-non-filtered</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/docker</directory> <filtering>false</filtering> <includes> <include>**/*.jar</include> <include>**/*.so</include> <include>**/*.gz</include> <include>**/*.amp</include> <!--追加--> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <!--後略-->
- {artifactId}-share-docker/pom.xmlを、以下の通り修正します。
<!--前略(48行目から)--> <!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-and-filter-docker-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/docker</directory> <filtering>true</filtering> <excludes> <!--追加--> <exclude>**/*.amp</exclude> <!--追加--> </excludes> <!--追加--> </resource> </resources> </configuration> </execution> <execution> <!--追加--> <id>copy-and-filter-docker-resources-non-filtered</id> <!--追加--> <phase>validate</phase> <!--追加--> <goals> <!--追加--> <goal>copy-resources</goal> <!--追加--> </goals> <!--追加--> <configuration> <!--追加--> <outputDirectory>${project.build.directory}</outputDirectory> <!--追加--> <resources> <!--追加--> <resource> <!--追加--> <directory>src/main/docker</directory> <!--追加--> <filtering>false</filtering> <!--追加--> <includes> <!--追加--> <include>**/*.amp</include> <!--追加--> </includes> <!--追加--> </resource> <!--追加--> </resources> <!--追加--> </configuration> <!--追加--> </execution> <!--追加--> </executions> </plugin> <!--後略-->
./run.sh build_start
でコンテナを起動し、Shareにadminでログインして管理ツールにJavaScript Consoleがインストールされていることを確認します
今回の内容は以上となります。JavaScript ConsoleはOSSとして開発されていますが、元々の開発グループは活動を停止しており、現在は別のグループへの移行が進められているようです。移行が終わるまではmavenが使用できないため手順が少し複雑になってしまいますが、Alfresco 7.0以降を開発する際にはぜひ試してみてください。また進展があれば改めてご紹介します。