• R/O
  • SSH
  • HTTPS

phosphoresce: Commit


Commit MetaInfo

Revision307 (tree)
Time2013-07-05 00:23:19
Authorbbcry

Log Message

(empty log message)

Change Summary

Incremental Difference

--- develop/Phosphoresce_Java_Webcore/trunk/webfw_jdbc/org/phosphoresce/webcore/jdbc/transaction/JDBCTransactionManager.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_jdbc/org/phosphoresce/webcore/jdbc/transaction/JDBCTransactionManager.java (revision 307)
@@ -27,9 +27,6 @@
2727 */
2828 public class JDBCTransactionManager extends TransactionManager implements JDBCConstants {
2929
30- /** 接続定義名前空間 */
31- private String namespace;
32-
3330 /** データベースコネクション */
3431 private Connection connection;
3532
@@ -38,11 +35,10 @@
3835
3936 /**
4037 * コンストラクタ<br>
41- * @param namespace 接続定義名前空間
38+ * @param getNamespace() 接続定義名前空間
4239 */
4340 public JDBCTransactionManager(String namespace) {
44- super();
45- this.namespace = namespace;
41+ super(namespace);
4642 }
4743
4844 /**
@@ -49,7 +45,7 @@
4945 * コンストラクタ<br>
5046 */
5147 public JDBCTransactionManager() {
52- this(null);
48+ super();
5349 }
5450
5551 /**
@@ -83,8 +79,8 @@
8379 }
8480 try {
8581 String suffix = "";
86- if (!StringUtil.isEmpty(namespace)) {
87- suffix += "." + namespace;
82+ if (!StringUtil.isEmpty(getNamespace())) {
83+ suffix += "." + getNamespace();
8884 }
8985
9086 boolean useDatasource = false;
@@ -108,16 +104,16 @@
108104
109105 // トレースログ
110106 if (useDatasource) {
111- if (StringUtil.isEmpty(namespace)) {
112- log.output("FJDB00002", namespace);
107+ if (StringUtil.isEmpty(getNamespace())) {
108+ log.output("FJDB00002", getNamespace());
113109 } else {
114- log.output("FJDB00006", namespace);
110+ log.output("FJDB00006", getNamespace());
115111 }
116112 } else {
117- if (StringUtil.isEmpty(namespace)) {
118- log.output("FJDB00003", namespace);
113+ if (StringUtil.isEmpty(getNamespace())) {
114+ log.output("FJDB00003", getNamespace());
119115 } else {
120- log.output("FJDB00007", namespace);
116+ log.output("FJDB00007", getNamespace());
121117 }
122118 }
123119
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsActionMethod.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsActionMethod.java (nonexistent)
@@ -1,77 +0,0 @@
1-package org.phosphoresce.webcore.struts.annotation;
2-
3-import java.lang.annotation.Documented;
4-import java.lang.annotation.ElementType;
5-import java.lang.annotation.Retention;
6-import java.lang.annotation.RetentionPolicy;
7-import java.lang.annotation.Target;
8-
9-/**
10- * アクションメソッドアノテーション<br>
11- * <br>
12- * アクションクラスのイベントメソッドに付与して利用するアノテーションで、イベント処理挙動定義を行います。<br>
13- * アクションメソッドは必ずこのアノテーションが定義されている必要があります。<br>
14- *
15- * @author Kitagawa<br>
16- *
17- *<!--
18- * 更新日 更新者 更新内容
19- * 2010/07/19 Kitagawa 新規作成
20- * 2012/07/04 Kitagawa 全体的に再構築
21- * 2012/11/07 Kitagawa 編集済み状態クリアフラグ追加
22- * 2012/12/07 Kitagawa トランザクショントークンチェックはディフォルト動作に変更
23- *-->
24- */
25-@Retention(RetentionPolicy.RUNTIME)
26-@Target({ ElementType.METHOD })
27-@Documented
28-public @interface StrutsActionMethod {
29-
30- /**
31- * キャッシュフィールド反映タイプ列挙型クラス<br>
32- *
33- * @author Kitagawa<br>
34- *
35- *<!--
36- * 更新日 更新者 更新内容
37- * 2012/07/04 Kitagawa 新規作成
38- *-->
39- */
40- public enum ReflectFieldType {
41- /** フィールド反映なし */
42- NONE, //
43-
44- /** 注釈フィールドのみ反映 */
45- MARK, //
46-
47- /** 全てのフィール反映 */
48- ALL, //
49- }
50-
51- /** キャッシュフィールド反映 */
52- public abstract ReflectFieldType reflectCacheField() default ReflectFieldType.MARK;
53-
54- /** セッションタイムアウトチェックフラグ */
55- public abstract boolean checkSesion() default true;
56-
57- /** トークンチェックフラグ */
58- public abstract boolean checkToken() default false;
59-
60- /** ログインチェックフラグ */
61- public abstract boolean checkLogin() default true;
62-
63- /** フォームバリデーションメソッド */
64- public abstract String validate() default "";
65-
66- /** バリデーションエラー時遷移ページ */
67- public abstract String input() default "";
68-
69- /** データベーストランザクション処理フラグ */
70- public abstract boolean transaction() default false;
71-
72- /** 編集済み状態クリアフラグ */
73- public abstract boolean clearEdited() default false;
74-
75- /** ウィンドウスクロールクリアフラグ */
76- public abstract boolean clearWindowScroll() default false;
77-}
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsActionForm.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsActionForm.java (nonexistent)
@@ -1,29 +0,0 @@
1-package org.phosphoresce.webcore.struts.annotation;
2-
3-import java.lang.annotation.Documented;
4-import java.lang.annotation.ElementType;
5-import java.lang.annotation.Retention;
6-import java.lang.annotation.RetentionPolicy;
7-import java.lang.annotation.Target;
8-
9-/**
10- * アクションフォームアノテーションクラス<br>
11- * <br>
12- * アクションフォームクラスに対して付与して利用するアノテーションで、フォークの性質を定義します。<br>
13- *
14- * @author Kitagawa<br>
15- *
16- *<!--
17- * 更新日 更新者 更新内容
18- * 2010/07/19 Kitagawa 新規作成
19- * 2012/07/04 Kitagawa 全体的に再構築
20- *-->
21- */
22-@Retention(RetentionPolicy.RUNTIME)
23-@Target({ ElementType.TYPE })
24-@Documented
25-public @interface StrutsActionForm {
26-
27- /** アクションフォームスコープ */
28- public abstract String scope() default "request";
29-}
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsMethod.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsMethod.java (revision 307)
@@ -67,7 +67,7 @@
6767 public abstract String input() default "";
6868
6969 /** データベーストランザクション処理フラグ */
70- public abstract boolean transaction() default false;
70+ public abstract StrutsTransaction transaction() default @StrutsTransaction;
7171
7272 /** 編集済み状態クリアフラグ */
7373 public abstract boolean clearEdited() default false;
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsTransaction.java (nonexistent)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/annotation/StrutsTransaction.java (revision 307)
@@ -0,0 +1,34 @@
1+package org.phosphoresce.webcore.struts.annotation;
2+
3+import java.lang.annotation.Documented;
4+import java.lang.annotation.ElementType;
5+import java.lang.annotation.Retention;
6+import java.lang.annotation.RetentionPolicy;
7+import java.lang.annotation.Target;
8+
9+import org.phosphoresce.webcore.transaction.TransactionManager;
10+
11+/**
12+ * トランザクションアノテーション<br>
13+ * <br>
14+ * アクションメソッドアノテーションから利用されるアノテーションで利用するトランザクションクラスを定義します。<br>
15+ *
16+ * @author Kitagawa<br>
17+ *
18+ *<!--
19+ * 更新日 更新者 更新内容
20+ * 2010/07/19 Kitagawa 新規作成
21+ * 2012/07/04 Kitagawa 全体的に再構築
22+ *-->
23+ */
24+@Retention(RetentionPolicy.RUNTIME)
25+@Target({ ElementType.METHOD })
26+@Documented
27+public @interface StrutsTransaction {
28+
29+ /** トランザクション管理クラス */
30+ public abstract Class<? extends TransactionManager> transactionClass() default TransactionManager.class;
31+
32+ /** トランザクション接続定義名前空間 */
33+ public abstract String namespace() default "";
34+}
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/action/Forward.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/action/Forward.java (revision 307)
@@ -9,6 +9,7 @@
99 import java.util.Map;
1010
1111 import org.apache.struts.action.ActionForward;
12+import org.hibernate.annotations.Table;
1213 import org.phosphoresce.commons.util.ReflectionUtil;
1314 import org.phosphoresce.commons.util.StringUtil;
1415 import org.phosphoresce.webcore.ConfigName;
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/action/ActionProcessDefault.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/action/ActionProcessDefault.java (revision 307)
@@ -45,6 +45,7 @@
4545 import org.phosphoresce.webcore.struts.util.StrutsAnnotationUtil;
4646 import org.phosphoresce.webcore.struts.util.StrutsUtil;
4747 import org.phosphoresce.webcore.transaction.TransactionContainer;
48+import org.phosphoresce.webcore.transaction.TransactionManager;
4849
4950 /**
5051 * アクション処理ディフォルトクラス<br>
@@ -1030,7 +1031,7 @@
10301031 }
10311032
10321033 // アクションメソッドアノテーションにトランザクション必要フラグが設定されている場合に処理
1033- if (actionMethod.transaction()) {
1034+ if (!actionMethod.transaction().transactionClass().equals(TransactionManager.class)) {
10341035 actionContext.getTransactionContainer().open();
10351036 }
10361037 }
@@ -1068,7 +1069,7 @@
10681069 // アクションメソッド実行
10691070 Method method = StrutsUtil.getActionMethod(actionPath);
10701071 log.output("FSTR11006", method.getName());
1071- Object value = method.invoke(this, actionContext.getCastedForm(), actionContext.getWindowSessionContainer(), actionContext.getServletContainer());
1072+ Object value = method.invoke(actionContext.getAction(), actionContext.getCastedForm(), actionContext.getWindowSessionContainer(), actionContext.getServletContainer());
10721073 Forward forward = (Forward) (value == null || ((Forward) value).getPath() == null ? null : value);
10731074 actionContext.setForward(forward);
10741075 log.output("FSTR11009", forward);
@@ -1081,7 +1082,7 @@
10811082 throw new StrutsProcessInternalException("FSTR11007", e.getCause());
10821083 }
10831084 } catch (Throwable e) {
1084- throw new StrutsProcessInternalException("FSTR11008", e.getCause());
1085+ throw new StrutsProcessInternalException("FSTR11008", e);
10851086 }
10861087 }
10871088
@@ -1198,7 +1199,7 @@
11981199 }
11991200
12001201 // アクションメソッドアノテーションにトランザクション必要フラグが設定されている場合に処理
1201- if (actionMethod.transaction()) {
1202+ if (!actionMethod.transaction().transactionClass().equals(TransactionManager.class)) {
12021203 actionContext.getTransactionContainer().commit();
12031204 }
12041205 }
@@ -1230,7 +1231,7 @@
12301231 }
12311232
12321233 // アクションメソッドアノテーションにトランザクション必要フラグが設定されている場合に処理
1233- if (actionMethod.transaction()) {
1234+ if (!actionMethod.transaction().transactionClass().equals(TransactionManager.class)) {
12341235 actionContext.getTransactionContainer().rollback();
12351236 }
12361237 }
@@ -1262,7 +1263,7 @@
12621263 }
12631264
12641265 // アクションメソッドアノテーションにトランザクション必要フラグが設定されている場合に処理
1265- if (actionMethod.transaction()) {
1266+ if (!actionMethod.transaction().transactionClass().equals(TransactionManager.class)) {
12661267 actionContext.getTransactionContainer().close();
12671268 }
12681269 }
--- develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/StrutsConfigNames.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw_struts/org/phosphoresce/webcore/struts/StrutsConfigNames.java (revision 307)
@@ -24,7 +24,7 @@
2424 public static final StrutsConfigNames STRUTS_ACTION_CLASS_SUFFIX_FORM = new StrutsConfigNames("strtus.action.class.suffix.form");
2525
2626 /** ディフォルトアクションメソッド */
27- public static final StrutsConfigNames STRUTS_ACTION_DEFAULT = new StrutsConfigNames("strtus.action.default");
27+ public static final StrutsConfigNames STRUTS_ACTION_DEFAULT = new StrutsConfigNames("strtus.action.method.default");
2828
2929 /** ルートアクションパス(アクション未指定時にリダイレクトするパス) */
3030 public static final StrutsConfigNames STRUTS_ACTION_INDEX = new StrutsConfigNames("struts.action.index");
--- develop/Phosphoresce_Java_Webcore/trunk/webfw/org/phosphoresce/webcore/config/Config.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw/org/phosphoresce/webcore/config/Config.java (revision 307)
@@ -139,7 +139,7 @@
139139 public static Map<String, String> getMap() {
140140 Map<String, String> map = new HashMap<String, String>();
141141 for (String key : getPropertyKeys()) {
142- map.put(key, getString(ConfigName.get(key)));
142+ map.put(key, getString(key));
143143 }
144144 return map;
145145 }
@@ -146,28 +146,43 @@
146146
147147 /**
148148 * 指定されたキーのプロパティが未指定であるか判定します。<br>
149+ * @param key プロパティキー
150+ * @return 指定されたキーのプロパティが未指定である場合にtrueを返却
151+ */
152+ private static boolean isEmpty(String key) {
153+ return StringUtil.isEmpty(getString(key));
154+ }
155+
156+ /**
157+ * 指定されたキーのプロパティが未指定であるか判定します。<br>
149158 * @param name プロパティ定義名
150159 * @return 指定されたキーのプロパティが未指定である場合にtrueを返却
151160 */
152161 public static boolean isEmpty(ConfigName name) {
153- return StringUtil.isEmpty(getString(name));
162+ if (name == null) {
163+ throw new NullPointerException();
164+ }
165+ return isEmpty(name.key());
154166 }
155167
156168 /**
157169 * 指定キーのプロパティを取得します。<br>
158- * @param name プロパティ定義名
170+ * @param key プロパティキー
159171 * @return プロパティ値
160172 */
161- public static String getString(ConfigName name) {
173+ private static String getString(String key) {
174+ if (key == null) {
175+ throw new NullPointerException();
176+ }
162177 if (instance == null) {
163178 throw new WebcoreConfigurationException("FCRE00022", new Object[] { Config.class.getName() });
164179 }
165180 if (instance.strict) {
166- if (!instance.properties.containsKey(name.key())) {
167- throw new WebcoreConfigurationException("FCRE00023", new Object[] { name });
181+ if (!instance.properties.containsKey(key)) {
182+ throw new WebcoreConfigurationException("FCRE00023", new Object[] { key });
168183 }
169184 }
170- String value = instance.properties.getProperty(name.key());
185+ String value = instance.properties.getProperty(key);
171186 value = Environment.bindEnv(value);
172187 return value == null ? "" : value;
173188 }
@@ -174,14 +189,26 @@
174189
175190 /**
176191 * 指定キーのプロパティを取得します。<br>
192+ * @param name プロパティ定義名
193+ * @return プロパティ値
194+ */
195+ public static String getString(ConfigName name) {
196+ if (name == null) {
197+ throw new NullPointerException();
198+ }
199+ return getString(name.key());
200+ }
201+
202+ /**
203+ * 指定キーのプロパティを取得します。<br>
177204 * カンマ区切りされているプロパティを文字列配列として取得します。<br>
178- * @param name プロパティ定義名
205+ * @param key プロパティキー
179206 * @param execludeComment トークン先頭に"#"がある場合は除外する場合にtrueを返却
180207 * @return プロパティ値
181208 */
182- public static String[] getStrings(ConfigName name, boolean execludeComment) {
183- String def = Config.getString(name);
184- String[] values = StringUtil.isEmpty(def) ? new String[0] : Config.getString(name).split(",");
209+ private static String[] getStrings(String key, boolean execludeComment) {
210+ String def = Config.getString(key);
211+ String[] values = StringUtil.isEmpty(def) ? new String[0] : Config.getString(key).split(",");
185212 if (execludeComment) {
186213 LinkedList<String> list = new LinkedList<String>();
187214 for (String value : values) {
@@ -199,39 +226,102 @@
199226 * 指定キーのプロパティを取得します。<br>
200227 * カンマ区切りされているプロパティを文字列配列として取得します。<br>
201228 * @param name プロパティ定義名
229+ * @param execludeComment トークン先頭に"#"がある場合は除外する場合にtrueを返却
202230 * @return プロパティ値
203231 */
232+ public static String[] getStrings(ConfigName name, boolean execludeComment) {
233+ if (name == null) {
234+ throw new NullPointerException();
235+ }
236+ return getStrings(name.key(), execludeComment);
237+ }
238+
239+ /**
240+ * 指定キーのプロパティを取得します。<br>
241+ * カンマ区切りされているプロパティを文字列配列として取得します。<br>
242+ * @param key プロパティキー
243+ * @return プロパティ値
244+ */
245+ private static String[] getStrings(String key) {
246+ return getStrings(key, true);
247+ }
248+
249+ /**
250+ * 指定キーのプロパティを取得します。<br>
251+ * カンマ区切りされているプロパティを文字列配列として取得します。<br>
252+ * @param name プロパティ定義名
253+ * @return プロパティ値
254+ */
204255 public static String[] getStrings(ConfigName name) {
205- return getStrings(name, true);
256+ if (name == null) {
257+ throw new NullPointerException();
258+ }
259+ return getStrings(name.key());
206260 }
207261
208262 /**
209263 * 指定キーのプロパティを取得します。<br>
264+ * @param key プロパティキー
265+ * @return プロパティ値
266+ */
267+ private static boolean getBoolean(String key) {
268+ String value = getString(key);
269+ return value == null ? false : Boolean.valueOf(value);
270+ }
271+
272+ /**
273+ * 指定キーのプロパティを取得します。<br>
210274 * @param name プロパティ定義名
211275 * @return プロパティ値
212276 */
213277 public static boolean getBoolean(ConfigName name) {
214- String value = getString(name);
215- return value == null ? false : Boolean.valueOf(value);
278+ if (name == null) {
279+ throw new NullPointerException();
280+ }
281+ return getBoolean(name.key());
216282 }
217283
218284 /**
219285 * 指定キーのプロパティを取得します。<br>
286+ * @param key プロパティキー
287+ * @return プロパティ値
288+ */
289+ private static long getLong(String key) {
290+ String value = getString(key);
291+ return value == null ? 0 : Long.parseLong(value);
292+ }
293+
294+ /**
295+ * 指定キーのプロパティを取得します。<br>
220296 * @param name プロパティ定義名
221297 * @return プロパティ値
222298 */
223299 public static long getLong(ConfigName name) {
224- String value = getString(name);
225- return value == null ? 0 : Long.parseLong(value);
300+ if (name == null) {
301+ throw new NullPointerException();
302+ }
303+ return getLong(name.key());
226304 }
227305
228306 /**
229307 * 指定キーのプロパティを取得します。<br>
308+ * @param key プロパティキー
309+ * @return プロパティ値
310+ */
311+ private static int getInteger(String key) {
312+ String value = getString(key);
313+ return value == null ? 0 : Integer.parseInt(value);
314+ }
315+
316+ /**
317+ * 指定キーのプロパティを取得します。<br>
230318 * @param name プロパティ定義名
231319 * @return プロパティ値
232320 */
233321 public static int getInteger(ConfigName name) {
234- String value = getString(name);
235- return value == null ? 0 : Integer.parseInt(value);
322+ if (name == null) {
323+ throw new NullPointerException();
324+ }
325+ return getInteger(name.key());
236326 }
237327 }
--- develop/Phosphoresce_Java_Webcore/trunk/webfw/org/phosphoresce/webcore/transaction/TransactionManager.java (revision 306)
+++ develop/Phosphoresce_Java_Webcore/trunk/webfw/org/phosphoresce/webcore/transaction/TransactionManager.java (revision 307)
@@ -8,8 +8,7 @@
88 * トランザクション管理上位抽象クラス<br>
99 * <br>
1010 * データベースアクセスを利用する業務ロジックのトランザクション管理上位クラスです。<br>
11- * JDBCデータベースアクセスやO/Rマッパーアクセス等の各種アドオンモジュールでの、
12- * トランザクション管理インタフェースを統一するために設けられました。<br>
11+ * JDBCデータベースアクセスやO/Rマッパーアクセス等の各種アドオンモジュールにおけるインタフェースを統一するために設けられました。<br>
1312 *
1413 * @author Kitagawa<br>
1514 *
@@ -23,6 +22,9 @@
2322 /** ロガーオブジェクト */
2423 protected final CodeConvertLogger log = new CodeConvertLogger(LoggerFactory.getLogger(getClass()));
2524
25+ /** 接続定義名前空間 */
26+ private String namespace;
27+
2628 /** オープン済みフラグ */
2729 private boolean opened;
2830
@@ -31,14 +33,23 @@
3133
3234 /**
3335 * コンストラクタ<br>
36+ * @param namespace 接続定義名前空間
3437 */
35- protected TransactionManager() {
38+ protected TransactionManager(String namespace) {
3639 super();
40+ this.namespace = namespace;
3741 this.opened = false;
3842 this.followedContainer = false;
3943 }
4044
4145 /**
46+ * コンストラクタ<br>
47+ */
48+ protected TransactionManager() {
49+ this(null);
50+ }
51+
52+ /**
4253 * コンテナ管理下フラグを取得します。<br>
4354 * @return コンテナ管理下フラグ
4455 */
@@ -154,6 +165,14 @@
154165 }
155166
156167 /**
168+ * 接続定義名前空間を取得します。<br>
169+ * @return 接続定義名前空間
170+ */
171+ public final String getNamespace() {
172+ return namespace;
173+ }
174+
175+ /**
157176 * トランザクションがオープンされているか判定します。<br>
158177 * @return トランザクションがオープンされている場合にtrueを返却
159178 */
Show on old repository browser