Monday, December 5, 2016

Alfresco Community 5.1, 5.2でalfresco-sdkを使ってmavenビルドする際の注意点

こんにちは。大谷です。

先日Alfresco Community 5.1.gでビルド環境を作る際にハマりポイントがあったので、備忘代わりにブログエントリをば。

バージョン番号が違う?


「Alfresco SDK 2.2でJARパッケージの拡張モジュールを作る」などのエントリを参考にしてalfresco-sdkベースのmavenビルド環境を作ったのですが、おなしな状況が発生しました。

pom.xmlの alfresco.version 5.1.g(記事執筆現在の最新のGA版)として、 mvn integration-test -Prun でカスタムモジュールのビルドとテストサーバ起動を行いました。いざ http://localhost:8080/alfresco/ にアクセスしてみると、なんかバージョン番号がおかしい…なんと「Community - 5.2.0 (r128301-b8)」と表示されました。

5.1.gと指定してビルドしてるはずなのに何故か5.2.0...

念のためインストーラインストールの5.1.g(201605-GA)を確認すると「Community - 5.1.0 (r127059-b7)」と表示されるので、mavenビルド環境に何か問題がありそうです(なお、schema番号も10,003と10,001で異なります)。

原因と解決方法は…


Alfrescoのドキュメントをよく読んでみると、原因と解決方法が書いてありました。結論から言うと、alfresco.warのartifactIdが変わったことが原因でした。

Alfresco Documentationのこの記事によれば、Alfresco Community 5.1.e以降ではalfresco.warのartifactIdが旧来の"alfresco"から"alfresco-platform"に変わったようです。pom.xmlのpropertiesタグ内に <alfresco.repo.artifactId>alfresco-platform</alfresco.repo.artifactId> と追記することで対応できます。

    <properties>
        <!-- The following are default values for data location and Alfresco Community version.
             Uncomment if you need to change (Note. current default version for Enterprise edition is 5.0.1)
-->
          <alfresco.version>5.1.g</alfresco.version>
          <alfresco.repo.artifactId>alfresco-platform</alfresco.repo.artifactId>
<!--
          <alfresco.data.location>alf_data_dev</alfresco.data.location> -->

        <!-- This control the root logging level for all apps uncomment and change, defaults to WARN
            <app.log.root.level>WARN</app.log.root.level>
        -->

        <!-- Set the enviroment to use, this controls which properties will be picked in src/test/properties
             for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
        <env>local</env>
        -->
    </properties>

pom.xmlの設定を上記のように変更してリビルドすると、以下のように5.1.gの適切なバージョン番号 が表示されるようになるかと思います。

5.1.gの場合の正しいバージョン番号はこれ

5.1系、5.2系でalfresco-sdkを使って開発を進める際にはご注意ください。

Thursday, December 1, 2016

Alfresco勉強会#36 Alfresco 5でカスタムREST APIを作ってみよう

こんにちは。おおたにです。

2016年11月30日(水)に弊社オフィスで開催された第36回Alfresco勉強会で、「Alfresco 5でカスタムREST APIを作ってみよう」という発表をしました。なお、もう1本の発表は「Google Docs連携の機能のご紹介」というタイトルで、Google Docsを使ってオンライン編集し、保存時にはAlfrescoに直接書き戻す連携方法が紹介されました。

なお、今回一番のトピックは、参加者が14人と過去最高を記録したことかと思います(パチパチ)。参加者が集まるようになって純粋に嬉しい反面、開催スペースが手狭でご不便をおかけしてしまいました。

さて本題ですが、Alfrescoはコア機能のほとんどをREST APIという形で外部から利用可能になっています。Spring Web Scriptsというフレームワークを使って実現しているのですが、そのWeb Scripts自体の簡単な説明と、Web Scriptsを使ったREST APIの追加方法を簡単に紹介しました。



資料でも紹介していますが、以下の3ステップで簡単にREST APIの追加ができます。
  1. 定義ファイル(xml)、ロジック(JavaScriptもしくはJavaで記述)、レスポンス生成用テンプレート(ftl)の3つを作る
  2. 所定の場所に格納する
  3. Web Scriptsをリフレッシュする

想像よりだいぶ簡単にできると思いますので、興味のある方は是非チャレンジしてみてください。
例えば以下のような場合には、必要なロジックを実装したカスタムREST APIを実装するメリットがあると思います。
  • 外部システムと連携したいけど期待される処理が実装されたREST APIが無い
  • 複数のREST APIを順次呼ぶような連携方式になってしまう

というわけで、次回Alfresco勉強会は2017年1月25日(水)になります。興味のある方はconnpass上のイベントから参加登録をお願いします。

また、Alfrescoの基本的な使い方や機能を知りたい、という方向けに「OSSドキュメント管理Alfrescoセミナー :  導入からチームコラボレーションの設定まで」というセミナーを定期開催しています。こちらの方が体系だったAlfrescoの説明を聞けると思いますので、興味がある方は是非お申込みください。

Alfresco勉強会#36 Google Docs連携の機能のご紹介

こんにちは。てらしたです。

昨日11/30(水)に第36回目のAlfresco勉強会が開催されました。今回もいつもと同様に発表は2つあったんですが、もう一方の発表が開発者向けの技術的な話だったので私の方は手抜バランスを取って軽めのテーマにしました。

Alfrescoはアップロードされたコンテンツを編集するための機能を標準でいくつか実装しているんですが、その中からGoogle Docs連携の機能についてご紹介しました。


コンテンツをGoogleドキュメントで編集して更新するこの機能は「Microsoft Officeでの編集」や「オフライン編集」と違ってブラウザで全て完結するので、例えばMS OfficeがインストールされていないクライアントPCでもインターネットに繋がってさえいればOfficeファイルを編集することができたり、クライアントPCのローカルにファイルを置きたくない場合等、使える場面はいろいろあるのではないかと思います。ただ、Googleドキュメントで編集したファイルをダウンロードしてMS Officeで開いたら体裁が微妙にズレてしまうといった問題は(Alfrescoとは関係ないところで)発生してしまう可能性があるので、用途に合わせてどの編集機能を使うか選んでいただくのがよいと思います。

次回のAlfresco勉強会は1月25日(水)です。勉強会の冒頭でAlfrescoの概要についてさらっと紹介する時間を取っているので、Alfresco全く触ったことないという方でもざっくりとしたイメージは掴めるのではないかと思います。ご興味のある方は以下のリンクから参加登録をお願いします。

第37回 Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

また、勉強会ではカスタマイズ開発や設定方法といった技術的な内容が中心になるのですが、それ以前にAlfrescoとはどのようなソフトウェアなのか、どのように活用できるのかといった内容をご紹介するセミナーも開催しております。ご興味がある方は以下のリンクからお申込みいただければと思います。

OSSドキュメント管理Alfrescoセミナー:導入からチームコラボレーションの設定まで