Enviar pesquisa
Carregar
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
•
Transferir como PPTX, PDF
•
0 gostou
•
7,513 visualizações
Tasuku Otani
Seguir
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 15
Baixar agora
Recomendados
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Jun Terashita
Alfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストア
Tasuku Otani
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Jun Terashita
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
Alfresco Bulk Import toolのご紹介
Alfresco Bulk Import toolのご紹介
MoritakaSoma
Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編
MoritakaSoma
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Tasuku Otani
【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
マジセミ by (株)オープンソース活用研究所
Recomendados
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Jun Terashita
Alfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストア
Tasuku Otani
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Jun Terashita
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
Alfresco Bulk Import toolのご紹介
Alfresco Bulk Import toolのご紹介
MoritakaSoma
Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編
MoritakaSoma
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Tasuku Otani
【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
マジセミ by (株)オープンソース活用研究所
Alfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクル
Jun Terashita
Storage and Alfresco
Storage and Alfresco
Toni de la Fuente
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
Takeshi Totani
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Tasuku Otani
AlfrescoとSolr(中編)
AlfrescoとSolr(中編)
Ashitaba YOSHIOKA
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレート
Jun Terashita
Alfresco紹介
Alfresco紹介
Tetsuya Hasegawa
Bulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
Richard McKnight
AlfrescoとWeb Script
AlfrescoとWeb Script
Ashitaba YOSHIOKA
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
Angel Borroy López
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
AlfrescoUE
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
Toni de la Fuente
Jose portillo dev con presentation 1138
Jose portillo dev con presentation 1138
Jose Portillo
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
0からわかるAlfresco
0からわかるAlfresco
MoritakaSoma
Spring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
心 谷本
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
Alfresco DevCon 2019 Performance Tools of the Trade
Alfresco DevCon 2019 Performance Tools of the Trade
Luis Colorado
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Shinsuke Sugaya
Alfresco study presentation 38th customize How-To WebDAV
Alfresco study presentation 38th customize How-To WebDAV
Takeshi Totani
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Tasuku Otani
Mais conteúdo relacionado
Mais procurados
Alfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクル
Jun Terashita
Storage and Alfresco
Storage and Alfresco
Toni de la Fuente
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
Takeshi Totani
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Tasuku Otani
AlfrescoとSolr(中編)
AlfrescoとSolr(中編)
Ashitaba YOSHIOKA
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレート
Jun Terashita
Alfresco紹介
Alfresco紹介
Tetsuya Hasegawa
Bulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
Richard McKnight
AlfrescoとWeb Script
AlfrescoとWeb Script
Ashitaba YOSHIOKA
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
Angel Borroy López
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
AlfrescoUE
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
Toni de la Fuente
Jose portillo dev con presentation 1138
Jose portillo dev con presentation 1138
Jose Portillo
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
0からわかるAlfresco
0からわかるAlfresco
MoritakaSoma
Spring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
心 谷本
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
Alfresco DevCon 2019 Performance Tools of the Trade
Alfresco DevCon 2019 Performance Tools of the Trade
Luis Colorado
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Shinsuke Sugaya
Mais procurados
(20)
Alfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクル
Storage and Alfresco
Storage and Alfresco
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
AlfrescoとSolr(中編)
AlfrescoとSolr(中編)
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレート
Alfresco紹介
Alfresco紹介
Bulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
AlfrescoとWeb Script
AlfrescoとWeb Script
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
Jose portillo dev con presentation 1138
Jose portillo dev con presentation 1138
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
0からわかるAlfresco
0からわかるAlfresco
Spring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Alfresco DevCon 2019 Performance Tools of the Trade
Alfresco DevCon 2019 Performance Tools of the Trade
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Destaque
Alfresco study presentation 38th customize How-To WebDAV
Alfresco study presentation 38th customize How-To WebDAV
Takeshi Totani
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Tasuku Otani
Alfresco勉強会#33 Alfresco Solr Admin UI
Alfresco勉強会#33 Alfresco Solr Admin UI
Jun Terashita
Alfresco study37 alfresco_ng2_components
Alfresco study37 alfresco_ng2_components
Takeshi Totani
Alfresco study32 introducing5.1
Alfresco study32 introducing5.1
Takeshi Totani
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
Jun Terashita
0からわかるAlfresco 2017年1月版
0からわかるAlfresco 2017年1月版
MoritakaSoma
Alfresco Javascript Consoleのご紹介
Alfresco Javascript Consoleのご紹介
MoritakaSoma
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Tomomi Kawabe
Alfresco study29 activitymonitoring
Alfresco study29 activitymonitoring
Takeshi Totani
Share UIカスタマイズの第一歩
Share UIカスタマイズの第一歩
MoritakaSoma
Alfrescoのバックアップとレストア
Alfrescoのバックアップとレストア
Ashitaba YOSHIOKA
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
Ryota Watabe
Destaque
(13)
Alfresco study presentation 38th customize How-To WebDAV
Alfresco study presentation 38th customize How-To WebDAV
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる
Alfresco勉強会#33 Alfresco Solr Admin UI
Alfresco勉強会#33 Alfresco Solr Admin UI
Alfresco study37 alfresco_ng2_components
Alfresco study37 alfresco_ng2_components
Alfresco study32 introducing5.1
Alfresco study32 introducing5.1
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
0からわかるAlfresco 2017年1月版
0からわかるAlfresco 2017年1月版
Alfresco Javascript Consoleのご紹介
Alfresco Javascript Consoleのご紹介
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco study29 activitymonitoring
Alfresco study29 activitymonitoring
Share UIカスタマイズの第一歩
Share UIカスタマイズの第一歩
Alfrescoのバックアップとレストア
Alfrescoのバックアップとレストア
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
Semelhante a Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
TanUkkii
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
Dotnetconf2017
Dotnetconf2017
Yoshiyuki Taniguchi
React Native GUIDE
React Native GUIDE
dcubeio
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
tech-arts
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
scala+liftで遊ぼう
scala+liftで遊ぼう
youku
Visualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
Haikara
Haikara
jewel12
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
Shogo Sensui
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術
Nagao Shun
Weeklycms20120218
Weeklycms20120218
Yoshi Sakai
ScaLa+Liftとか
ScaLa+Liftとか
youku
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
JavaScript入門
JavaScript入門
Ryo Maruyama
Semelhante a Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
(20)
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Dotnetconf2017
Dotnetconf2017
React Native GUIDE
React Native GUIDE
HTML5&API総まくり
HTML5&API総まくり
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
scala+liftで遊ぼう
scala+liftで遊ぼう
Visualforce + jQuery
Visualforce + jQuery
Haikara
Haikara
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術
Weeklycms20120218
Weeklycms20120218
ScaLa+Liftとか
ScaLa+Liftとか
実践 Reactive Extensions
実践 Reactive Extensions
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
20120405 setsunaセミナー
20120405 setsunaセミナー
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
JavaScript入門
JavaScript入門
Último
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Último
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
1.
第33回Alfresco勉強会 Alfresco 5.1でコンテンツ自動削除を実装してみた (& Alfresco
SDK を使った話も少々) 2016/05/25 @_tasky
2.
自己紹介 私は… ◦ @_tasky
日頃は… ◦ 株式会社イージフでAlfrescoやLiferayをいじってます ◦ 2児(5歳♀, 2歳♀)の父親業やってます ◦ Ingressエージェント業も少々
3.
Contents 有効期限の過ぎたコンテンツのアーカイブ コンテンツ自動削除機能の概要
コンテンツ自動削除機能の実装 ◦ Alfresco SDK ◦ スケジュールジョブ デモ
4.
有効期限の切れたコンテンツのアーカイブ よくある要件 ◦ コンテンツの属性に有効期限を持たせる ◦
有効期限を過ぎたコンテンツを自動的にアーカイブ(or削除)す る Effectivity(有効性)アスペクトの利用 ◦ Effective From(有効期限開始日)属性 ◦ Effective To(有効期限終了日)属性 が、Effectivityアスペクトを付けたところで、有効期限終了日 を考慮して何がしかの処理を行う機能は実装されていない ⇒ これを実装します
5.
コンテンツ自動削除機能の概要 コンテンツの属性に有効期限を持たせる ◦ 前述のEffectivity(有効性)アスペクトを使い、コンテンツに Effective
From(有効期限開始日)とEffective To(有効期限終了 日)を設定する ⇒ Alfrescoのルール機能を使うと自動的にEffectivityアスペクトを 付与することができる 有効期限を過ぎたコンテンツを自動的に削除する ◦ 日次バッチ等を想定し、スケジュールジョブとして実装する ◦ “Effectivityアスペクトを持つ && Effective Toの値 < 今日”なコンテ ンツを削除する ⇒ Alfrescoの一般的なScheduled Jobと同じ形で実装する
6.
コンテンツ自動削除機能の実装 Alfresco SDK(昔のMaven
Alfresco SDK)を使って開発 ◦ Alfresco Repository (Platform)のみのカスタマイズ プロジェクトの作成方法は以下の記事を参照 http://www.slideshare.net/terajun/alfresco26-alfresco-sdk 主要なポイントは以下のとおり ◦ アーキタイプ : org.alfresco.maven.archetype:alfresco-amp- archetype 2.2.0 (Alfresco Repository AMPアーキタイプ) ◦ 生成されたpom.xmlの修正 <alfresco.version>5.1.f</alfresco.version> ◦ EclipseのMaven build Configuration Goals : install Profiles : amp-to-war JRE : JavaSE-1.8 VM arguments : -Xms1G -Xmx2G -noverify
7.
コンテンツ自動削除機能の実装 config/alfresco/module/content-archive- sample/content/service-context.xml ◦ Spring
bean定義ファイル ◦ ジョブ実装、ジョブ実体、トリガを定義 config/alfresco/module/content-archive-sample/alfresco- global.properties ◦ bean定義が参照するジョブ実行タイミング等を設定 IneffectiveContentArchiver.java ◦ ジョブ処理内容の実装クラス IneffectiveContentArchiveJob.java ◦ ジョブ実体を表すクラス ◦ bean定義で指定された処理を実行する
8.
service-context.xml ineffectiveContentArchiver :
ジョブ処理内容の実装定義 ineffectiveContentArchiverJobDetail : ジョブ実体定義 ineffectiveContentArchiverTrigger : ジョブのスケジュール実 行定義 <bean id="ineffectiveContentArchiver" class="jp.aegif.alfresco.repo.content.archive.IneffectiveContentArchiver"> <property name="searchService" ref="searchService" /> <property name="nodeService" ref="nodeService" /> <property name="transactionService" ref="transactionService" /> </bean> <bean id="ineffectiveContentArchiverJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="jp.aegif.alfresco.repo.content.archive.IneffectiveContentArchiveJob" /> <property name="jobDataAsMap"> <map> <entry key="ineffectiveContentArchiver"> <ref bean="ineffectiveContentArchiver" /> </entry> <entry key="jobLockService"> <ref bean="jobLockService" /> </entry> </map> </property> </bean> <bean id="ineffectiveContentArchiverTrigger" class="org.alfresco.util.CronTriggerBean"> <property name="jobDetail" ref="ineffectiveContentArchiverJobDetail" /> <property name="scheduler" ref="schedulerFactory" /> <property name="cronExpression" value="${ineffective.content.archive.cronExpression}" /> <property name="startDelay" value="${ineffective.content.archive.cronStartDelay}" /> </bean>
9.
alfresco-global.properties ジョブ実行タイミング等を設定 bean定義から参照される
ineffective.content.archive.cronExpression : ◦ ジョブ実行タイミングのcron表記 ◦ Quartzのcronフォーマットに従うので ”秒 分 時 日 月 曜日” ineffective.content.archive.cronStartDelay : ◦ サーバ起動時の実行遅延(ミリ秒) ineffective.content.archive.cronExpression=0 * * * * ? ineffective.content.archive.cronStartDelay=60000
10.
IneffectiveContentArchiver.java Effectivityアスペクトを持ち、かつEffectivity To
(cm:to)属性が 今日より古いコンテンツを検索する ヒットしたコンテンツを削除する ◦ 正確には、ゴミ箱に入ります public void execute() { transactionService.getRetryingTransactionHelper().doInTransaction( new RetryingTransactionCallback<Object>() { @Override public Object execute() throws Throwable { String query = "+ASPECT:"cm:effectivity" +@cm:to:[MIN TO NOW]"; ResultSet rs = null; SearchParameters sp = new SearchParameters(); sp.setLanguage(SearchService.LANGUAGE_LUCENE); sp.addStore(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE); sp.setQuery(query); rs = searchService.query(sp); for (NodeRef nodeRef : rs.getNodeRefs()) { nodeService.deleteNode(nodeRef); } logger.debug("Archive " + rs.length() + " nodes"); return null; } }); }
11.
IneffectiveContentArchiveJob.java AbstractScheduledLockedJobを継承するとcluster awareな Jobになる
bean定義のjobDataAsMapで指定されたジョブ実装を読み込 んで実行する public class IneffectiveContentArchiveJob extends AbstractScheduledLockedJob implements StatefulJob { @Override public void executeJob(JobExecutionContext context) throws JobExecutionException { JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); Object ineffectiveContentArchiverObject = jobDataMap.get("ineffectiveContentArchiver"); if (ineffectiveContentArchiverObject == null || !(ineffectiveContentArchiverObject instanceof IneffectiveContentArchiver)) { throw new AlfrescoRuntimeException("Invalid JobData for IneffectiveContentArchiveJob"); } final IneffectiveContentArchiver ineffectiveContentArchiver = (IneffectiveContentArchiver)ineffectiveContentArchiverObject; AuthenticationUtil.runAsSystem(new RunAsWork<Object>() { @Override public Object doWork() throws Exception { ineffectiveContentArchiver.execute(); return null; } }); } }
12.
テスト用Alfresco Shareの準備 Alfresco
Repository AMPアーキタイプを使うと、テスト用 Tomcatの起動ができる ただし、Alfresco Repository (Platform)しか起動しないので、別 途Alfresco Shareを起動する必要がある ⇒ Alfresco Share AMPアーキタイプを使ってMaven Projectを作 成し、テスト用Alfresco Shareを起動する 主要なポイントは以下のとおり ◦ アーキタイプ : org.alfresco.maven.archetype:share-amp-archetype 2.2.0 ◦ 生成されたpom.xmlの修正 <alfresco.version>5.1.f</alfresco.version> spring-surf-api dependencyの記述変更 ◦ EclipseのMaven build Configuration Goals : install Profiles : amp-to-war Parameter : dependency.surf.version=6.3 JRE : JavaSE-1.8 <dependency> <groupId>org.alfresco.surf</groupId> <artifactId>spring-surf-api</artifactId> <version>${dependency.surf.version}</version> <scope>provided</scope> </dependency>
13.
デモ 環境 ◦ Windows
10 ◦ Alfresco Community Edition 5.1.f ◦ Alfresco SDK 2.2.0 URL ◦ Alfresco Repository : http://localhost:8080/alfresco/ ◦ Alfresco Share : http://localhost:8081/share/ サンプルコード https://bitbucket.org/tasuku_otani/content-archive-sample
14.
まとめ 有効期間を過ぎたコンテンツを自動削除するスケジュール ジョブを作った 課題 ◦
有効期限終了日当日のコンテンツも削除しちゃってる ◦ 削除じゃなくてアーカイブしたい
15.
おまけ aegif Labo
blog やってます http://aegif-labo.blogspot.jp/ 2016/05/17にAlfresco Community Edition 5.1.gがリリースさ れました ◦ 5.1.fとの差分はImageMagick脆弱性(ImageTragick)対応のみ https://wiki.alfresco.com/wiki/Community_file_list_201605-GA
Baixar agora