Division By Zero

ゼロで割る

Aipo8のSchedule Portletをコンパイルしてみた+スケジュールをタイムラインに載せないようにした

前回のエントリが役に立ったので今回もメモ。

Aipo7.0.2ををAipo8.1.1に更新。7.0.2は、当初CentOS4上で運用していたが、途中、CentOS6上で運用するように変更。当然ながらOSが変わってもDBバックアップ、リストアで問題が起きることはなかった。そして、今回はAipo8.1.1に更新。こちらも問題なし。SSLで運用しており、Aipo7ではAndroidからアクセスするために、若干の設定を行う必要があったが、今回はそれも不要。きちんと更新できることは大いに有り難い。

自分で入れた些細な変更についてはこちらこちらに書いたが、今回も以下の3ファイルを修正。

aipo/portlets/schedule/src/main/java/com/aimluck/eip/schedule/

  • ScheduleFormData.java
  • ScheduleWeeklyJSONFormData.java
  • CellScheduleFormNoteData.java

スタートガイドに従えばコンパイルできるはずだが、昔の話なので再度掲載。パスも変わってた。

  1. すでにAipo8をバイナリでインストールした検証環境がある
  2. JDKMavenだけインストール
  3. Schedule Portletの上記3ソースを修正
  4. コンパイル(mvn install)
  5. 生成されたaipo-portlet-schedule-8.1.1.jarを/usr/local/aipo/tomcat/webapps/ROOT/WEB-INF/lib/のものと入れ替える
  6. aipoを再起動(service aipo stop; service aipo start)

Aipo8.1.1ではmvnでエラーが出たので、格好悪いけど下記で対処。javaを使うことはほとんどないので。Aipo8.1の時はエラーが出なかったと記憶(検証してから本番適用までの間に8.1.1が出てた!)

export JAVA_HOME=/usr

うまく動いたので今日はこれで終了!

*** ScheduleFormData.java.org   2016-03-29 13:38:15.845649764 +0900
--- ScheduleFormData.java       2016-04-01 22:45:53.362517549 +0900
*************** public class ScheduleFormData extends AL
*** 1347,1359 ****
          ownerid);

        // アクティビティが公開スケジュールである場合、「更新情報」に表示させる。
!       if ("O".equals(public_flag.toString())) {
          ScheduleUtils.createNewScheduleActivity(
            schedule,
            loginName,
            "new",
            ownerid);
!       }
      } catch (CayenneRuntimeException e) {
        if (e.getCause().getMessage().indexOf("Incorrect string value:") == 0) {
          msgList.add(ALLocalizationUtils
--- 1347,1359 ----
          ownerid);

        // アクティビティが公開スケジュールである場合、「更新情報」に表示させる。
! /*      if ("O".equals(public_flag.toString())) {
          ScheduleUtils.createNewScheduleActivity(
            schedule,
            loginName,
            "new",
            ownerid);
!       }*/
      } catch (CayenneRuntimeException e) {
        if (e.getCause().getMessage().indexOf("Incorrect string value:") == 0) {
          msgList.add(ALLocalizationUtils
*************** public class ScheduleFormData extends AL
*** 1377,1383 ****
            // パソコンへメールを送信
            List<ALEipUserAddr> destMemberList =
              ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!               .getUserId(rundata), false);
            String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";
            String orgId = Database.getDomainName();

--- 1377,1383 ----
            // パソコンへメールを送信
            List<ALEipUserAddr> destMemberList =
              ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!               .getUserId(rundata), true);
            String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";
            String orgId = Database.getDomainName();

*************** public class ScheduleFormData extends AL
*** 1948,1954 ****
            // パソコンへメールを送信
            List<ALEipUserAddr> destMemberList =
              ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!               .getUserId(rundata), false);
            String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

            if (edit_repeat_flag.getValue() == FLAG_EDIT_REPEAT_ONE) {
--- 1948,1954 ----
            // パソコンへメールを送信
            List<ALEipUserAddr> destMemberList =
              ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!               .getUserId(rundata), true);
            String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

            if (edit_repeat_flag.getValue() == FLAG_EDIT_REPEAT_ONE) {
*************** public class ScheduleFormData extends AL
*** 2404,2410 ****
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), false);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";
              String orgId = Database.getDomainName();

--- 2404,2410 ----
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), true);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";
              String orgId = Database.getDomainName();
*** ScheduleWeeklyJSONFormData.java.org 2016-03-29 13:38:19.937649759 +0900
--- ScheduleWeeklyJSONFormData.java     2016-03-29 13:40:37.493649863 +0900
*************** public class ScheduleWeeklyJSONFormData
*** 532,538 ****
                // パソコンへメールを送信
                List<ALEipUserAddr> destMemberList =
                  ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                   .getUserId(rundata), false);
                String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

                List<ALAdminMailMessage> messageList =
--- 532,538 ----
                // パソコンへメールを送信
                List<ALEipUserAddr> destMemberList =
                  ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                   .getUserId(rundata), true);
                String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

                List<ALAdminMailMessage> messageList =
*************** public class ScheduleWeeklyJSONFormData
*** 704,710 ****
                // パソコンへメールを送信
                List<ALEipUserAddr> destMemberList =
                  ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                   .getUserId(rundata), false);
                String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

                List<ALAdminMailMessage> messageList =
--- 704,710 ----
                // パソコンへメールを送信
                List<ALEipUserAddr> destMemberList =
                  ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                   .getUserId(rundata), true);
                String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

                List<ALAdminMailMessage> messageList =
*************** public class ScheduleWeeklyJSONFormData
*** 866,872 ****
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), false);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

              List<ALAdminMailMessage> messageList =
--- 866,872 ----
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), true);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

              List<ALAdminMailMessage> messageList =
*************** public class ScheduleWeeklyJSONFormData
*** 1028,1034 ****
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), false);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

              List<ALAdminMailMessage> messageList =
--- 1028,1034 ----
              // パソコンへメールを送信
              List<ALEipUserAddr> destMemberList =
                ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils
!                 .getUserId(rundata), true);
              String subject = "[" + ALOrgUtilsService.getAlias() + "]スケジュール";

              List<ALAdminMailMessage> messageList =
*** CellScheduleFormNoteData.java.org   2016-03-29 13:38:11.141649716 +0900
--- CellScheduleFormNoteData.java       2016-03-29 13:39:02.164650595 +0900
*************** public class CellScheduleFormNoteData ex
*** 731,737 ****
          // パソコンへメールを送信
          List<ALEipUserAddr> destMemberList =
            ALMailUtils.getALEipUserAddrs(form_data.getMemberList(), ALEipUtils
!             .getUserId(rundata), false);
          String subject =
            ALLocalizationUtils.getl10nFormat(
              "SCHEDULE_SUB_SCHEDULE",
--- 731,737 ----
          // パソコンへメールを送信
          List<ALEipUserAddr> destMemberList =
            ALMailUtils.getALEipUserAddrs(form_data.getMemberList(), ALEipUtils
!             .getUserId(rundata), true);
          String subject =
            ALLocalizationUtils.getl10nFormat(
              "SCHEDULE_SUB_SCHEDULE",
*************** public class CellScheduleFormNoteData ex
*** 1256,1262 ****
          // パソコンへメールを送信
          List<ALEipUserAddr> destMemberList =
            ALMailUtils.getALEipUserAddrs(form_data.getMemberList(), ALEipUtils
!             .getUserId(rundata), false);
          String subject =
            ALLocalizationUtils.getl10nFormat(
              "SCHEDULE_SUB_SCHEDULE",
--- 1256,1262 ----
          // パソコンへメールを送信
          List<ALEipUserAddr> destMemberList =
            ALMailUtils.getALEipUserAddrs(form_data.getMemberList(), ALEipUtils
!             .getUserId(rundata), true);
          String subject =
            ALLocalizationUtils.getl10nFormat(
              "SCHEDULE_SUB_SCHEDULE",