diff --git a/.gitignore b/.gitignore index 09a07ae76725..cf66913a731d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ -target -.metadata -.settings -.classpath -.project -*.class -# Package Files # -*.jar -*.war -*.ear +target +.metadata +.settings +.classpath +.project +*.class +# Package Files # +*.jar +*.war +*.ear +/bin diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 000000000000..b585897e78e9 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 000000000000..c7d1c5a837aa --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 000000000000..f010e509b037 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/java-design-patterns.iml b/.idea/java-design-patterns.iml new file mode 100644 index 000000000000..b26c4d073e4c --- /dev/null +++ b/.idea/java-design-patterns.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_3_8_1.xml b/.idea/libraries/Maven__junit_junit_3_8_1.xml new file mode 100644 index 000000000000..d9146a8e175a --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_3_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000000..9b34e120e4aa --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000000..a0829f89b78c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000000..35eb1ddfbbc0 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000000..4ff8c22184d0 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,835 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project + + + + + + + + + + + + + + + + project + + + true + + + + DIRECTORY + + false + + + + + + + + + + + + + + + + + + + + + + + 1500906645504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/test/src/main/java/com/ronly/lambda/Lambda.java + 20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 1.8 + + + + + + + + test + + + + + + + + 1.8 + + + + + + + + Maven: junit:junit:3.8.1 + + + + + + + + \ No newline at end of file diff --git a/abstract-factory/.euml2 b/abstract-factory/.euml2 new file mode 100644 index 000000000000..e348ac9b6238 --- /dev/null +++ b/abstract-factory/.euml2 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/abstract-factory/.gitignore b/abstract-factory/.gitignore index b83d22266ac8..e2540458518e 100644 --- a/abstract-factory/.gitignore +++ b/abstract-factory/.gitignore @@ -1 +1,2 @@ /target/ +/bin diff --git a/abstract-factory/.umlproject b/abstract-factory/.umlproject new file mode 100644 index 000000000000..e348ac9b6238 --- /dev/null +++ b/abstract-factory/.umlproject @@ -0,0 +1,7 @@ + + + + + + + diff --git a/abstract-factory/abstract-factory.iml b/abstract-factory/abstract-factory.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/abstract-factory/abstract-factory.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/abstract-factory/build/log/testResult.log b/abstract-factory/build/log/testResult.log new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/abstract-factory/build/log/uatError.log b/abstract-factory/build/log/uatError.log new file mode 100644 index 000000000000..b3fdd226a739 --- /dev/null +++ b/abstract-factory/build/log/uatError.log @@ -0,0 +1,56 @@ +[UAPUnit]09/30 14:26:28,842 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,856 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:28,985 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,986 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:26:29,085 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:29,086 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:35,064 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:35,065 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,096 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,109 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:28:38,232 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,233 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,327 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,328 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:29:27,268 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:29:27,269 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:25,945 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:25,959 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:26,087 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,088 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:26,177 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,178 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:41,282 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:41,283 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:43,107 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:43,121 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:32:53,259 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,260 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:53,363 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,364 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:02,088 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:02,090 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:28,019 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:28,033 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:29,154 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,155 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:29,262 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,263 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:32,699 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:32,700 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:04,767 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:04,780 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:24,774 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,775 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:24,885 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,886 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:33,715 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:33,716 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:19,412 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:19,427 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:35:21,409 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,410 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:21,519 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,520 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:66 - connection is null ! diff --git a/abstract-factory/build/log/uatLog.log b/abstract-factory/build/log/uatLog.log new file mode 100644 index 000000000000..d9efd856db56 --- /dev/null +++ b/abstract-factory/build/log/uatLog.log @@ -0,0 +1,98 @@ +[UAPUnit]09/30 14:26:28,643 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:26:28,746 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:26:28,842 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,844 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:26:28,856 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:28,985 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,986 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:26:29,038 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:26:29,082 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:26:29,085 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:29,086 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:26:29,086 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:35,064 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:35,065 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:37,915 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:28:38,011 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:28:38,096 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,097 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:28:38,109 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:28:38,232 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,233 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,286 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:28:38,325 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:28:38,327 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,328 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:28:38,328 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:29:27,268 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:29:27,269 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:25,747 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:31:25,849 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:31:25,945 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:25,947 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:31:25,959 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:26,087 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,088 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:26,137 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:31:26,174 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:31:26,177 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,177 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:31:26,178 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:41,282 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:41,283 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:42,897 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:32:43,005 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:32:43,107 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:43,109 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:32:43,121 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:32:53,259 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,260 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:53,323 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:32:53,360 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:32:53,363 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,364 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:32:53,364 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:02,088 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:02,090 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:27,817 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:33:27,922 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:33:28,019 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:28,021 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:33:28,033 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:29,154 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,155 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:29,221 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:33:29,260 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:33:29,262 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,263 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:33:29,263 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:32,699 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:32,700 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:04,566 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:34:04,669 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:34:04,767 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:04,769 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:34:04,780 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:24,774 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,775 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:24,846 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:34:24,882 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:34:24,885 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,885 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:34:24,886 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:33,715 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:33,716 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:19,213 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:35:19,314 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:35:19,412 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:19,414 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:35:19,427 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:35:21,409 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,410 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:21,460 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:35:21,515 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:35:21,519 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,520 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:35:21,520 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:66 - connection is null ! diff --git a/abstract-factory/out/.gitignore b/abstract-factory/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/abstract-factory/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/abstract-factory/src/main/java/com/iluwatar/Army.java b/abstract-factory/src/main/java/com/iluwatar/Army.java deleted file mode 100644 index 0365fad96c49..000000000000 --- a/abstract-factory/src/main/java/com/iluwatar/Army.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.iluwatar; - -public interface Army { - -} diff --git a/abstract-factory/src/main/java/com/iluwatar/Castle.java b/abstract-factory/src/main/java/com/iluwatar/Castle.java deleted file mode 100644 index 4cc765bee9b7..000000000000 --- a/abstract-factory/src/main/java/com/iluwatar/Castle.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.iluwatar; - -public interface Castle { - -} diff --git a/abstract-factory/src/main/java/com/iluwatar/King.java b/abstract-factory/src/main/java/com/iluwatar/King.java deleted file mode 100644 index 2a63cb3b1659..000000000000 --- a/abstract-factory/src/main/java/com/iluwatar/King.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.iluwatar; - -public interface King { - -} diff --git a/abstract-factory/src/main/java/com/iluwatar/App.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/App.java similarity index 93% rename from abstract-factory/src/main/java/com/iluwatar/App.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/App.java index bb6b083add1e..b53f0ffb6cfa 100644 --- a/abstract-factory/src/main/java/com/iluwatar/App.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/App.java @@ -1,29 +1,29 @@ -package com.iluwatar; - -/** - * - * The essence of the Abstract Factory pattern is a factory interface (KingdomFactory) - * and its implementations (ElfKingdomFactory, OrcKingdomFactory). - * - * The example uses both concrete implementations to create a king, a castle and an - * army. - * - */ -public class App -{ - public static void main( String[] args ) - { - createKingdom(new ElfKingdomFactory()); - createKingdom(new OrcKingdomFactory()); - } - - public static void createKingdom(KingdomFactory factory) { - King king = factory.createKing(); - Castle castle = factory.createCastle(); - Army army = factory.createArmy(); - System.out.println("The kingdom was created."); - System.out.println(king); - System.out.println(castle); - System.out.println(army); - } -} +package com.iluwatar.absfactory; + +/** + * + * The essence of the Abstract Factory pattern is a factory interface (KingdomFactory) + * and its implementations (ElfKingdomFactory, OrcKingdomFactory). + * + * The example uses both concrete implementations to create a king, a castle and an + * army. + * + */ +public class App +{ + public static void main( String[] args ) + { + createKingdom(new ElfKingdomFactory()); + createKingdom(new OrcKingdomFactory()); + } + + public static void createKingdom(KingdomFactory factory) { + King king = factory.createKing(); + Castle castle = factory.createCastle(); + Army army = factory.createArmy(); + System.out.println("The kingdom was created."); + System.out.println(king); + System.out.println(castle); + System.out.println(army); + } +} diff --git a/abstract-factory/src/main/java/com/iluwatar/absfactory/Army.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/Army.java new file mode 100644 index 000000000000..15f5045a4c06 --- /dev/null +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/Army.java @@ -0,0 +1,5 @@ +package com.iluwatar.absfactory; + +public interface Army { + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/absfactory/Castle.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/Castle.java new file mode 100644 index 000000000000..7272f08c416e --- /dev/null +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/Castle.java @@ -0,0 +1,5 @@ +package com.iluwatar.absfactory; + +public interface Castle { + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfArmy.java similarity index 78% rename from abstract-factory/src/main/java/com/iluwatar/ElfArmy.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/ElfArmy.java index 1df451c9cb60..043726398b44 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfArmy.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class ElfArmy implements Army { - - @Override - public String toString() { - return "This is the Elven Army!"; - } - -} +package com.iluwatar.absfactory; + +public class ElfArmy implements Army { + + @Override + public String toString() { + return "This is the Elven Army!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfCastle.java similarity index 79% rename from abstract-factory/src/main/java/com/iluwatar/ElfCastle.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/ElfCastle.java index deaf6a58df55..57731a55af56 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfCastle.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class ElfCastle implements Castle { - - @Override - public String toString() { - return "This is the Elven castle!"; - } - -} +package com.iluwatar.absfactory; + +public class ElfCastle implements Castle { + + @Override + public String toString() { + return "This is the Elven castle!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfKing.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKing.java similarity index 78% rename from abstract-factory/src/main/java/com/iluwatar/ElfKing.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKing.java index 36e51119ab24..ec163185dcb2 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKing.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class ElfKing implements King { - - @Override - public String toString() { - return "This is the Elven king!"; - } - -} +package com.iluwatar.absfactory; + +public class ElfKing implements King { + + @Override + public String toString() { + return "This is the Elven king!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKingdomFactory.java similarity index 86% rename from abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKingdomFactory.java index 715e8123c022..2356ecf0a14d 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/ElfKingdomFactory.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -/** - * - * Concrete factory. - * - */ -public class ElfKingdomFactory implements KingdomFactory { - - public Castle createCastle() { - return new ElfCastle(); - } - - public King createKing() { - return new ElfKing(); - } - - public Army createArmy() { - return new ElfArmy(); - } - -} +package com.iluwatar.absfactory; + +/** + * + * Concrete factory. + * + */ +public class ElfKingdomFactory implements KingdomFactory { + + public Castle createCastle() { + return new ElfCastle(); + } + + public King createKing() { + return new ElfKing(); + } + + public Army createArmy() { + return new ElfArmy(); + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/absfactory/King.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/King.java new file mode 100644 index 000000000000..9d9c35c827a1 --- /dev/null +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/King.java @@ -0,0 +1,5 @@ +package com.iluwatar.absfactory; + +public interface King { + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/KingdomFactory.java similarity index 80% rename from abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/KingdomFactory.java index d1818b62e306..045452e3f659 100644 --- a/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/KingdomFactory.java @@ -1,14 +1,14 @@ -package com.iluwatar; - -/** - * - * The factory interface. - * - */ -public interface KingdomFactory { - - Castle createCastle(); - King createKing(); - Army createArmy(); - -} +package com.iluwatar.absfactory; + +/** + * + * The factory interface. + * + */ +public interface KingdomFactory { + + Castle createCastle(); + King createKing(); + Army createArmy(); + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcArmy.java similarity index 78% rename from abstract-factory/src/main/java/com/iluwatar/OrcArmy.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/OrcArmy.java index d4e2515f6311..9b76b7ae481e 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcArmy.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class OrcArmy implements Army { - - @Override - public String toString() { - return "This is the Orcish Army!"; - } - -} +package com.iluwatar.absfactory; + +public class OrcArmy implements Army { + + @Override + public String toString() { + return "This is the Orcish Army!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcCastle.java similarity index 79% rename from abstract-factory/src/main/java/com/iluwatar/OrcCastle.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/OrcCastle.java index daa49f43f18f..8d9a30babef9 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcCastle.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class OrcCastle implements Castle { - - @Override - public String toString() { - return "This is the Orcish castle!"; - } - -} +package com.iluwatar.absfactory; + +public class OrcCastle implements Castle { + + @Override + public String toString() { + return "This is the Orcish castle!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcKing.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKing.java similarity index 78% rename from abstract-factory/src/main/java/com/iluwatar/OrcKing.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKing.java index b6ba989d7647..5c57618a57f6 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKing.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class OrcKing implements King { - - @Override - public String toString() { - return "This is the Orc king!"; - } - -} +package com.iluwatar.absfactory; + +public class OrcKing implements King { + + @Override + public String toString() { + return "This is the Orc king!"; + } + +} diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKingdomFactory.java similarity index 79% rename from abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java rename to abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKingdomFactory.java index 1a0d6d713b7d..5fb97028a63e 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/absfactory/OrcKingdomFactory.java @@ -1,22 +1,26 @@ -package com.iluwatar; - -/** - * - * Concrete factory. - * - */ -public class OrcKingdomFactory implements KingdomFactory { - - public Castle createCastle() { - return new OrcCastle(); - } - - public King createKing() { - return new OrcKing(); - } - - public Army createArmy() { - return new OrcArmy(); - } - -} +package com.iluwatar.absfactory; + + +/** + * + * Concrete factory. + * + */ +public class OrcKingdomFactory implements KingdomFactory { + + @Override + public Castle createCastle() { + return new OrcCastle(); + } + + @Override + public King createKing() { + return new OrcKing(); + } + + @Override + public Army createArmy() { + return new OrcArmy(); + } + +} diff --git a/abstract-factory/src/test/com/iluwatar/AppTest.java b/abstract-factory/src/test/com/iluwatar/AppTest.java new file mode 100644 index 000000000000..b40ccdc7bdfb --- /dev/null +++ b/abstract-factory/src/test/com/iluwatar/AppTest.java @@ -0,0 +1,26 @@ +package com.iluwatar; + +import org.testng.annotations.Test; + +public class AppTest { + + @Test + public void createKingdom() { + try { + App.createKingdom(new ElfKingdomFactory()); + App.createKingdom(new ElfKingdomFactory()); + } catch (Exception e) { + throw new RuntimeException(); + } + + } + + @Test + public void main() { + try { + App.main(null); + } catch (Exception e) { + throw new RuntimeException(); + } + } +} diff --git a/abstract-factory/src/test/log/testResult.log b/abstract-factory/src/test/log/testResult.log new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/abstract-factory/src/test/log/uatError.log b/abstract-factory/src/test/log/uatError.log new file mode 100644 index 000000000000..b3fdd226a739 --- /dev/null +++ b/abstract-factory/src/test/log/uatError.log @@ -0,0 +1,56 @@ +[UAPUnit]09/30 14:26:28,842 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,856 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:28,985 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,986 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:26:29,085 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:29,086 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:35,064 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:35,065 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,096 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,109 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:28:38,232 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,233 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,327 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,328 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:29:27,268 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:29:27,269 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:25,945 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:25,959 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:26,087 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,088 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:26,177 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,178 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:41,282 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:41,283 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:43,107 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:43,121 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:32:53,259 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,260 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:53,363 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,364 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:02,088 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:02,090 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:28,019 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:28,033 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:29,154 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,155 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:29,262 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,263 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:32,699 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:32,700 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:04,767 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:04,780 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:24,774 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,775 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:24,885 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,886 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:33,715 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:33,716 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:19,412 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:19,427 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:35:21,409 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,410 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:21,519 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,520 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:66 - connection is null ! diff --git a/abstract-factory/src/test/log/uatLog.log b/abstract-factory/src/test/log/uatLog.log new file mode 100644 index 000000000000..d9efd856db56 --- /dev/null +++ b/abstract-factory/src/test/log/uatLog.log @@ -0,0 +1,98 @@ +[UAPUnit]09/30 14:26:28,643 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:26:28,746 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:26:28,842 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,844 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:26:28,856 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:28,985 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:28,986 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:26:29,038 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:26:29,082 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:26:29,085 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:29,086 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:26:29,086 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:26:35,064 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:26:35,065 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:37,915 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:28:38,011 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:28:38,096 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,097 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:28:38,109 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:28:38,232 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,233 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:28:38,286 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:28:38,325 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:28:38,327 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:28:38,328 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:28:38,328 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:29:27,268 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:29:27,269 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:25,747 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:31:25,849 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:31:25,945 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:25,947 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:31:25,959 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:26,087 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,088 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:31:26,137 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:31:26,174 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:31:26,177 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:26,177 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:31:26,178 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:31:41,282 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:31:41,283 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:42,897 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:32:43,005 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:32:43,107 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:43,109 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:32:43,121 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:32:53,259 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,260 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:32:53,323 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:32:53,360 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:32:53,363 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:32:53,364 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:32:53,364 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:02,088 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:02,090 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:27,817 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:33:27,922 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:33:28,019 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:28,021 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:33:28,033 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:29,154 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,155 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:33:29,221 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:33:29,260 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:33:29,262 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:29,263 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:33:29,263 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:33:32,699 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:33:32,700 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:04,566 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:34:04,669 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:34:04,767 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:04,769 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:34:04,780 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:24,774 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,775 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:34:24,846 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:34:24,882 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:34:24,885 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:24,885 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:34:24,886 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:34:33,715 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:34:33,716 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:19,213 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:35:19,314 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:35:19,412 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:19,414 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:35:19,427 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:35:21,409 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,410 ERROR [main] DBManage:66 - connection is null ! +[UAPUnit]09/30 14:35:21,460 INFO [main] ExcelDataProvider:34 - excelPath:F:\java-design-patterns\abstract-factory\out\bin\resources\data\excel\AppTest.xls +[UAPUnit]09/30 14:35:21,515 WARN [main] AppLogMgrImpl:178 - invalid log path(debug.log), verification of this file will be skipped +[UAPUnit]09/30 14:35:21,519 ERROR [main] DBManage:44 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:35:21,520 INFO [main] DBManage:51 - dataFile path:c:\temp\datafile.xml +[UAPUnit]09/30 14:35:21,520 ERROR [main] DBManage:56 - +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:91 - No suitable driver found for jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive +[UAPUnit]09/30 14:37:01,536 ERROR [main] DBManage:66 - connection is null ! diff --git a/abstract-factory/src/test/log4j.xml b/abstract-factory/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/abstract-factory/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/AppTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/AppTest.java new file mode 100644 index 000000000000..9c673db00efa --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/AppTest.java @@ -0,0 +1,77 @@ +package nc.tc.com.iluwatar; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import com.iluwatar.App; +import com.iluwatar.KingdomFactory; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.framework.BaseTestCase; + +public class AppTest extends BaseTestCase { + App app = null; + DBManage dbManage = null; + + @BeforeClass + public void BeforeClass() { + app = new App(); + } + + @AfterClass + public void AfterClass() { + } + + @BeforeMethod + public void BeforeMethod() { + List tableList = new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage = new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod() { + dbManage.tableRollBack(); + } + + @Test(description = "", dependsOnMethods = {}, groups = "", timeOut = 100000, dataProvider = "dp") + public void main(Map> dp) { + + // Construct method parameters + String[] args = {}; + + // Invoke tested method + App.main(args); + + // Verify result is ok + + // Verify Object1 == Object2 + Assert.assertEquals("actual", "actual"); + Assert.assertNotNull("actual"); + } + + @Test(description = "", dependsOnMethods = {}, groups = "", timeOut = 100000, dataProvider = "dp") + public void createKingdom(Map> dp) { + + // Construct method parameters + KingdomFactory factory = null; + + // Invoke tested method + App.createKingdom(factory); + + // Verify result is ok + + // Verify Object1 == Object2 + Assert.assertEquals("actual", "actual"); + Assert.assertNotNull("actual"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/ArmyTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/ArmyTest.java new file mode 100644 index 000000000000..6a34e084fb90 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/ArmyTest.java @@ -0,0 +1,45 @@ +package nc.tc.com.iluwatar; + +import java.util.ArrayList; +import java.util.List; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; + +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.framework.BaseTestCase; + +public class ArmyTest extends BaseTestCase { + Class army = null; + DBManage dbManage = null; + + @BeforeClass + public void BeforeClass() { + try { + army = Class.forName("com.iluwatar.Army"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @AfterClass + public void AfterClass() { + } + + @BeforeMethod + public void BeforeMethod() { + List tableList = new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage = new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod() { + dbManage.tableRollBack(); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/CastleTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/CastleTest.java new file mode 100644 index 000000000000..6367fcb7aa92 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/CastleTest.java @@ -0,0 +1,45 @@ +package nc.tc.com.iluwatar; + +import java.util.ArrayList; +import java.util.List; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; + +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.framework.BaseTestCase; + +public class CastleTest extends BaseTestCase { + Class castle = null; + DBManage dbManage = null; + + @BeforeClass + public void BeforeClass() { + try { + castle = Class.forName("com.iluwatar.Castle"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @AfterClass + public void AfterClass() { + } + + @BeforeMethod + public void BeforeMethod() { + List tableList = new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage = new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod() { + dbManage.tableRollBack(); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/ElfArmyTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfArmyTest.java new file mode 100644 index 000000000000..c55d86fc4893 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfArmyTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.ElfArmy; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class ElfArmyTest extends BaseTestCase { + ElfArmy elfArmy=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + elfArmy=new ElfArmy(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=elfArmy.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/ElfCastleTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfCastleTest.java new file mode 100644 index 000000000000..a97cd700445a --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfCastleTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.ElfCastle; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class ElfCastleTest extends BaseTestCase { + ElfCastle elfCastle=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + elfCastle=new ElfCastle(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=elfCastle.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingTest.java new file mode 100644 index 000000000000..4a9c99b67a1e --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.ElfKing; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class ElfKingTest extends BaseTestCase { + ElfKing elfKing=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + elfKing=new ElfKing(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=elfKing.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingdomFactoryTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingdomFactoryTest.java new file mode 100644 index 000000000000..7e4275e1ffd0 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/ElfKingdomFactoryTest.java @@ -0,0 +1,99 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.ElfKingdomFactory; +import com.yonyou.uat.framework.BaseTestCase; +import com.iluwatar.Castle; +import com.iluwatar.King; +import com.iluwatar.Army; +public class ElfKingdomFactoryTest extends BaseTestCase { + ElfKingdomFactory elfKingdomFactory=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + elfKingdomFactory=new ElfKingdomFactory(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createCastle( Map> dp){ + + //Construct method parameters + + //Invoke tested method + Castle retObj=null; + retObj=elfKingdomFactory.createCastle(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createKing( Map> dp){ + + //Construct method parameters + + //Invoke tested method + King retObj=null; + retObj=elfKingdomFactory.createKing(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createArmy( Map> dp){ + + //Construct method parameters + + //Invoke tested method + Army retObj=null; + retObj=elfKingdomFactory.createArmy(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/KingTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/KingTest.java new file mode 100644 index 000000000000..4bea14683e7d --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/KingTest.java @@ -0,0 +1,45 @@ +package nc.tc.com.iluwatar; + +import java.util.ArrayList; +import java.util.List; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; + +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.framework.BaseTestCase; + +public class KingTest extends BaseTestCase { + Class king = null; + DBManage dbManage = null; + + @BeforeClass + public void BeforeClass() { + try { + king = Class.forName("com.iluwatar.King"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @AfterClass + public void AfterClass() { + } + + @BeforeMethod + public void BeforeMethod() { + List tableList = new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage = new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod() { + dbManage.tableRollBack(); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/KingdomFactoryTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/KingdomFactoryTest.java new file mode 100644 index 000000000000..6d10383db28e --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/KingdomFactoryTest.java @@ -0,0 +1,45 @@ +package nc.tc.com.iluwatar; + +import java.util.ArrayList; +import java.util.List; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; + +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.framework.BaseTestCase; + +public class KingdomFactoryTest extends BaseTestCase { + Class kingdomFactory = null; + DBManage dbManage = null; + + @BeforeClass + public void BeforeClass() { + try { + kingdomFactory = Class.forName("com.iluwatar.KingdomFactory"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @AfterClass + public void AfterClass() { + } + + @BeforeMethod + public void BeforeMethod() { + List tableList = new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage = new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod() { + dbManage.tableRollBack(); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/OrcArmyTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcArmyTest.java new file mode 100644 index 000000000000..464056719361 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcArmyTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.OrcArmy; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class OrcArmyTest extends BaseTestCase { + OrcArmy orcArmy=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + orcArmy=new OrcArmy(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=orcArmy.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/OrcCastleTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcCastleTest.java new file mode 100644 index 000000000000..d4a46e49ed1b --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcCastleTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.OrcCastle; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class OrcCastleTest extends BaseTestCase { + OrcCastle orcCastle=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + orcCastle=new OrcCastle(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=orcCastle.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingTest.java new file mode 100644 index 000000000000..7436f388ab91 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingTest.java @@ -0,0 +1,67 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.OrcKing; +import com.yonyou.uat.framework.BaseTestCase; +import java.lang.String; +public class OrcKingTest extends BaseTestCase { + OrcKing orcKing=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + orcKing=new OrcKing(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void toString( Map> dp){ + + //Construct method parameters + + //Invoke tested method + String retObj=""; + retObj=orcKing.toString(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertEquals(retObj,"expectValue"); + } +} diff --git a/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingdomFactoryTest.java b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingdomFactoryTest.java new file mode 100644 index 000000000000..b0b3507eda01 --- /dev/null +++ b/abstract-factory/src/test/nc/tc/com/iluwatar/OrcKingdomFactoryTest.java @@ -0,0 +1,99 @@ +package nc.tc.com.iluwatar; +import org.testng.*; +import java.util.ArrayList; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.util.Iterator; +import java.util.Map; +import java.util.List; +import java.util.HashMap; +import java.io.Serializable; +import jxl.read.biff.BiffException; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import com.yonyou.uat.util.ExcelDataProvider; +import com.yonyou.uat.util.DBDataProvider; +import com.yonyou.uat.dbmanagement.DBManage; +import com.yonyou.uat.dbmanagement.QueryInfoVO; +import com.iluwatar.OrcKingdomFactory; +import com.yonyou.uat.framework.BaseTestCase; +import com.iluwatar.Castle; +import com.iluwatar.King; +import com.iluwatar.Army; +public class OrcKingdomFactoryTest extends BaseTestCase { + OrcKingdomFactory orcKingdomFactory=null; + DBManage dbManage=null; + + @BeforeClass + public void BeforeClass(){ + orcKingdomFactory=new OrcKingdomFactory(); + } + + @AfterClass + public void AfterClass(){ + } + + @BeforeMethod + public void BeforeMethod(){ + List tableList=new ArrayList(); + tableList.add("pub_wfexptlog"); + dbManage=new DBManage(); + dbManage.setTableList(tableList); + dbManage.tableExport(); + } + + @AfterMethod + public void AfterMethod(){ + dbManage.tableRollBack(); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createCastle( Map> dp){ + + //Construct method parameters + + //Invoke tested method + Castle retObj=null; + retObj=orcKingdomFactory.createCastle(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createKing( Map> dp){ + + //Construct method parameters + + //Invoke tested method + King retObj=null; + retObj=orcKingdomFactory.createKing(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } + + @Test(description="",dependsOnMethods={},groups="",timeOut=100000,dataProvider="dp") + public void createArmy( Map> dp){ + + //Construct method parameters + + //Invoke tested method + Army retObj=null; + retObj=orcKingdomFactory.createArmy(); + + //Verify result is ok + + //Verify Object1 == Object2 + Assert.assertNotNull(retObj); + } +} diff --git a/abstract-factory/src/test/resources/configure/UATApplicationContext.xml b/abstract-factory/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/abstract-factory/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/abstract-factory/src/test/resources/configure/prop.xml b/abstract-factory/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/abstract-factory/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/abstract-factory/src/test/resources/configure/test_data_source.xml b/abstract-factory/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/abstract-factory/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/abstract-factory/src/test/resources/configure/uat.properties b/abstract-factory/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/abstract-factory/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/abstract-factory/src/test/resources/configure/uat_spring_conf.xml b/abstract-factory/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/abstract-factory/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/abstract-factory/src/test/resources/data/backup/README b/abstract-factory/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/abstract-factory/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/resources/data/config/README b/abstract-factory/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/abstract-factory/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/resources/data/excel/AppTest.xls b/abstract-factory/src/test/resources/data/excel/AppTest.xls new file mode 100644 index 000000000000..4aa3a04a78f7 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/AppTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/AppTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/AppTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..4aa3a04a78f7 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/AppTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/ArmyTest.xls b/abstract-factory/src/test/resources/data/excel/ArmyTest.xls new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ArmyTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/ArmyTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/ArmyTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ArmyTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/CastleTest.xls b/abstract-factory/src/test/resources/data/excel/CastleTest.xls new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/CastleTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/CastleTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/CastleTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/CastleTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls b/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfArmyTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls b/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfCastleTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls b/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfKingTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls b/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls new file mode 100644 index 000000000000..94630e962802 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..94630e962802 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/ElfKingdomFactoryTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/KingTest.xls b/abstract-factory/src/test/resources/data/excel/KingTest.xls new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/KingTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/KingTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/KingTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/KingTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls b/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..6bbc76a94fc0 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/KingdomFactoryTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls b/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcArmyTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls b/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcCastleTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls b/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..3cd3e9710e6d Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcKingTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls b/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls new file mode 100644 index 000000000000..94630e962802 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls differ diff --git a/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls_2014_09_30_141708 b/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls_2014_09_30_141708 new file mode 100644 index 000000000000..94630e962802 Binary files /dev/null and b/abstract-factory/src/test/resources/data/excel/OrcKingdomFactoryTest.xls_2014_09_30_141708 differ diff --git a/abstract-factory/src/test/resources/data/excel/README b/abstract-factory/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/abstract-factory/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/resources/data/object/README b/abstract-factory/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/abstract-factory/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/resources/data/spring/README b/abstract-factory/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/abstract-factory/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/resources/temp/README b/abstract-factory/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/abstract-factory/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/abstract-factory/src/test/testng.xml b/abstract-factory/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/abstract-factory/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/abstract-factory/test-output/Default suite/Default test.html b/abstract-factory/test-output/Default suite/Default test.html new file mode 100644 index 000000000000..bf78f072e55b --- /dev/null +++ b/abstract-factory/test-output/Default suite/Default test.html @@ -0,0 +1,89 @@ + + +TestNG: Default test + + + + + + + + +

Default test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:2/0/0
Started on:Tue Sep 30 14:44:17 CST 2014
Total time:11 seconds (11176 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodExceptionTime (seconds)Instance
createKingdom
Test class: com.iluwatar.AppTest
0com.iluwatar.AppTest@e2ecc7
main
Test class: com.iluwatar.AppTest
11com.iluwatar.AppTest@e2ecc7

+ + \ No newline at end of file diff --git a/abstract-factory/test-output/Default suite/Default test.xml b/abstract-factory/test-output/Default suite/Default test.xml new file mode 100644 index 000000000000..57a5121ca811 --- /dev/null +++ b/abstract-factory/test-output/Default suite/Default test.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/abstract-factory/test-output/Default suite/testng-failed.xml b/abstract-factory/test-output/Default suite/testng-failed.xml new file mode 100644 index 000000000000..f72314e6397a --- /dev/null +++ b/abstract-factory/test-output/Default suite/testng-failed.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/abstract-factory/test-output/bullet_point.png b/abstract-factory/test-output/bullet_point.png new file mode 100644 index 000000000000..176e6d5b3d64 Binary files /dev/null and b/abstract-factory/test-output/bullet_point.png differ diff --git a/abstract-factory/test-output/collapseall.gif b/abstract-factory/test-output/collapseall.gif new file mode 100644 index 000000000000..a2d80a9044f3 Binary files /dev/null and b/abstract-factory/test-output/collapseall.gif differ diff --git a/abstract-factory/test-output/emailable-report.html b/abstract-factory/test-output/emailable-report.html new file mode 100644 index 000000000000..3e81c2b55223 --- /dev/null +++ b/abstract-factory/test-output/emailable-report.html @@ -0,0 +1,46 @@ + + + +TestNG: Unit Test + + + + + + +
TestMethods
Passed
Scenarios
Passed
# skipped# failedTotal
Time
Included
Groups
Excluded
Groups
Default test220011.2 seconds
+ + + + +
ClassMethod# of
Scenarios
StartTime
(ms)
Default test — passed
com.iluwatar.AppTestcreateKingdom 1141205945783073
main 1141205945790411093
+

Default test

+

com.iluwatar.AppTest:createKingdom

+

back to summary

+

com.iluwatar.AppTest:main

+

back to summary

+ diff --git a/abstract-factory/test-output/failed.png b/abstract-factory/test-output/failed.png new file mode 100644 index 000000000000..c117be59a9ec Binary files /dev/null and b/abstract-factory/test-output/failed.png differ diff --git a/abstract-factory/test-output/index.html b/abstract-factory/test-output/index.html new file mode 100644 index 000000000000..21d7e51c966c --- /dev/null +++ b/abstract-factory/test-output/index.html @@ -0,0 +1,251 @@ + + + + + TestNG reports + + + + + + + + + + +
+ Test results +
+ 1 suite +
+ +
+
+
+
+
+ + com.iluwatar.AppTest +
+
+
+
+ + + createKingdom +
+
+
+
+ + + main +
+
+
+
+
+
+
+ C:\Users\duanmh\AppData\Local\Temp\testng-eclipse--61379382\testng-customsuite.xml +
+
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="Default suite">
+  <test verbose="2" name="Default test">
+    <classes>
+      <class name="com.iluwatar.AppTest"/>
+    </classes>
+  </test> <!-- Default test -->
+</suite> <!-- Default suite -->
+            
+
+
+
+
+ Tests for Default suite +
+
+
    +
  • + Default test (1 class) +
  • +
+
+
+
+
+ Groups for Default suite +
+
+
+
+
+
+ Times for Default suite +
+
+
+ + Total running time: 11 seconds +
+
+
+
+
+
+
+ Reporter output for Default suite +
+
+
+
+
+
+ 0 ignored methods +
+
+
+
+
+
+ Methods in chronological order +
+
+
+
com.iluwatar.AppTest
+
+ createKingdom + 0 ms +
+
+ main + 74 ms +
+
+
+
+
+ + diff --git a/abstract-factory/test-output/jquery-1.7.1.min.js b/abstract-factory/test-output/jquery-1.7.1.min.js new file mode 100644 index 000000000000..198b3ff07d80 --- /dev/null +++ b/abstract-factory/test-output/jquery-1.7.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/abstract-factory/test-output/junitreports/TEST-com.iluwatar.AppTest.xml b/abstract-factory/test-output/junitreports/TEST-com.iluwatar.AppTest.xml new file mode 100644 index 000000000000..0ace922a1037 --- /dev/null +++ b/abstract-factory/test-output/junitreports/TEST-com.iluwatar.AppTest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/abstract-factory/test-output/junitreports/TEST-nc.tc.com.iluwatar.AppTest.xml b/abstract-factory/test-output/junitreports/TEST-nc.tc.com.iluwatar.AppTest.xml new file mode 100644 index 000000000000..bd0c16626099 --- /dev/null +++ b/abstract-factory/test-output/junitreports/TEST-nc.tc.com.iluwatar.AppTest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + diff --git a/abstract-factory/test-output/navigator-bullet.png b/abstract-factory/test-output/navigator-bullet.png new file mode 100644 index 000000000000..36d90d395c51 Binary files /dev/null and b/abstract-factory/test-output/navigator-bullet.png differ diff --git a/abstract-factory/test-output/old/Default suite/Default test.properties b/abstract-factory/test-output/old/Default suite/Default test.properties new file mode 100644 index 000000000000..37da032f9d0c --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/Default test.properties @@ -0,0 +1 @@ +[SuiteResult context=Default test] \ No newline at end of file diff --git a/abstract-factory/test-output/old/Default suite/classes.html b/abstract-factory/test-output/old/Default suite/classes.html new file mode 100644 index 000000000000..d86fecc02600 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/classes.html @@ -0,0 +1,32 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class nameMethod nameGroups
com.iluwatar.AppTest  
@Test
 createKingdom 
 main 
@BeforeClass
@BeforeMethod
@AfterMethod
@AfterClass
diff --git a/abstract-factory/test-output/old/Default suite/groups.html b/abstract-factory/test-output/old/Default suite/groups.html new file mode 100644 index 000000000000..199cb3f11888 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/groups.html @@ -0,0 +1 @@ +

Groups used for this test run

\ No newline at end of file diff --git a/abstract-factory/test-output/old/Default suite/index.html b/abstract-factory/test-output/old/Default suite/index.html new file mode 100644 index 000000000000..8ed202c3be37 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/index.html @@ -0,0 +1,6 @@ +Results for Default suite + + + + + diff --git a/abstract-factory/test-output/old/Default suite/main.html b/abstract-factory/test-output/old/Default suite/main.html new file mode 100644 index 000000000000..5888ae0744dd --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/main.html @@ -0,0 +1,2 @@ +Results for Default suite +Select a result on the left-hand pane. diff --git a/abstract-factory/test-output/old/Default suite/methods-alphabetical.html b/abstract-factory/test-output/old/Default suite/methods-alphabetical.html new file mode 100644 index 000000000000..c6fdd1b53648 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/methods-alphabetical.html @@ -0,0 +1,8 @@ +

Methods run, sorted chronologically

>> means before, << means after


Default suite

(Hover the method name to see the test class name)

+ + + + + + +
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
14/09/30 14:44:17 0      createKingdommain@1957306
14/09/30 14:44:17 74      mainmain@1957306
diff --git a/abstract-factory/test-output/old/Default suite/methods-not-run.html b/abstract-factory/test-output/old/Default suite/methods-not-run.html new file mode 100644 index 000000000000..54b14cb854b6 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/methods-not-run.html @@ -0,0 +1,2 @@ +

Methods that were not run

+
\ No newline at end of file diff --git a/abstract-factory/test-output/old/Default suite/methods.html b/abstract-factory/test-output/old/Default suite/methods.html new file mode 100644 index 000000000000..c6fdd1b53648 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/methods.html @@ -0,0 +1,8 @@ +

Methods run, sorted chronologically

>> means before, << means after


Default suite

(Hover the method name to see the test class name)

+ + + + + + +
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
14/09/30 14:44:17 0      createKingdommain@1957306
14/09/30 14:44:17 74      mainmain@1957306
diff --git a/abstract-factory/test-output/old/Default suite/reporter-output.html b/abstract-factory/test-output/old/Default suite/reporter-output.html new file mode 100644 index 000000000000..063bc2e96fd0 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/reporter-output.html @@ -0,0 +1 @@ +

Reporter output

\ No newline at end of file diff --git a/abstract-factory/test-output/old/Default suite/testng.xml.html b/abstract-factory/test-output/old/Default suite/testng.xml.html new file mode 100644 index 000000000000..fb746ab57551 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/testng.xml.html @@ -0,0 +1 @@ +testng.xml for Default suite<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="com.iluwatar.AppTest"/>
    </classes>
  </test> <!-- Default test -->
</suite> <!-- Default suite -->
\ No newline at end of file diff --git a/abstract-factory/test-output/old/Default suite/toc.html b/abstract-factory/test-output/old/Default suite/toc.html new file mode 100644 index 000000000000..4211d4ca09e3 --- /dev/null +++ b/abstract-factory/test-output/old/Default suite/toc.html @@ -0,0 +1,30 @@ + + +Results for Default suite + + + + +

Results for
Default suite

+ + + + + + + + + + +
1 test1 class2 methods:
+  chronological
+  alphabetical
+  not run (0)
0 groupreporter outputtestng.xml
+ +

+

+
Default test (2/0/0) + Results +
+
+ \ No newline at end of file diff --git a/abstract-factory/test-output/old/index.html b/abstract-factory/test-output/old/index.html new file mode 100644 index 000000000000..593955c38cc9 --- /dev/null +++ b/abstract-factory/test-output/old/index.html @@ -0,0 +1,9 @@ + +Test results + + +

Test results

+ + + +
SuitePassedFailedSkippedtestng.xml
Total200 
Default suite200Link
diff --git a/abstract-factory/test-output/passed.png b/abstract-factory/test-output/passed.png new file mode 100644 index 000000000000..45e85bbfd0f5 Binary files /dev/null and b/abstract-factory/test-output/passed.png differ diff --git a/abstract-factory/test-output/skipped.png b/abstract-factory/test-output/skipped.png new file mode 100644 index 000000000000..c36a324398f7 Binary files /dev/null and b/abstract-factory/test-output/skipped.png differ diff --git a/abstract-factory/test-output/testng-failed.xml b/abstract-factory/test-output/testng-failed.xml new file mode 100644 index 000000000000..f72314e6397a --- /dev/null +++ b/abstract-factory/test-output/testng-failed.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/abstract-factory/test-output/testng-reports.css b/abstract-factory/test-output/testng-reports.css new file mode 100644 index 000000000000..16dfbdcf1c62 --- /dev/null +++ b/abstract-factory/test-output/testng-reports.css @@ -0,0 +1,304 @@ +body { + margin: 0px 0px 5px 5px; +} + +ul { + margin: 0px; +} + +li { + list-style-type: none; +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.navigator-selected { + background: #ffa500; +} + +.wrapper { + overflow: hidden; +} + +.navigator-root { + margin-top: 60px; + float: left; + width: 400px; + height: 100%; + overflow-y: auto; +} + +.main-panel-root { + margin-top: 60px; +} + +.suite { + margin: 0px 10px 10px 0px; + background-color: #fff8dc; +} + +.suite-name { + padding-left: 10px; + font-size: 25px; + font-family: Times; +} + +.main-panel-header { + padding: 5px; + background-color: #9FB4D9; //afeeee; + font-family: monospace; + font-size: 18px; +} + +.main-panel-content { + padding: 5px; + margin-bottom: 10px; + background-color: #DEE8FC; //d0ffff; +} + +.rounded-window { + border-radius: 10px; + border-style: solid; + border-width: 1px; +} + +.rounded-window-top { + border-top-right-radius: 10px 10px; + border-top-left-radius: 10px 10px; + border-style: solid; + border-width: 1px; + overflow: auto; +} + +.light-rounded-window-top { + border-top-right-radius: 10px 10px; + border-top-left-radius: 10px 10px; +} + +.rounded-window-bottom { + border-style: solid; + border-width: 0px 1px 1px 1px; + border-bottom-right-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + overflow: auto; +} + +.method-name { + font-size: 12px; + font-family: monospace; +} + +.method-content { + border-style: solid; + border-width: 0px 0px 1px 0px; + margin-bottom: 10; + padding-bottom: 5px; + width: 80%; +} + +.parameters { + font-size: 14px; + font-family: monospace; +} + +.stack-trace { + white-space: pre; + font-family: monospace; + font-size: 12px; + margin-top: 0px; + margin-left: 20px; +} + +.testng-xml { + font-family: monospace; +} + +.method-list-content { + margin-left: 10px; +} + +.navigator-suite-content { + margin-left: 10px; + font: 12px 'Lucida Grande'; +} + +.suite-section-title { + margin-top: 10px; + width: 80%; + border-style: solid; + border-width: 1px 0px 0px 0px; + font-family: Times; + font-size: 18px; + font-weight: bold; +} + +.suite-section-content { + list-style-image: url(bullet_point.png); +} + +.top-banner-root { + position: fixed; + width: 100%; + padding: 5px; + margin: 0px 0px 5px 0px; + height: 45px; + background-color: #0066ff; + font-family: Times; + color: #fff; + text-align: center; +} + +.top-banner-title-font { + font-size: 25px; +} + +.test-name { + font-family: 'Lucida Grande'; + font-size: 16px; +} + +.suite-icon { + padding: 5px; + float: right; + height: 20; +} + +.test-group { + font: 20px 'Lucida Grande'; + margin: 5px 5px 10px 5px; + border-width: 0px 0px 1px 0px; + border-style: solid; + padding: 5px; +} + +.test-group-name { + font-weight: bold; +} + +.method-in-group { + font-size: 16px; + margin-left: 80px; +} + +table.google-visualization-table-table { + width: 100%; +} + +.reporter-method-name { + font-size: 14px; + font-family: monospace; +} + +.reporter-method-output-div { + padding: 5px; + margin: 0px 0px 5px 20px; + font-size: 12px; + font-family: monospace; + border-width: 0px 0px 0px 1px; + border-style: solid; +} + +.ignored-class-div { + font-size: 14px; + font-family: monospace; +} + +.ignored-methods-div { + padding: 5px; + margin: 0px 0px 5px 20px; + font-size: 12px; + font-family: monospace; + border-width: 0px 0px 0px 1px; + border-style: solid; +} + +.border-failed { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0px 0px 0px 10px; + border-color: #f00; +} + +.border-skipped { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0px 0px 0px 10px; + border-color: #edc600; +} + +.border-passed { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0px 0px 0px 10px; + border-color: #19f52d; +} + +.times-div { + text-align: center; + padding: 5px; +} + +.suite-total-time { + font: 16px 'Lucida Grande'; +} + +.configuration-suite { + margin-left: 20px; +} + +.configuration-test { + margin-left: 40px; +} + +.configuration-class { + margin-left: 60px; +} + +.configuration-method { + margin-left: 80px; +} + +.test-method { + margin-left: 100px; +} + +.chronological-class { + background-color: #0ccff; + border-style: solid; + border-width: 0px 0px 1px 1px; +} + +.method-start { + float: right; +} + +.chronological-class-name { + padding: 0px 0px 0px 5px; + color: #008; +} + +.after, .before, .test-method { + font-family: monospace; + font-size: 14px; +} + +.navigator-suite-header { + font-size: 22px; + margin: 0px 10px 5px 0px; + background-color: #deb887; + text-align: center; +} + +.collapse-all-icon { + padding: 5px; + float: right; +} diff --git a/abstract-factory/test-output/testng-reports.js b/abstract-factory/test-output/testng-reports.js new file mode 100644 index 000000000000..c2ba487e6c70 --- /dev/null +++ b/abstract-factory/test-output/testng-reports.js @@ -0,0 +1,130 @@ +$(document).ready(function() { + $('a.navigator-link').click(function() { + // Extract the panel for this link + var panel = getPanelName($(this)); + + // Mark this link as currently selected + $('.navigator-link').parent().removeClass('navigator-selected'); + $(this).parent().addClass('navigator-selected'); + + showPanel(panel); + }); + + installMethodHandlers('failed'); + installMethodHandlers('skipped'); + installMethodHandlers('passed', true); // hide passed methods by default + + $('a.method').click(function() { + showMethod($(this)); + return false; + }); + + // Hide all the panels and display the first one (do this last + // to make sure the click() will invoke the listeners) + $('.panel').hide(); + $('.navigator-link').first().click(); + + // Collapse/expand the suites + $('a.collapse-all-link').click(function() { + var contents = $('.navigator-suite-content'); + if (contents.css('display') == 'none') { + contents.show(); + } else { + contents.hide(); + } + }); + + // Keep the navigator div always visible + var $scrollingDiv = $(".navigator-root"); + $(window).scroll(function() { + $scrollingDiv.css('height', $(window).height() - 65); + $scrollingDiv.stop() + .animate({"marginTop": ($(window).scrollTop() + 60) + "px"} ); + }); +}); + +// The handlers that take care of showing/hiding the methods +function installMethodHandlers(name, hide) { + function getContent(t) { + return $('.method-list-content.' + name + "." + t.attr('panel-name')); + } + + function getHideLink(t, name) { + var s = 'a.hide-methods.' + name + "." + t.attr('panel-name'); + return $(s); + } + + function getShowLink(t, name) { + return $('a.show-methods.' + name + "." + t.attr('panel-name')); + } + + function getMethodPanelClassSel(element, name) { + var panelName = getPanelName(element); + var sel = '.' + panelName + "-class-" + name; + return $(sel); + } + + $('a.hide-methods.' + name).click(function() { + var w = getContent($(this)); + w.hide(); + getHideLink($(this), name).hide(); + getShowLink($(this), name).show(); + getMethodPanelClassSel($(this), name).hide(); + }); + + $('a.show-methods.' + name).click(function() { + var w = getContent($(this)); + w.show(); + getHideLink($(this), name).show(); + getShowLink($(this), name).hide(); + showPanel(getPanelName($(this))); + getMethodPanelClassSel($(this), name).show(); + }); + + if (hide) { + $('a.hide-methods.' + name).click(); + } else { + $('a.show-methods.' + name).click(); + } +} + +function getHashForMethod(element) { + return element.attr('hash-for-method'); +} + +function getPanelName(element) { + return element.attr('panel-name'); +} + +function showPanel(panelName) { + $('.panel').hide(); + var panel = $('.panel[panel-name="' + panelName + '"]'); + panel.show(); +} + +function showMethod(element) { + var hashTag = getHashForMethod(element); + var panelName = getPanelName(element); + showPanel(panelName); + var current = document.location.href; + var base = current.substring(0, current.indexOf('#')) + document.location.href = base + '#' + hashTag; + var newPosition = $(document).scrollTop() - 65; + $(document).scrollTop(newPosition); +} + +function drawTable() { + for (var i = 0; i < suiteTableInitFunctions.length; i++) { + window[suiteTableInitFunctions[i]](); + } + + for (var k in window.suiteTableData) { + var v = window.suiteTableData[k]; + var div = v.tableDiv; + var data = v.tableData + var table = new google.visualization.Table(document.getElementById(div)); + table.draw(data, { + showRowNumber : false + }); + } +} diff --git a/abstract-factory/test-output/testng-results.xml b/abstract-factory/test-output/testng-results.xml new file mode 100644 index 000000000000..ff2094a5652b --- /dev/null +++ b/abstract-factory/test-output/testng-results.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/abstract-factory/test-output/testng.css b/abstract-factory/test-output/testng.css new file mode 100644 index 000000000000..5124ba863b37 --- /dev/null +++ b/abstract-factory/test-output/testng.css @@ -0,0 +1,9 @@ +.invocation-failed, .test-failed { background-color: #DD0000; } +.invocation-percent, .test-percent { background-color: #006600; } +.invocation-passed, .test-passed { background-color: #00AA00; } +.invocation-skipped, .test-skipped { background-color: #CCCC00; } + +.main-page { + font-size: x-large; +} + diff --git a/adapter/(default package).ucd b/adapter/(default package).ucd new file mode 100644 index 000000000000..4923fdc4d502 --- /dev/null +++ b/adapter/(default package).ucd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/adapter/.euml2 b/adapter/.euml2 new file mode 100644 index 000000000000..42ca20e2ffde --- /dev/null +++ b/adapter/.euml2 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/adapter/.gitignore b/adapter/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/adapter/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/adapter/.umlproject b/adapter/.umlproject new file mode 100644 index 000000000000..e348ac9b6238 --- /dev/null +++ b/adapter/.umlproject @@ -0,0 +1,7 @@ + + + + + + + diff --git a/adapter/adapter.iml b/adapter/adapter.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/adapter/adapter.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/adapter/adapter.usd b/adapter/adapter.usd new file mode 100644 index 000000000000..a173ee83e2c9 --- /dev/null +++ b/adapter/adapter.usd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/adapter/out/.gitignore b/adapter/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/adapter/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/adapter/src/java.usd b/adapter/src/java.usd new file mode 100644 index 000000000000..a173ee83e2c9 --- /dev/null +++ b/adapter/src/java.usd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/adapter/src/main/java/com/iluwatar/App.java b/adapter/src/main/java/com/iluwatar/adapter/App.java similarity index 93% rename from adapter/src/main/java/com/iluwatar/App.java rename to adapter/src/main/java/com/iluwatar/adapter/App.java index 41e2495a9f72..0677b04f8adc 100644 --- a/adapter/src/main/java/com/iluwatar/App.java +++ b/adapter/src/main/java/com/iluwatar/adapter/App.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -/** - * - * There are two variations of the Adapter pattern: The - * class adapter implements the adaptee's interface whereas - * the object adapter uses composition to contain the adaptee - * in the adapter object. This example uses the object adapter - * approach. - * - * The Adapter (GnomeEngineer) converts the interface of the - * target class (GoblinGlider) into a suitable one expected - * by the client (GnomeEngineeringManager). - * - */ -public class App -{ - public static void main( String[] args ) - { - GnomeEngineeringManager manager = new GnomeEngineeringManager(); - manager.operateDevice(); - } -} +package com.iluwatar.adapter; + +/** + * + * There are two variations of the Adapter pattern: The + * class adapter implements the adaptee's interface whereas + * the object adapter uses composition to contain the adaptee + * in the adapter object. This example uses the object adapter + * approach. + * + * The Adapter (GnomeEngineer) converts the interface of the + * target class (GoblinGlider) into a suitable one expected + * by the client (GnomeEngineeringManager). + * + */ +public class App +{ + public static void main( String[] args ) + { + GnomeEngineeringManager manager = new GnomeEngineeringManager(); + manager.operateDevice(); + } +} diff --git a/adapter/src/main/java/com/iluwatar/Engineer.java b/adapter/src/main/java/com/iluwatar/adapter/Engineer.java similarity index 75% rename from adapter/src/main/java/com/iluwatar/Engineer.java rename to adapter/src/main/java/com/iluwatar/adapter/Engineer.java index d8289df7d95e..1ec0a69bdc9b 100644 --- a/adapter/src/main/java/com/iluwatar/Engineer.java +++ b/adapter/src/main/java/com/iluwatar/adapter/Engineer.java @@ -1,12 +1,12 @@ -package com.iluwatar; - -/** - * - * Engineers can operate devices. - * - */ -public interface Engineer { - - void operateDevice(); - -} +package com.iluwatar.adapter; + +/** + * + * Engineers can operate devices. + * + */ +public interface Engineer { + + void operateDevice(); + +} diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java b/adapter/src/main/java/com/iluwatar/adapter/GnomeEngineer.java similarity index 78% rename from adapter/src/main/java/com/iluwatar/GnomeEngineer.java rename to adapter/src/main/java/com/iluwatar/adapter/GnomeEngineer.java index 92fc5aea82b9..edd67de764fe 100644 --- a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java +++ b/adapter/src/main/java/com/iluwatar/adapter/GnomeEngineer.java @@ -1,25 +1,29 @@ -package com.iluwatar; - -/** - * - * Adapter class. Adapts the interface of the device - * (GoblinGlider) into Engineer interface expected - * by the client (GnomeEngineeringManager). - * - */ -public class GnomeEngineer implements Engineer { - - private GoblinGlider glider; - - public GnomeEngineer() { - glider = new GoblinGlider(); - } - - @Override - public void operateDevice() { - glider.attachGlider(); - glider.gainSpeed(); - glider.takeOff(); - } - -} +package com.iluwatar.adapter; + +/** + * + * Adapter class. Adapts the interface of the device + * (GoblinGlider) into Engineer interface expected + * by the client (GnomeEngineeringManager). + * + */ +public class GnomeEngineer implements Engineer { + + /** + * @uml.property name="glider" + * @uml.associationEnd multiplicity="(1 1)" + */ + private GoblinGlider glider; + + public GnomeEngineer() { + glider = new GoblinGlider(); + } + + @Override + public void operateDevice() { + glider.attachGlider(); + glider.gainSpeed(); + glider.takeOff(); + } + +} diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java b/adapter/src/main/java/com/iluwatar/adapter/GnomeEngineeringManager.java similarity index 72% rename from adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java rename to adapter/src/main/java/com/iluwatar/adapter/GnomeEngineeringManager.java index af3467d30409..dd8ee0e4da5b 100644 --- a/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java +++ b/adapter/src/main/java/com/iluwatar/adapter/GnomeEngineeringManager.java @@ -1,21 +1,25 @@ -package com.iluwatar; - -/** - * - * GnomeEngineering manager uses Engineer to - * operate devices. - * - */ -public class GnomeEngineeringManager implements Engineer { - - private Engineer engineer; - - public GnomeEngineeringManager() { - engineer = new GnomeEngineer(); - } - - @Override - public void operateDevice() { - engineer.operateDevice(); - } -} +package com.iluwatar.adapter; + +/** + * + * GnomeEngineering manager uses Engineer to + * operate devices. + * + */ +public class GnomeEngineeringManager implements Engineer { + + /** + * @uml.property name="engineer" + * @uml.associationEnd multiplicity="(1 1)" + */ + private Engineer engineer; + + public GnomeEngineeringManager() { + engineer = new GnomeEngineer(); + } + + @Override + public void operateDevice() { + engineer.operateDevice(); + } +} diff --git a/adapter/src/main/java/com/iluwatar/GoblinGlider.java b/adapter/src/main/java/com/iluwatar/adapter/GoblinGlider.java similarity index 87% rename from adapter/src/main/java/com/iluwatar/GoblinGlider.java rename to adapter/src/main/java/com/iluwatar/adapter/GoblinGlider.java index a5bcd0722dc2..a97d4c384197 100644 --- a/adapter/src/main/java/com/iluwatar/GoblinGlider.java +++ b/adapter/src/main/java/com/iluwatar/adapter/GoblinGlider.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -/** - * - * Device class (adaptee in the pattern). - * - */ -public class GoblinGlider { - - public void attachGlider() { - System.out.println("Glider attached."); - } - - public void gainSpeed() { - System.out.println("Gaining speed."); - } - - public void takeOff() { - System.out.println("Lift-off!"); - } -} +package com.iluwatar.adapter; + +/** + * + * Device class (adaptee in the pattern). + * + */ +public class GoblinGlider { + + public void attachGlider() { + System.out.println("Glider attached."); + } + + public void gainSpeed() { + System.out.println("Gaining speed."); + } + + public void takeOff() { + System.out.println("Lift-off!"); + } +} diff --git a/adapter/src/test/log4j.xml b/adapter/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/adapter/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/adapter/src/test/resources/configure/UATApplicationContext.xml b/adapter/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/adapter/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/adapter/src/test/resources/configure/prop.xml b/adapter/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/adapter/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/adapter/src/test/resources/configure/test_data_source.xml b/adapter/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/adapter/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/adapter/src/test/resources/configure/uat.properties b/adapter/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/adapter/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/adapter/src/test/resources/configure/uat_spring_conf.xml b/adapter/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/adapter/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/adapter/src/test/resources/data/backup/README b/adapter/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/adapter/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/adapter/src/test/resources/data/config/README b/adapter/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/adapter/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/adapter/src/test/resources/data/excel/README b/adapter/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/adapter/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/adapter/src/test/resources/data/object/README b/adapter/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/adapter/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/adapter/src/test/resources/data/spring/README b/adapter/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/adapter/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/adapter/src/test/resources/temp/README b/adapter/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/adapter/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/adapter/src/test/testng.xml b/adapter/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/adapter/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/bridge/bridge.iml b/bridge/bridge.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/bridge/bridge.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bridge/src/main/java/com/iluwatar/App.java b/bridge/src/main/java/com/iluwatar/bridge/App.java similarity index 94% rename from bridge/src/main/java/com/iluwatar/App.java rename to bridge/src/main/java/com/iluwatar/bridge/App.java index 800b9815cd0a..a91cc1eaa363 100644 --- a/bridge/src/main/java/com/iluwatar/App.java +++ b/bridge/src/main/java/com/iluwatar/bridge/App.java @@ -1,35 +1,35 @@ -package com.iluwatar; - -/** - * - * In Bridge pattern both abstraction (MagicWeapon) - * and implementation (MagicWeaponImp) have their - * own class hierarchies. The interface of the - * implementations can be changed without affecting - * the clients. - * - */ -public class App -{ - public static void main( String[] args ) - { - BlindingMagicWeapon blindingMagicWeapon = new BlindingMagicWeapon(new Excalibur()); - blindingMagicWeapon.wield(); - blindingMagicWeapon.blind(); - blindingMagicWeapon.swing(); - blindingMagicWeapon.unwield(); - - FlyingMagicWeapon flyingMagicWeapon = new FlyingMagicWeapon(new Mjollnir()); - flyingMagicWeapon.wield(); - flyingMagicWeapon.fly(); - flyingMagicWeapon.swing(); - flyingMagicWeapon.unwield(); - - SoulEatingMagicWeapon soulEatingMagicWeapon = new SoulEatingMagicWeapon(new Stormbringer()); - soulEatingMagicWeapon.wield(); - soulEatingMagicWeapon.swing(); - soulEatingMagicWeapon.eatSoul(); - soulEatingMagicWeapon.unwield(); - - } -} +package com.iluwatar.bridge; + +/** + * + * In Bridge pattern both abstraction (MagicWeapon) + * and implementation (MagicWeaponImp) have their + * own class hierarchies. The interface of the + * implementations can be changed without affecting + * the clients. + * + */ +public class App +{ + public static void main( String[] args ) + { + BlindingMagicWeapon blindingMagicWeapon = new BlindingMagicWeapon(new Excalibur()); + blindingMagicWeapon.wield(); + blindingMagicWeapon.blind(); + blindingMagicWeapon.swing(); + blindingMagicWeapon.unwield(); + + FlyingMagicWeapon flyingMagicWeapon = new FlyingMagicWeapon(new Mjollnir()); + flyingMagicWeapon.wield(); + flyingMagicWeapon.fly(); + flyingMagicWeapon.swing(); + flyingMagicWeapon.unwield(); + + SoulEatingMagicWeapon soulEatingMagicWeapon = new SoulEatingMagicWeapon(new Stormbringer()); + soulEatingMagicWeapon.wield(); + soulEatingMagicWeapon.swing(); + soulEatingMagicWeapon.eatSoul(); + soulEatingMagicWeapon.unwield(); + + } +} diff --git a/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeapon.java similarity index 89% rename from bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java rename to bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeapon.java index 9e61acfb2bcc..d4d3088876f4 100644 --- a/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeapon.java @@ -1,33 +1,33 @@ -package com.iluwatar; - -public class BlindingMagicWeapon extends MagicWeapon { - - public BlindingMagicWeapon(BlindingMagicWeaponImp imp) { - super(imp); - } - - @Override - public BlindingMagicWeaponImp getImp() { - return (BlindingMagicWeaponImp) imp; - } - - @Override - public void wield() { - getImp().wieldImp(); - } - - @Override - public void swing() { - getImp().swingImp(); - } - - @Override - public void unwield() { - getImp().unwieldImp(); - } - - public void blind() { - getImp().blindImp(); - } - -} +package com.iluwatar.bridge; + +public class BlindingMagicWeapon extends MagicWeapon { + + public BlindingMagicWeapon(BlindingMagicWeaponImp imp) { + super(imp); + } + + @Override + public BlindingMagicWeaponImp getImp() { + return (BlindingMagicWeaponImp) imp; + } + + @Override + public void wield() { + getImp().wieldImp(); + } + + @Override + public void swing() { + getImp().swingImp(); + } + + @Override + public void unwield() { + getImp().unwieldImp(); + } + + public void blind() { + getImp().blindImp(); + } + +} diff --git a/bridge/src/main/java/com/iluwatar/BlindingMagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeaponImp.java similarity index 78% rename from bridge/src/main/java/com/iluwatar/BlindingMagicWeaponImp.java rename to bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeaponImp.java index 5f8cc7bb7dd8..c241dcc43f39 100644 --- a/bridge/src/main/java/com/iluwatar/BlindingMagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/bridge/BlindingMagicWeaponImp.java @@ -1,7 +1,7 @@ -package com.iluwatar; - -public abstract class BlindingMagicWeaponImp extends MagicWeaponImp { - - public abstract void blindImp(); - -} +package com.iluwatar.bridge; + +public abstract class BlindingMagicWeaponImp extends MagicWeaponImp { + + public abstract void blindImp(); + +} diff --git a/bridge/src/main/java/com/iluwatar/Excalibur.java b/bridge/src/main/java/com/iluwatar/bridge/Excalibur.java similarity index 90% rename from bridge/src/main/java/com/iluwatar/Excalibur.java rename to bridge/src/main/java/com/iluwatar/bridge/Excalibur.java index 83f3e02accc3..0da14c6172a9 100644 --- a/bridge/src/main/java/com/iluwatar/Excalibur.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Excalibur.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class Excalibur extends BlindingMagicWeaponImp { - - @Override - public void wieldImp() { - System.out.println("wielding Excalibur"); - } - - @Override - public void swingImp() { - System.out.println("swinging Excalibur"); - } - - @Override - public void unwieldImp() { - System.out.println("unwielding Excalibur"); - } - - @Override - public void blindImp() { - System.out.println("bright light streams from Excalibur blinding the enemy"); - } - -} +package com.iluwatar.bridge; + +public class Excalibur extends BlindingMagicWeaponImp { + + @Override + public void wieldImp() { + System.out.println("wielding Excalibur"); + } + + @Override + public void swingImp() { + System.out.println("swinging Excalibur"); + } + + @Override + public void unwieldImp() { + System.out.println("unwielding Excalibur"); + } + + @Override + public void blindImp() { + System.out.println("bright light streams from Excalibur blinding the enemy"); + } + +} diff --git a/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeapon.java similarity index 89% rename from bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java rename to bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeapon.java index 2912cb7fc068..bf7fedf50540 100644 --- a/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeapon.java @@ -1,32 +1,32 @@ -package com.iluwatar; - -public class FlyingMagicWeapon extends MagicWeapon { - - public FlyingMagicWeapon(FlyingMagicWeaponImp imp) { - super(imp); - } - - public FlyingMagicWeaponImp getImp() { - return (FlyingMagicWeaponImp) imp; - } - - @Override - public void wield() { - getImp().wieldImp(); - } - - @Override - public void swing() { - getImp().swingImp(); - } - - @Override - public void unwield() { - getImp().unwieldImp(); - } - - public void fly() { - getImp().flyImp(); - } - -} +package com.iluwatar.bridge; + +public class FlyingMagicWeapon extends MagicWeapon { + + public FlyingMagicWeapon(FlyingMagicWeaponImp imp) { + super(imp); + } + + public FlyingMagicWeaponImp getImp() { + return (FlyingMagicWeaponImp) imp; + } + + @Override + public void wield() { + getImp().wieldImp(); + } + + @Override + public void swing() { + getImp().swingImp(); + } + + @Override + public void unwield() { + getImp().unwieldImp(); + } + + public void fly() { + getImp().flyImp(); + } + +} diff --git a/bridge/src/main/java/com/iluwatar/FlyingMagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeaponImp.java similarity index 78% rename from bridge/src/main/java/com/iluwatar/FlyingMagicWeaponImp.java rename to bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeaponImp.java index 5860f110dd6b..83648f622c83 100644 --- a/bridge/src/main/java/com/iluwatar/FlyingMagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/bridge/FlyingMagicWeaponImp.java @@ -1,7 +1,7 @@ -package com.iluwatar; - -public abstract class FlyingMagicWeaponImp extends MagicWeaponImp { - - public abstract void flyImp(); - -} +package com.iluwatar.bridge; + +public abstract class FlyingMagicWeaponImp extends MagicWeaponImp { + + public abstract void flyImp(); + +} diff --git a/bridge/src/main/java/com/iluwatar/MagicWeapon.java b/bridge/src/main/java/com/iluwatar/bridge/MagicWeapon.java similarity index 87% rename from bridge/src/main/java/com/iluwatar/MagicWeapon.java rename to bridge/src/main/java/com/iluwatar/bridge/MagicWeapon.java index 0773a09fc921..252f42104550 100644 --- a/bridge/src/main/java/com/iluwatar/MagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/bridge/MagicWeapon.java @@ -1,26 +1,26 @@ -package com.iluwatar; - -/** - * - * Abstraction interface. - * - */ -public abstract class MagicWeapon { - - protected MagicWeaponImp imp; - - public MagicWeapon(MagicWeaponImp imp) { - this.imp = imp; - } - - public abstract void wield(); - - public abstract void swing(); - - public abstract void unwield(); - - public MagicWeaponImp getImp() { - return imp; - } - -} +package com.iluwatar.bridge; + +/** + * + * Abstraction interface. + * + */ +public abstract class MagicWeapon { + + protected MagicWeaponImp imp; + + public MagicWeapon(MagicWeaponImp imp) { + this.imp = imp; + } + + public abstract void wield(); + + public abstract void swing(); + + public abstract void unwield(); + + public MagicWeaponImp getImp() { + return imp; + } + +} diff --git a/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/bridge/MagicWeaponImp.java similarity index 83% rename from bridge/src/main/java/com/iluwatar/MagicWeaponImp.java rename to bridge/src/main/java/com/iluwatar/bridge/MagicWeaponImp.java index d657e517718d..1ee64f54677a 100644 --- a/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/bridge/MagicWeaponImp.java @@ -1,16 +1,16 @@ -package com.iluwatar; - -/** - * - * Implementation interface. - * - */ -public abstract class MagicWeaponImp { - - public abstract void wieldImp(); - - public abstract void swingImp(); - - public abstract void unwieldImp(); - -} +package com.iluwatar.bridge; + +/** + * + * Implementation interface. + * + */ +public abstract class MagicWeaponImp { + + public abstract void wieldImp(); + + public abstract void swingImp(); + + public abstract void unwieldImp(); + +} diff --git a/bridge/src/main/java/com/iluwatar/Mjollnir.java b/bridge/src/main/java/com/iluwatar/bridge/Mjollnir.java similarity index 90% rename from bridge/src/main/java/com/iluwatar/Mjollnir.java rename to bridge/src/main/java/com/iluwatar/bridge/Mjollnir.java index 4ba68ab6cda7..d0209bdc28ae 100644 --- a/bridge/src/main/java/com/iluwatar/Mjollnir.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Mjollnir.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class Mjollnir extends FlyingMagicWeaponImp { - - @Override - public void wieldImp() { - System.out.println("wielding Mjollnir"); - } - - @Override - public void swingImp() { - System.out.println("swinging Mjollnir"); - } - - @Override - public void unwieldImp() { - System.out.println("unwielding Mjollnir"); - } - - @Override - public void flyImp() { - System.out.println("Mjollnir hits the enemy in the air and returns back to the owner's hand"); - } - -} +package com.iluwatar.bridge; + +public class Mjollnir extends FlyingMagicWeaponImp { + + @Override + public void wieldImp() { + System.out.println("wielding Mjollnir"); + } + + @Override + public void swingImp() { + System.out.println("swinging Mjollnir"); + } + + @Override + public void unwieldImp() { + System.out.println("unwielding Mjollnir"); + } + + @Override + public void flyImp() { + System.out.println("Mjollnir hits the enemy in the air and returns back to the owner's hand"); + } + +} diff --git a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeapon.java similarity index 89% rename from bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java rename to bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeapon.java index 20e55294e0f2..6d8b553ba05d 100644 --- a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeapon.java @@ -1,33 +1,33 @@ -package com.iluwatar; - -public class SoulEatingMagicWeapon extends MagicWeapon { - - public SoulEatingMagicWeapon(SoulEatingMagicWeaponImp imp) { - super(imp); - } - - @Override - public SoulEatingMagicWeaponImp getImp() { - return (SoulEatingMagicWeaponImp) imp; - } - - @Override - public void wield() { - getImp().wieldImp(); - } - - @Override - public void swing() { - getImp().swingImp(); - } - - @Override - public void unwield() { - getImp().unwieldImp(); - } - - public void eatSoul() { - getImp().eatSoulImp(); - } - -} +package com.iluwatar.bridge; + +public class SoulEatingMagicWeapon extends MagicWeapon { + + public SoulEatingMagicWeapon(SoulEatingMagicWeaponImp imp) { + super(imp); + } + + @Override + public SoulEatingMagicWeaponImp getImp() { + return (SoulEatingMagicWeaponImp) imp; + } + + @Override + public void wield() { + getImp().wieldImp(); + } + + @Override + public void swing() { + getImp().swingImp(); + } + + @Override + public void unwield() { + getImp().unwieldImp(); + } + + public void eatSoul() { + getImp().eatSoulImp(); + } + +} diff --git a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeaponImp.java similarity index 79% rename from bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java rename to bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeaponImp.java index 761a1a8749ae..5549ebecb414 100644 --- a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingMagicWeaponImp.java @@ -1,7 +1,7 @@ -package com.iluwatar; - -public abstract class SoulEatingMagicWeaponImp extends MagicWeaponImp { - - public abstract void eatSoulImp(); - -} +package com.iluwatar.bridge; + +public abstract class SoulEatingMagicWeaponImp extends MagicWeaponImp { + + public abstract void eatSoulImp(); + +} diff --git a/bridge/src/main/java/com/iluwatar/Stormbringer.java b/bridge/src/main/java/com/iluwatar/bridge/Stormbringer.java similarity index 90% rename from bridge/src/main/java/com/iluwatar/Stormbringer.java rename to bridge/src/main/java/com/iluwatar/bridge/Stormbringer.java index 673ed99a7218..6e41ae0f33c1 100644 --- a/bridge/src/main/java/com/iluwatar/Stormbringer.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Stormbringer.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class Stormbringer extends SoulEatingMagicWeaponImp { - - @Override - public void wieldImp() { - System.out.println("wielding Stormbringer"); - } - - @Override - public void swingImp() { - System.out.println("swinging Stormbringer"); - } - - @Override - public void unwieldImp() { - System.out.println("unwielding Stormbringer"); - } - - @Override - public void eatSoulImp() { - System.out.println("Stormbringer devours the enemy's soul"); - } - -} +package com.iluwatar.bridge; + +public class Stormbringer extends SoulEatingMagicWeaponImp { + + @Override + public void wieldImp() { + System.out.println("wielding Stormbringer"); + } + + @Override + public void swingImp() { + System.out.println("swinging Stormbringer"); + } + + @Override + public void unwieldImp() { + System.out.println("unwielding Stormbringer"); + } + + @Override + public void eatSoulImp() { + System.out.println("Stormbringer devours the enemy's soul"); + } + +} diff --git a/builder/.gitignore b/builder/.gitignore index b83d22266ac8..e2540458518e 100644 --- a/builder/.gitignore +++ b/builder/.gitignore @@ -1 +1,2 @@ /target/ +/bin diff --git a/builder/builder.iml b/builder/builder.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/builder/builder.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/builder/src/main/java/com/iluwatar/App.java b/builder/src/main/java/com/iluwatar/builder/App.java similarity index 56% rename from builder/src/main/java/com/iluwatar/App.java rename to builder/src/main/java/com/iluwatar/builder/App.java index 1eea20c10e08..0d8f587adf0d 100644 --- a/builder/src/main/java/com/iluwatar/App.java +++ b/builder/src/main/java/com/iluwatar/builder/App.java @@ -1,47 +1,49 @@ -package com.iluwatar; - -import com.iluwatar.Hero.HeroBuilder; - -/** - * - * This is the Builder pattern variation as described by - * Joshua Bloch in Effective Java 2nd Edition. - * - * We want to build Hero objects, but its construction - * is complex because of the many parameters needed. To - * aid the user we introduce HeroBuilder class. HeroBuilder - * takes the minimum parameters to build Hero object in - * its constructor. After that additional configuration - * for the Hero object can be done using the fluent - * HeroBuilder interface. When configuration is ready - * the build method is called to receive the final Hero - * object. - * - */ -public class App -{ - public static void main( String[] args ) - { - - Hero mage = new HeroBuilder(Profession.MAGE, "Riobard") - .withHairColor(HairColor.BLACK) - .withWeapon(Weapon.DAGGER) - .build(); - System.out.println(mage); - - Hero warrior = new HeroBuilder(Profession.WARRIOR, "Amberjill") - .withHairColor(HairColor.BLOND) - .withHairType(HairType.LONG_CURLY) - .withArmor(Armor.CHAIN_MAIL) - .withWeapon(Weapon.SWORD) - .build(); - System.out.println(warrior); - - Hero thief = new HeroBuilder(Profession.THIEF, "Desmond") - .withHairType(HairType.BOLD) - .withWeapon(Weapon.BOW) - .build(); - System.out.println(thief); - - } -} +package com.iluwatar.builder; + +import com.iluwatar.builder.Hero.HeroBuilder; + + + +/** + * + * This is the Builder pattern variation as described by + * Joshua Bloch in Effective Java 2nd Edition. + * + * We want to build Hero objects, but its construction + * is complex because of the many parameters needed. To + * aid the user we introduce HeroBuilder class. HeroBuilder + * takes the minimum parameters to build Hero object in + * its constructor. After that additional configuration + * for the Hero object can be done using the fluent + * HeroBuilder interface. When configuration is ready + * the build method is called to receive the final Hero + * object. + * + */ +public class App +{ + public static void main( String[] args ) + { + + Hero mage = new HeroBuilder(Profession.MAGE, "Riobard") + .withHairColor(HairColor.BLACK) + .withWeapon(Weapon.DAGGER) + .build(); + System.out.println(mage); + + Hero warrior = new HeroBuilder(Profession.WARRIOR, "Amberjill") + .withHairColor(HairColor.BLOND) + .withHairType(HairType.LONG_CURLY) + .withArmor(Armor.CHAIN_MAIL) + .withWeapon(Weapon.SWORD) + .build(); + System.out.println(warrior); + + Hero thief = new HeroBuilder(Profession.THIEF, "Desmond") + .withHairType(HairType.BOLD) + .withWeapon(Weapon.BOW) + .build(); + System.out.println(thief); + + } +} diff --git a/builder/src/main/java/com/iluwatar/Armor.java b/builder/src/main/java/com/iluwatar/builder/Armor.java similarity index 89% rename from builder/src/main/java/com/iluwatar/Armor.java rename to builder/src/main/java/com/iluwatar/builder/Armor.java index 0c7c753b2424..a3f4d289dd32 100644 --- a/builder/src/main/java/com/iluwatar/Armor.java +++ b/builder/src/main/java/com/iluwatar/builder/Armor.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -public enum Armor { - - CLOTHES, LEATHER, CHAIN_MAIL, PLATE_MAIL; - - @Override - public String toString() { - String s = ""; - switch(this) { - case CLOTHES: s = "clothes"; break; - case LEATHER: s = "leather armor"; break; - case CHAIN_MAIL: s = "chain mail"; break; - case PLATE_MAIL: s = "plate mail"; break; - } - return s; - } - -} +package com.iluwatar.builder; + +public enum Armor { + + CLOTHES, LEATHER, CHAIN_MAIL, PLATE_MAIL; + + @Override + public String toString() { + String s = ""; + switch(this) { + case CLOTHES: s = "clothes"; break; + case LEATHER: s = "leather armor"; break; + case CHAIN_MAIL: s = "chain mail"; break; + case PLATE_MAIL: s = "plate mail"; break; + } + return s; + } + +} diff --git a/builder/src/main/java/com/iluwatar/HairColor.java b/builder/src/main/java/com/iluwatar/builder/HairColor.java similarity index 88% rename from builder/src/main/java/com/iluwatar/HairColor.java rename to builder/src/main/java/com/iluwatar/builder/HairColor.java index ffac28906872..16d74db207ca 100644 --- a/builder/src/main/java/com/iluwatar/HairColor.java +++ b/builder/src/main/java/com/iluwatar/builder/HairColor.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -public enum HairColor { - - WHITE, BLOND, RED, BROWN, BLACK; - - @Override - public String toString() { - String s = ""; - switch(this) { - case WHITE: s = "white"; break; - case BLOND: s = "blond"; break; - case RED: s = "red"; break; - case BROWN: s = "brown"; break; - case BLACK: s = "black"; break; - } - return s; - } - -} +package com.iluwatar.builder; + +public enum HairColor { + + WHITE, BLOND, RED, BROWN, BLACK; + + @Override + public String toString() { + String s = ""; + switch(this) { + case WHITE: s = "white"; break; + case BLOND: s = "blond"; break; + case RED: s = "red"; break; + case BROWN: s = "brown"; break; + case BLACK: s = "black"; break; + } + return s; + } + +} diff --git a/builder/src/main/java/com/iluwatar/HairType.java b/builder/src/main/java/com/iluwatar/builder/HairType.java similarity index 89% rename from builder/src/main/java/com/iluwatar/HairType.java rename to builder/src/main/java/com/iluwatar/builder/HairType.java index 9766b29e27c3..8d28683ff23e 100644 --- a/builder/src/main/java/com/iluwatar/HairType.java +++ b/builder/src/main/java/com/iluwatar/builder/HairType.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -public enum HairType { - - BOLD, SHORT, CURLY, LONG_STRAIGHT, LONG_CURLY; - - @Override - public String toString() { - String s = ""; - switch(this) { - case BOLD: s = "bold"; break; - case SHORT: s = "short"; break; - case CURLY: s = "curly"; break; - case LONG_STRAIGHT: s = "long straight"; break; - case LONG_CURLY: s = "long curly"; break; - } - return s; - } - -} +package com.iluwatar.builder; + +public enum HairType { + + BOLD, SHORT, CURLY, LONG_STRAIGHT, LONG_CURLY; + + @Override + public String toString() { + String s = ""; + switch(this) { + case BOLD: s = "bold"; break; + case SHORT: s = "short"; break; + case CURLY: s = "curly"; break; + case LONG_STRAIGHT: s = "long straight"; break; + case LONG_CURLY: s = "long curly"; break; + } + return s; + } + +} diff --git a/builder/src/main/java/com/iluwatar/Hero.java b/builder/src/main/java/com/iluwatar/builder/Hero.java similarity index 85% rename from builder/src/main/java/com/iluwatar/Hero.java rename to builder/src/main/java/com/iluwatar/builder/Hero.java index e728fab7a99b..19239d07956a 100644 --- a/builder/src/main/java/com/iluwatar/Hero.java +++ b/builder/src/main/java/com/iluwatar/builder/Hero.java @@ -1,127 +1,128 @@ -package com.iluwatar; - -/** - * - * The class with many parameters. - * - */ -public class Hero { - - private final Profession profession; - private final String name; - private final HairType hairType; - private final HairColor hairColor; - private final Armor armor; - private final Weapon weapon; - - public Profession getProfession() { - return profession; - } - - public String getName() { - return name; - } - - public HairType getHairType() { - return hairType; - } - - public HairColor getHairColor() { - return hairColor; - } - - public Armor getArmor() { - return armor; - } - - public Weapon getWeapon() { - return weapon; - } - - @Override - public String toString() { - - StringBuilder sb = new StringBuilder(); - sb.append(profession); - sb.append(" named "); - sb.append(name); - if (hairColor != null || hairType != null) { - sb.append(" with "); - if (hairColor != null) { - sb.append(hairColor); - sb.append(" "); - } - if (hairType != null) { - sb.append(hairType); - sb.append(" "); - } - sb.append(hairType != HairType.BOLD ? "hair" : "head"); - } - if (armor != null) { - sb.append(" wearing "); - sb.append(armor); - } - if (weapon != null) { - sb.append(" and wielding "); - sb.append(weapon); - } - sb.append("."); - return sb.toString(); - } - - private Hero(HeroBuilder builder) { - this.profession = builder.profession; - this.name = builder.name; - this.hairColor = builder.hairColor; - this.hairType = builder.hairType; - this.weapon = builder.weapon; - this.armor = builder.armor; - } - - /** - * - * The builder class. - * - */ - public static class HeroBuilder { - - private final Profession profession; - private final String name; - private HairType hairType; - private HairColor hairColor; - private Armor armor; - private Weapon weapon; - - public HeroBuilder(Profession profession, String name) { - if (profession == null || name == null) { - throw new NullPointerException("profession and name can not be null"); - } - this.profession = profession; - this.name = name; - } - - public HeroBuilder withHairType(HairType hairType) { - this.hairType = hairType; - return this; - } - - public HeroBuilder withHairColor(HairColor hairColor) { - this.hairColor = hairColor; - return this; - } - - public HeroBuilder withArmor(Armor armor) { - this.armor = armor; - return this; - } - - public HeroBuilder withWeapon(Weapon weapon) { - this.weapon = weapon; - return this; - } - - public Hero build() { - return new Hero(this); - } - } -} +package com.iluwatar.builder; + + +/** + * + * The class with many parameters. + * + */ +public class Hero { + + private final Profession profession; + private final String name; + private final HairType hairType; + private final HairColor hairColor; + private final Armor armor; + private final Weapon weapon; + + public Profession getProfession() { + return profession; + } + + public String getName() { + return name; + } + + public HairType getHairType() { + return hairType; + } + + public HairColor getHairColor() { + return hairColor; + } + + public Armor getArmor() { + return armor; + } + + public Weapon getWeapon() { + return weapon; + } + + @Override + public String toString() { + + StringBuilder sb = new StringBuilder(); + sb.append(profession); + sb.append(" named "); + sb.append(name); + if (hairColor != null || hairType != null) { + sb.append(" with "); + if (hairColor != null) { + sb.append(hairColor); + sb.append(" "); + } + if (hairType != null) { + sb.append(hairType); + sb.append(" "); + } + sb.append(hairType != HairType.BOLD ? "hair" : "head"); + } + if (armor != null) { + sb.append(" wearing "); + sb.append(armor); + } + if (weapon != null) { + sb.append(" and wielding "); + sb.append(weapon); + } + sb.append("."); + return sb.toString(); + } + + private Hero(HeroBuilder builder) { + profession = builder.profession; + name = builder.name; + hairColor = builder.hairColor; + hairType = builder.hairType; + weapon = builder.weapon; + armor = builder.armor; + } + + /** + * + * The builder class. + * + */ + public static class HeroBuilder { + + private final Profession profession; + private final String name; + private HairType hairType; + private HairColor hairColor; + private Armor armor; + private Weapon weapon; + + public HeroBuilder(Profession profession, String name) { + if (profession == null || name == null) { + throw new NullPointerException("profession and name can not be null"); + } + this.profession = profession; + this.name = name; + } + + public HeroBuilder withHairType(HairType hairType) { + this.hairType = hairType; + return this; + } + + public HeroBuilder withHairColor(HairColor hairColor) { + this.hairColor = hairColor; + return this; + } + + public HeroBuilder withArmor(Armor armor) { + this.armor = armor; + return this; + } + + public HeroBuilder withWeapon(Weapon weapon) { + this.weapon = weapon; + return this; + } + + public Hero build() { + return new Hero(this); + } + } +} diff --git a/builder/src/main/java/com/iluwatar/Profession.java b/builder/src/main/java/com/iluwatar/builder/Profession.java similarity index 87% rename from builder/src/main/java/com/iluwatar/Profession.java rename to builder/src/main/java/com/iluwatar/builder/Profession.java index a0e02a994e86..27de558d46e5 100644 --- a/builder/src/main/java/com/iluwatar/Profession.java +++ b/builder/src/main/java/com/iluwatar/builder/Profession.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -public enum Profession { - - WARRIOR, THIEF, MAGE, PRIEST; - - @Override - public String toString() { - String s = ""; - switch(this) { - case WARRIOR: s = "Warrior"; break; - case THIEF: s = "Thief"; break; - case MAGE: s = "Mage"; break; - case PRIEST: s = "Priest"; break; - } - return s; - } - -} +package com.iluwatar.builder; + +public enum Profession { + + WARRIOR, THIEF, MAGE, PRIEST; + + @Override + public String toString() { + String s = ""; + switch(this) { + case WARRIOR: s = "Warrior"; break; + case THIEF: s = "Thief"; break; + case MAGE: s = "Mage"; break; + case PRIEST: s = "Priest"; break; + } + return s; + } + +} diff --git a/builder/src/main/java/com/iluwatar/Weapon.java b/builder/src/main/java/com/iluwatar/builder/Weapon.java similarity index 88% rename from builder/src/main/java/com/iluwatar/Weapon.java rename to builder/src/main/java/com/iluwatar/builder/Weapon.java index b48977b50154..6efa21ca6319 100644 --- a/builder/src/main/java/com/iluwatar/Weapon.java +++ b/builder/src/main/java/com/iluwatar/builder/Weapon.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -public enum Weapon { - - DAGGER, SWORD, AXE, WARHAMMER, BOW; - - @Override - public String toString() { - String s = ""; - switch(this) { - case DAGGER: s = "dagger"; break; - case SWORD: s = "sword"; break; - case AXE: s = "axe"; break; - case WARHAMMER: s = "warhammer"; break; - case BOW: s = "bow"; break; - } - return s; - } - -} +package com.iluwatar.builder; + +public enum Weapon { + + DAGGER, SWORD, AXE, WARHAMMER, BOW; + + @Override + public String toString() { + String s = ""; + switch(this) { + case DAGGER: s = "dagger"; break; + case SWORD: s = "sword"; break; + case AXE: s = "axe"; break; + case WARHAMMER: s = "warhammer"; break; + case BOW: s = "bow"; break; + } + return s; + } + +} diff --git a/chain/chain.iml b/chain/chain.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/chain/chain.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/chain/src/main/java/com/iluwatar/App.java b/chain/src/main/java/com/iluwatar/App.java deleted file mode 100644 index 92b85b54d0da..000000000000 --- a/chain/src/main/java/com/iluwatar/App.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.iluwatar; - -/** - * - * Chain of Responsibility organizes request handlers (RequestHandler) into - * a chain where each handler has a chance to act on the request on its - * turn. In this example the king (OrcKing) makes requests and the military - * orcs (OrcCommander, OrcOfficer, OrcSoldier) form the handler chain. - * - */ -public class App -{ - public static void main( String[] args ) - { - - OrcKing king = new OrcKing(); - king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); - king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); - king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); - - } -} diff --git a/chain/src/main/java/com/iluwatar/chain/App.java b/chain/src/main/java/com/iluwatar/chain/App.java new file mode 100644 index 000000000000..2b846f9314ed --- /dev/null +++ b/chain/src/main/java/com/iluwatar/chain/App.java @@ -0,0 +1,23 @@ +package com.iluwatar.chain; + + +/** + * + * Chain of Responsibility organizes request handlers (RequestHandler) into + * a chain where each handler has a chance to act on the request on its + * turn. In this example the king (OrcKing) makes requests and the military + * orcs (OrcCommander, OrcOfficer, OrcSoldier) form the handler chain. + * + */ +public class App +{ + public static void main( String[] args ) + { + + OrcKing king = new OrcKing(); + king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); + king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); + king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); + + } +} diff --git a/chain/src/main/java/com/iluwatar/OrcCommander.java b/chain/src/main/java/com/iluwatar/chain/OrcCommander.java similarity index 89% rename from chain/src/main/java/com/iluwatar/OrcCommander.java rename to chain/src/main/java/com/iluwatar/chain/OrcCommander.java index dc0c403d047e..6407c09f6a6b 100644 --- a/chain/src/main/java/com/iluwatar/OrcCommander.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcCommander.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -public class OrcCommander extends RequestHandler { - - public OrcCommander(RequestHandler handler) { - super(handler); - } - - @Override - public void handleRequest(Request req) { - if (req.getRequestType().equals(RequestType.DEFEND_CASTLE)) { - printHandling(req); - } else { - super.handleRequest(req); - } - } - - @Override - public String toString() { - return "Orc commander"; - } -} +package com.iluwatar.chain; + +public class OrcCommander extends RequestHandler { + + public OrcCommander(RequestHandler handler) { + super(handler); + } + + @Override + public void handleRequest(Request req) { + if (req.getRequestType().equals(RequestType.DEFEND_CASTLE)) { + printHandling(req); + } else { + super.handleRequest(req); + } + } + + @Override + public String toString() { + return "Orc commander"; + } +} diff --git a/chain/src/main/java/com/iluwatar/OrcKing.java b/chain/src/main/java/com/iluwatar/chain/OrcKing.java similarity index 87% rename from chain/src/main/java/com/iluwatar/OrcKing.java rename to chain/src/main/java/com/iluwatar/chain/OrcKing.java index dc70494ef39c..5feff1796868 100644 --- a/chain/src/main/java/com/iluwatar/OrcKing.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcKing.java @@ -1,24 +1,24 @@ -package com.iluwatar; - -/** - * - * Makes requests that are handled by the chain. - * - */ -public class OrcKing { - - RequestHandler chain; - - public OrcKing() { - buildChain(); - } - - private void buildChain() { - chain = new OrcCommander(new OrcOfficer(new OrcSoldier(null))); - } - - public void makeRequest(Request req) { - chain.handleRequest(req); - } - -} +package com.iluwatar.chain; + +/** + * + * Makes requests that are handled by the chain. + * + */ +public class OrcKing { + + RequestHandler chain; + + public OrcKing() { + buildChain(); + } + + private void buildChain() { + chain = new OrcCommander(new OrcOfficer(new OrcSoldier(null))); + } + + public void makeRequest(Request req) { + chain.handleRequest(req); + } + +} diff --git a/chain/src/main/java/com/iluwatar/OrcOfficer.java b/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java similarity index 89% rename from chain/src/main/java/com/iluwatar/OrcOfficer.java rename to chain/src/main/java/com/iluwatar/chain/OrcOfficer.java index dfe414182502..4e3b618c5c84 100644 --- a/chain/src/main/java/com/iluwatar/OrcOfficer.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public class OrcOfficer extends RequestHandler { - - public OrcOfficer(RequestHandler handler) { - super(handler); - } - - @Override - public void handleRequest(Request req) { - if (req.getRequestType().equals(RequestType.TORTURE_PRISONER)) { - printHandling(req); - } else { - super.handleRequest(req); - } - } - - @Override - public String toString() { - return "Orc officer"; - } - -} +package com.iluwatar.chain; + +public class OrcOfficer extends RequestHandler { + + public OrcOfficer(RequestHandler handler) { + super(handler); + } + + @Override + public void handleRequest(Request req) { + if (req.getRequestType().equals(RequestType.TORTURE_PRISONER)) { + printHandling(req); + } else { + super.handleRequest(req); + } + } + + @Override + public String toString() { + return "Orc officer"; + } + +} diff --git a/chain/src/main/java/com/iluwatar/OrcSoldier.java b/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java similarity index 89% rename from chain/src/main/java/com/iluwatar/OrcSoldier.java rename to chain/src/main/java/com/iluwatar/chain/OrcSoldier.java index 0e5a5a603477..294888f9b4e4 100644 --- a/chain/src/main/java/com/iluwatar/OrcSoldier.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -public class OrcSoldier extends RequestHandler { - - public OrcSoldier(RequestHandler handler) { - super(handler); - } - - @Override - public void handleRequest(Request req) { - if (req.getRequestType().equals(RequestType.COLLECT_TAX)) { - printHandling(req); - } else { - super.handleRequest(req); - } - } - - @Override - public String toString() { - return "Orc soldier"; - } -} +package com.iluwatar.chain; + +public class OrcSoldier extends RequestHandler { + + public OrcSoldier(RequestHandler handler) { + super(handler); + } + + @Override + public void handleRequest(Request req) { + if (req.getRequestType().equals(RequestType.COLLECT_TAX)) { + printHandling(req); + } else { + super.handleRequest(req); + } + } + + @Override + public String toString() { + return "Orc soldier"; + } +} diff --git a/chain/src/main/java/com/iluwatar/Request.java b/chain/src/main/java/com/iluwatar/chain/Request.java similarity index 92% rename from chain/src/main/java/com/iluwatar/Request.java rename to chain/src/main/java/com/iluwatar/chain/Request.java index 00cd239723d1..14ecd08a4d16 100644 --- a/chain/src/main/java/com/iluwatar/Request.java +++ b/chain/src/main/java/com/iluwatar/chain/Request.java @@ -1,33 +1,33 @@ -package com.iluwatar; - -public class Request { - - private String requestDescription; - private RequestType requestType; - - public Request(RequestType requestType, String requestDescription) { - this.setRequestType(requestType); - this.setRequestDescription(requestDescription); - } - - public String getRequestDescription() { - return requestDescription; - } - - public void setRequestDescription(String requestDescription) { - this.requestDescription = requestDescription; - } - - public RequestType getRequestType() { - return requestType; - } - - public void setRequestType(RequestType requestType) { - this.requestType = requestType; - } - - @Override - public String toString() { - return getRequestDescription(); - } -} +package com.iluwatar.chain; + +public class Request { + + private String requestDescription; + private RequestType requestType; + + public Request(RequestType requestType, String requestDescription) { + this.setRequestType(requestType); + this.setRequestDescription(requestDescription); + } + + public String getRequestDescription() { + return requestDescription; + } + + public void setRequestDescription(String requestDescription) { + this.requestDescription = requestDescription; + } + + public RequestType getRequestType() { + return requestType; + } + + public void setRequestType(RequestType requestType) { + this.requestType = requestType; + } + + @Override + public String toString() { + return getRequestDescription(); + } +} diff --git a/chain/src/main/java/com/iluwatar/RequestHandler.java b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java similarity index 90% rename from chain/src/main/java/com/iluwatar/RequestHandler.java rename to chain/src/main/java/com/iluwatar/chain/RequestHandler.java index 2eb5176c0ae4..ad7386edc5cf 100644 --- a/chain/src/main/java/com/iluwatar/RequestHandler.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public abstract class RequestHandler { - - private RequestHandler next; - - public RequestHandler(RequestHandler next) { - this.next = next; - } - - public void handleRequest(Request req) { - if (next != null) { - next.handleRequest(req); - } - } - - protected void printHandling(Request req) { - System.out.println(this + " handling request \"" + req + "\""); - } - - @Override - public abstract String toString(); -} +package com.iluwatar.chain; + +public abstract class RequestHandler { + + private RequestHandler next; + + public RequestHandler(RequestHandler next) { + this.next = next; + } + + public void handleRequest(Request req) { + if (next != null) { + next.handleRequest(req); + } + } + + protected void printHandling(Request req) { + System.out.println(this + " handling request \"" + req + "\""); + } + + @Override + public abstract String toString(); +} diff --git a/chain/src/main/java/com/iluwatar/RequestType.java b/chain/src/main/java/com/iluwatar/chain/RequestType.java similarity index 72% rename from chain/src/main/java/com/iluwatar/RequestType.java rename to chain/src/main/java/com/iluwatar/chain/RequestType.java index 9f896a54d542..16bbe1ade19a 100644 --- a/chain/src/main/java/com/iluwatar/RequestType.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestType.java @@ -1,9 +1,9 @@ -package com.iluwatar; - -public enum RequestType { - - DEFEND_CASTLE, - TORTURE_PRISONER, - COLLECT_TAX - -} +package com.iluwatar.chain; + +public enum RequestType { + + DEFEND_CASTLE, + TORTURE_PRISONER, + COLLECT_TAX + +} diff --git a/command/.gitignore b/command/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/command/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/command/command.iml b/command/command.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/command/command.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/command/out/.gitignore b/command/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/command/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/command/src/main/java/com/iluwatar/App.java b/command/src/main/java/com/iluwatar/App.java index 0648f8f41620..c0eb867e8a4b 100644 --- a/command/src/main/java/com/iluwatar/App.java +++ b/command/src/main/java/com/iluwatar/App.java @@ -1,27 +1,29 @@ -package com.iluwatar; - -/** - * - * In Command pattern actions are objects that can - * be executed and undone. The commands in this example - * are spells cast by the wizard on the goblin. - * - */ -public class App -{ - public static void main( String[] args ) - { - Wizard wizard = new Wizard(); - Goblin goblin = new Goblin(); - - goblin.printStatus(); - - wizard.castSpell(new ShrinkSpell(), goblin); - goblin.printStatus(); - - wizard.castSpell(new InvisibilitySpell(), goblin); - goblin.printStatus(); - wizard.undoLastSpell(); - goblin.printStatus(); - } -} +package com.iluwatar; + + + +/** + * + * In Command pattern actions are objects that can + * be executed and undone. The commands in this example + * are spells cast by the wizard on the goblin. + * + */ +public class App +{ + public static void main( String[] args ) + { + Wizard wizard = new Wizard(); + Goblin goblin = new Goblin(); + + goblin.printStatus(); + + wizard.castSpell(new ShrinkSpell(), goblin); + goblin.printStatus(); + + wizard.castSpell(new InvisibilitySpell(), goblin); + goblin.printStatus(); + wizard.undoLastSpell(); + goblin.printStatus(); + } +} diff --git a/command/src/test/log4j.xml b/command/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/command/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/command/src/test/resources/configure/UATApplicationContext.xml b/command/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/command/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/command/src/test/resources/configure/prop.xml b/command/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/command/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/command/src/test/resources/configure/test_data_source.xml b/command/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/command/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/command/src/test/resources/configure/uat.properties b/command/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/command/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/command/src/test/resources/configure/uat_spring_conf.xml b/command/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/command/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/command/src/test/resources/data/backup/README b/command/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/command/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/command/src/test/resources/data/config/README b/command/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/command/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/command/src/test/resources/data/excel/README b/command/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/command/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/command/src/test/resources/data/object/README b/command/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/command/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/command/src/test/resources/data/spring/README b/command/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/command/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/command/src/test/resources/temp/README b/command/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/command/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/command/src/test/testng.xml b/command/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/command/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/composite/.gitignore b/composite/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/composite/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/composite/composite.iml b/composite/composite.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/composite/composite.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/composite/out/.gitignore b/composite/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/composite/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/composite/src/main/java/com/iluwatar/App.java b/composite/src/main/java/com/iluwatar/composite/App.java similarity index 92% rename from composite/src/main/java/com/iluwatar/App.java rename to composite/src/main/java/com/iluwatar/composite/App.java index 99229fdb0442..d6e5a95d8531 100644 --- a/composite/src/main/java/com/iluwatar/App.java +++ b/composite/src/main/java/com/iluwatar/composite/App.java @@ -1,26 +1,26 @@ -package com.iluwatar; - -/** - * - * With Composite we can treat tree hierarchies of objects - * with uniform interface (LetterComposite). In this example - * we have sentences composed of words composed of letters. - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println("Message from the orcs: "); - - LetterComposite orcMessage = new Messenger().messageFromOrcs(); - orcMessage.print(); - - System.out.println("\n"); - - System.out.println("Message from the elves: "); - - LetterComposite elfMessage = new Messenger().messageFromElves(); - elfMessage.print(); - } -} +package com.iluwatar.composite; + +/** + * + * With Composite we can treat tree hierarchies of objects + * with uniform interface (LetterComposite). In this example + * we have sentences composed of words composed of letters. + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println("Message from the orcs: "); + + LetterComposite orcMessage = new Messenger().messageFromOrcs(); + orcMessage.print(); + + System.out.println("\n"); + + System.out.println("Message from the elves: "); + + LetterComposite elfMessage = new Messenger().messageFromElves(); + elfMessage.print(); + } +} diff --git a/composite/src/main/java/com/iluwatar/Letter.java b/composite/src/main/java/com/iluwatar/composite/Letter.java similarity index 85% rename from composite/src/main/java/com/iluwatar/Letter.java rename to composite/src/main/java/com/iluwatar/composite/Letter.java index f0a25b6d4791..5b184b809524 100644 --- a/composite/src/main/java/com/iluwatar/Letter.java +++ b/composite/src/main/java/com/iluwatar/composite/Letter.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class Letter extends LetterComposite { - - private char c; - - public Letter(char c) { - this.c = c; - } - - @Override - protected void printThisBefore() { - System.out.print(c); - } - - @Override - protected void printThisAfter() { - // nop - } - -} +package com.iluwatar.composite; + +public class Letter extends LetterComposite { + + private char c; + + public Letter(char c) { + this.c = c; + } + + @Override + protected void printThisBefore() { + System.out.print(c); + } + + @Override + protected void printThisAfter() { + // nop + } + +} diff --git a/composite/src/main/java/com/iluwatar/LetterComposite.java b/composite/src/main/java/com/iluwatar/composite/LetterComposite.java similarity index 90% rename from composite/src/main/java/com/iluwatar/LetterComposite.java rename to composite/src/main/java/com/iluwatar/composite/LetterComposite.java index 850c410ffea6..81c5f7039f6f 100644 --- a/composite/src/main/java/com/iluwatar/LetterComposite.java +++ b/composite/src/main/java/com/iluwatar/composite/LetterComposite.java @@ -1,34 +1,34 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * Composite interface. - * - */ -public abstract class LetterComposite { - - private List children = new ArrayList(); - - public void add(LetterComposite letter) { - children.add(letter); - } - - public int count() { - return children.size(); - } - - protected abstract void printThisBefore(); - - protected abstract void printThisAfter(); - - public void print() { - printThisBefore(); - for (LetterComposite letter: children) { - letter.print(); - } - printThisAfter(); - } -} +package com.iluwatar.composite; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * Composite interface. + * + */ +public abstract class LetterComposite { + + private List children = new ArrayList(); + + public void add(LetterComposite letter) { + children.add(letter); + } + + public int count() { + return children.size(); + } + + protected abstract void printThisBefore(); + + protected abstract void printThisAfter(); + + public void print() { + printThisBefore(); + for (LetterComposite letter: children) { + letter.print(); + } + printThisAfter(); + } +} diff --git a/composite/src/main/java/com/iluwatar/Messenger.java b/composite/src/main/java/com/iluwatar/composite/Messenger.java similarity index 96% rename from composite/src/main/java/com/iluwatar/Messenger.java rename to composite/src/main/java/com/iluwatar/composite/Messenger.java index d87a94b0d723..5b892fe110d7 100644 --- a/composite/src/main/java/com/iluwatar/Messenger.java +++ b/composite/src/main/java/com/iluwatar/composite/Messenger.java @@ -1,42 +1,42 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Messenger { - - LetterComposite messageFromOrcs() { - - List words = new ArrayList(); - - words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), new Letter('i'), new Letter('p')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), new Letter('y')))); - - return new Sentence(words); - - } - - LetterComposite messageFromElves() { - - List words = new ArrayList(); - - words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d')))); - words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m')))); - words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r')))); - words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), new Letter('h')))); - - return new Sentence(words); - - } - -} +package com.iluwatar.composite; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Messenger { + + LetterComposite messageFromOrcs() { + + List words = new ArrayList(); + + words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); + words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); + words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); + words.add(new Word(Arrays.asList(new Letter('a')))); + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), new Letter('i'), new Letter('p')))); + words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); + words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); + words.add(new Word(Arrays.asList(new Letter('a')))); + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), new Letter('y')))); + + return new Sentence(words); + + } + + LetterComposite messageFromElves() { + + List words = new ArrayList(); + + words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h')))); + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d')))); + words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), new Letter('s')))); + words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m')))); + words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r')))); + words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), new Letter('h')))); + + return new Sentence(words); + + } + +} diff --git a/composite/src/main/java/com/iluwatar/Sentence.java b/composite/src/main/java/com/iluwatar/composite/Sentence.java similarity index 86% rename from composite/src/main/java/com/iluwatar/Sentence.java rename to composite/src/main/java/com/iluwatar/composite/Sentence.java index 6eb97bc4b14f..b09a9a486bfb 100644 --- a/composite/src/main/java/com/iluwatar/Sentence.java +++ b/composite/src/main/java/com/iluwatar/composite/Sentence.java @@ -1,24 +1,24 @@ -package com.iluwatar; - -import java.util.List; - -public class Sentence extends LetterComposite { - - public Sentence(List words) { - for (Word w: words) { - this.add(w); - } - } - - @Override - protected void printThisBefore() { - // nop - } - - @Override - protected void printThisAfter() { - System.out.print("."); - } - - -} +package com.iluwatar.composite; + +import java.util.List; + +public class Sentence extends LetterComposite { + + public Sentence(List words) { + for (Word w: words) { + this.add(w); + } + } + + @Override + protected void printThisBefore() { + // nop + } + + @Override + protected void printThisAfter() { + System.out.print("."); + } + + +} diff --git a/composite/src/main/java/com/iluwatar/Word.java b/composite/src/main/java/com/iluwatar/composite/Word.java similarity index 86% rename from composite/src/main/java/com/iluwatar/Word.java rename to composite/src/main/java/com/iluwatar/composite/Word.java index ef8ea3b6ab46..1cb131602202 100644 --- a/composite/src/main/java/com/iluwatar/Word.java +++ b/composite/src/main/java/com/iluwatar/composite/Word.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -import java.util.List; - -public class Word extends LetterComposite { - - public Word(List letters) { - for (Letter l: letters) { - this.add(l); - } - } - - @Override - protected void printThisBefore() { - System.out.print(" "); - } - - @Override - protected void printThisAfter() { - // nop - } - -} +package com.iluwatar.composite; + +import java.util.List; + +public class Word extends LetterComposite { + + public Word(List letters) { + for (Letter l: letters) { + this.add(l); + } + } + + @Override + protected void printThisBefore() { + System.out.print(" "); + } + + @Override + protected void printThisAfter() { + // nop + } + +} diff --git a/composite/src/test/log4j.xml b/composite/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/composite/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/composite/src/test/resources/configure/UATApplicationContext.xml b/composite/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/composite/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/composite/src/test/resources/configure/prop.xml b/composite/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/composite/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/composite/src/test/resources/configure/test_data_source.xml b/composite/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/composite/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/composite/src/test/resources/configure/uat.properties b/composite/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/composite/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/composite/src/test/resources/configure/uat_spring_conf.xml b/composite/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/composite/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/composite/src/test/resources/data/backup/README b/composite/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/composite/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/composite/src/test/resources/data/config/README b/composite/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/composite/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/composite/src/test/resources/data/excel/README b/composite/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/composite/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/composite/src/test/resources/data/object/README b/composite/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/composite/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/composite/src/test/resources/data/spring/README b/composite/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/composite/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/composite/src/test/resources/temp/README b/composite/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/composite/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/composite/src/test/testng.xml b/composite/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/composite/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/decorator/decorator.iml b/decorator/decorator.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/decorator/decorator.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/decorator/src/main/java/com/iluwatar/App.java b/decorator/src/main/java/com/iluwatar/decorator/App.java similarity index 92% rename from decorator/src/main/java/com/iluwatar/App.java rename to decorator/src/main/java/com/iluwatar/decorator/App.java index 77978844d016..71e55a448b4d 100644 --- a/decorator/src/main/java/com/iluwatar/App.java +++ b/decorator/src/main/java/com/iluwatar/decorator/App.java @@ -1,26 +1,26 @@ -package com.iluwatar; - -/** - * - * Decorator pattern is more flexible alternative to - * subclassing. The decorator class implements the same - * interface as the target and uses composition to - * "decorate" calls to the target. - * - */ -public class App -{ - public static void main( String[] args ) - { - - System.out.println("A simple looking troll approaches."); - Hostile troll = new Troll(); - troll.attack(); - troll.fleeBattle(); - - System.out.println("\nA smart looking troll surprises you."); - Hostile smart = new SmartTroll(new Troll()); - smart.attack(); - smart.fleeBattle(); - } -} +package com.iluwatar.decorator; + +/** + * + * Decorator pattern is more flexible alternative to + * subclassing. The decorator class implements the same + * interface as the target and uses composition to + * "decorate" calls to the target. + * + */ +public class App +{ + public static void main( String[] args ) + { + + System.out.println("A simple looking troll approaches."); + Hostile troll = new Troll(); + troll.attack(); + troll.fleeBattle(); + + System.out.println("\nA smart looking troll surprises you."); + Hostile smart = new SmartTroll(new Troll()); + smart.attack(); + smart.fleeBattle(); + } +} diff --git a/decorator/src/main/java/com/iluwatar/Hostile.java b/decorator/src/main/java/com/iluwatar/decorator/Hostile.java similarity index 68% rename from decorator/src/main/java/com/iluwatar/Hostile.java rename to decorator/src/main/java/com/iluwatar/decorator/Hostile.java index 38b2cad07f6c..af7cbc337986 100644 --- a/decorator/src/main/java/com/iluwatar/Hostile.java +++ b/decorator/src/main/java/com/iluwatar/decorator/Hostile.java @@ -1,8 +1,8 @@ -package com.iluwatar; - -public interface Hostile { - - void attack(); - void fleeBattle(); - -} +package com.iluwatar.decorator; + +public interface Hostile { + + void attack(); + void fleeBattle(); + +} diff --git a/decorator/src/main/java/com/iluwatar/SmartTroll.java b/decorator/src/main/java/com/iluwatar/decorator/SmartTroll.java similarity index 89% rename from decorator/src/main/java/com/iluwatar/SmartTroll.java rename to decorator/src/main/java/com/iluwatar/decorator/SmartTroll.java index d931adff86a0..9792f5923541 100644 --- a/decorator/src/main/java/com/iluwatar/SmartTroll.java +++ b/decorator/src/main/java/com/iluwatar/decorator/SmartTroll.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public class SmartTroll implements Hostile { - - private Hostile decorated; - - public SmartTroll(Hostile decorated) { - this.decorated = decorated; - } - - @Override - public void attack() { - System.out.println("The troll throws a rock at you!"); - decorated.attack(); - } - - @Override - public void fleeBattle() { - System.out.println("The troll calls for help!"); - decorated.fleeBattle(); - } - -} +package com.iluwatar.decorator; + +public class SmartTroll implements Hostile { + + private Hostile decorated; + + public SmartTroll(Hostile decorated) { + this.decorated = decorated; + } + + @Override + public void attack() { + System.out.println("The troll throws a rock at you!"); + decorated.attack(); + } + + @Override + public void fleeBattle() { + System.out.println("The troll calls for help!"); + decorated.fleeBattle(); + } + +} diff --git a/decorator/src/main/java/com/iluwatar/Troll.java b/decorator/src/main/java/com/iluwatar/decorator/Troll.java similarity index 87% rename from decorator/src/main/java/com/iluwatar/Troll.java rename to decorator/src/main/java/com/iluwatar/decorator/Troll.java index 3bcf4ec472d4..a194f9e586f4 100644 --- a/decorator/src/main/java/com/iluwatar/Troll.java +++ b/decorator/src/main/java/com/iluwatar/decorator/Troll.java @@ -1,13 +1,13 @@ -package com.iluwatar; - -public class Troll implements Hostile { - - public void attack() { - System.out.println("The troll swings at you with a club!"); - } - - public void fleeBattle() { - System.out.println("The troll shrieks in horror and runs away!"); - } - -} +package com.iluwatar.decorator; + +public class Troll implements Hostile { + + public void attack() { + System.out.println("The troll swings at you with a club!"); + } + + public void fleeBattle() { + System.out.println("The troll shrieks in horror and runs away!"); + } + +} diff --git a/double-checked-locking/double-checked-locking.iml b/double-checked-locking/double-checked-locking.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/double-checked-locking/double-checked-locking.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/double-checked-locking/src/main/java/com/iluwatar/App.java b/double-checked-locking/src/main/java/com/iluwatardbcheck/App.java similarity index 89% rename from double-checked-locking/src/main/java/com/iluwatar/App.java rename to double-checked-locking/src/main/java/com/iluwatardbcheck/App.java index 7e6bfd532c45..6af96588841e 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/App.java +++ b/double-checked-locking/src/main/java/com/iluwatardbcheck/App.java @@ -1,4 +1,4 @@ -package com.iluwatar; +package com.iluwatardbcheck; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -22,7 +22,9 @@ public static void main( String[] args ) executorService.execute(new Runnable() { @Override public void run() { - while(inventory.addItem(new Item())); + while(inventory.addItem(new Item())) { + ; + } } }); } diff --git a/double-checked-locking/src/main/java/com/iluwatar/Inventory.java b/double-checked-locking/src/main/java/com/iluwatardbcheck/Inventory.java similarity index 89% rename from double-checked-locking/src/main/java/com/iluwatar/Inventory.java rename to double-checked-locking/src/main/java/com/iluwatardbcheck/Inventory.java index a6ddc350d83d..69b4ffc1a925 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/Inventory.java +++ b/double-checked-locking/src/main/java/com/iluwatardbcheck/Inventory.java @@ -1,4 +1,4 @@ -package com.iluwatar; +package com.iluwatardbcheck; import java.util.ArrayList; import java.util.List; @@ -14,7 +14,7 @@ public class Inventory { public Inventory(int inventorySize) { this.inventorySize = inventorySize; - this.items = new ArrayList(inventorySize); + items = new ArrayList(inventorySize); } public boolean addItem(Item item){ diff --git a/double-checked-locking/src/main/java/com/iluwatar/Item.java b/double-checked-locking/src/main/java/com/iluwatardbcheck/Item.java similarity index 62% rename from double-checked-locking/src/main/java/com/iluwatar/Item.java rename to double-checked-locking/src/main/java/com/iluwatardbcheck/Item.java index 76e095e7e415..7fb0844ce52e 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/Item.java +++ b/double-checked-locking/src/main/java/com/iluwatardbcheck/Item.java @@ -1,4 +1,4 @@ -package com.iluwatar; +package com.iluwatardbcheck; public class Item { String name; diff --git a/facade/facade.iml b/facade/facade.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/facade/facade.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/facade/src/main/java/com/iluwatar/App.java b/facade/src/main/java/com/iluwatar/facade/App.java similarity index 88% rename from facade/src/main/java/com/iluwatar/App.java rename to facade/src/main/java/com/iluwatar/facade/App.java index 98d43511f857..cd09c43de88c 100644 --- a/facade/src/main/java/com/iluwatar/App.java +++ b/facade/src/main/java/com/iluwatar/facade/App.java @@ -1,18 +1,18 @@ -package com.iluwatar; - -/** - * - * Facade (DwarvenGoldmineFacade) provides simpler interface to - * subsystem. - * - */ -public class App -{ - public static void main( String[] args ) - { - DwarvenGoldmineFacade facade = new DwarvenGoldmineFacade(); - facade.startNewDay(); - facade.digOutGold(); - facade.endDay(); - } -} +package com.iluwatar.facade; + +/** + * + * Facade (DwarvenGoldmineFacade) provides simpler interface to + * subsystem. + * + */ +public class App +{ + public static void main( String[] args ) + { + DwarvenGoldmineFacade facade = new DwarvenGoldmineFacade(); + facade.startNewDay(); + facade.digOutGold(); + facade.endDay(); + } +} diff --git a/facade/src/main/java/com/iluwatar/DwarvenCartOperator.java b/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java similarity index 86% rename from facade/src/main/java/com/iluwatar/DwarvenCartOperator.java rename to facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java index ef13611a8d85..07b37133bef0 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenCartOperator.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java @@ -1,15 +1,15 @@ -package com.iluwatar; - -public class DwarvenCartOperator extends DwarvenMineWorker { - - @Override - public void work() { - System.out.println(name() + " moves gold chunks out of the mine."); - } - - @Override - public String name() { - return "Dwarf cart operator"; - } - -} +package com.iluwatar.facade; + +public class DwarvenCartOperator extends DwarvenMineWorker { + + @Override + public void work() { + System.out.println(name() + " moves gold chunks out of the mine."); + } + + @Override + public String name() { + return "Dwarf cart operator"; + } + +} diff --git a/facade/src/main/java/com/iluwatar/DwarvenGoldDigger.java b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java similarity index 85% rename from facade/src/main/java/com/iluwatar/DwarvenGoldDigger.java rename to facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java index ea7c7e68e393..5cafdcfb663d 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenGoldDigger.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java @@ -1,15 +1,15 @@ -package com.iluwatar; - -public class DwarvenGoldDigger extends DwarvenMineWorker { - - @Override - public void work() { - System.out.println(name() + " digs for gold."); - } - - @Override - public String name() { - return "Dwarf gold digger"; - } - -} +package com.iluwatar.facade; + +public class DwarvenGoldDigger extends DwarvenMineWorker { + + @Override + public void work() { + System.out.println(name() + " digs for gold."); + } + + @Override + public String name() { + return "Dwarf gold digger"; + } + +} diff --git a/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java similarity index 86% rename from facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java rename to facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java index a8a71bef5b05..9e9e7bf96a65 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java @@ -1,37 +1,37 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -public class DwarvenGoldmineFacade { - - List workers; - - public DwarvenGoldmineFacade() { - workers = new ArrayList<>(); - workers.add(new DwarvenGoldDigger()); - workers.add(new DwarvenCartOperator()); - workers.add(new DwarvenTunnelDigger()); - } - - public void startNewDay() { - for (DwarvenMineWorker worker: workers) { - worker.wakeUp(); - worker.goToMine(); - } - } - - public void digOutGold() { - for (DwarvenMineWorker worker: workers) { - worker.work(); - } - } - - public void endDay() { - for (DwarvenMineWorker worker: workers) { - worker.goHome(); - worker.goToSleep(); - } - } - -} +package com.iluwatar.facade; + +import java.util.ArrayList; +import java.util.List; + +public class DwarvenGoldmineFacade { + + List workers; + + public DwarvenGoldmineFacade() { + workers = new ArrayList(); + workers.add(new DwarvenGoldDigger()); + workers.add(new DwarvenCartOperator()); + workers.add(new DwarvenTunnelDigger()); + } + + public void startNewDay() { + for (DwarvenMineWorker worker: workers) { + worker.wakeUp(); + worker.goToMine(); + } + } + + public void digOutGold() { + for (DwarvenMineWorker worker: workers) { + worker.work(); + } + } + + public void endDay() { + for (DwarvenMineWorker worker: workers) { + worker.goHome(); + worker.goToSleep(); + } + } + +} diff --git a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java similarity index 90% rename from facade/src/main/java/com/iluwatar/DwarvenMineWorker.java rename to facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java index 21b936738808..c8a37c83996e 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public abstract class DwarvenMineWorker { - - public void goToSleep() { - System.out.println(name() + " goes to sleep."); - } - - public void wakeUp() { - System.out.println(name() + " wakes up."); - } - - public void goHome() { - System.out.println(name() + " goes home."); - } - - public void goToMine() { - System.out.println(name() + " goes to the mine."); - } - - public abstract void work(); - - public abstract String name(); - -} +package com.iluwatar.facade; + +public abstract class DwarvenMineWorker { + + public void goToSleep() { + System.out.println(name() + " goes to sleep."); + } + + public void wakeUp() { + System.out.println(name() + " wakes up."); + } + + public void goHome() { + System.out.println(name() + " goes home."); + } + + public void goToMine() { + System.out.println(name() + " goes to the mine."); + } + + public abstract void work(); + + public abstract String name(); + +} diff --git a/facade/src/main/java/com/iluwatar/DwarvenTunnelDigger.java b/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java similarity index 86% rename from facade/src/main/java/com/iluwatar/DwarvenTunnelDigger.java rename to facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java index b8ef1833247c..62b3fc3ff147 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenTunnelDigger.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java @@ -1,15 +1,15 @@ -package com.iluwatar; - -public class DwarvenTunnelDigger extends DwarvenMineWorker { - - @Override - public void work() { - System.out.println(name() + " creates another promising tunnel."); - } - - @Override - public String name() { - return "Dwarven tunnel digger"; - } - -} +package com.iluwatar.facade; + +public class DwarvenTunnelDigger extends DwarvenMineWorker { + + @Override + public void work() { + System.out.println(name() + " creates another promising tunnel."); + } + + @Override + public String name() { + return "Dwarven tunnel digger"; + } + +} diff --git a/factory-method/.gitignore b/factory-method/.gitignore index b83d22266ac8..e2540458518e 100644 --- a/factory-method/.gitignore +++ b/factory-method/.gitignore @@ -1 +1,2 @@ /target/ +/bin diff --git a/factory-method/factory-method.iml b/factory-method/factory-method.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/factory-method/factory-method.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/factory-method/out/.gitignore b/factory-method/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/factory-method/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/factory-method/src/main/java/com/iluwatar/App.java b/factory-method/src/main/java/com/iluwatar/App.java deleted file mode 100644 index d9af81227b9f..000000000000 --- a/factory-method/src/main/java/com/iluwatar/App.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.iluwatar; - -/** - * - * In Factory Method we have an interface (Blacksmith) with a - * method for creating objects (manufactureWeapon). The concrete - * subclasses (OrcBlacksmith, ElfBlacksmith) then override the - * method to produce objects of their liking. - * - */ -public class App -{ - public static void main( String[] args ) - { - Blacksmith blacksmith; - Weapon weapon; - - blacksmith = new OrcBlacksmith(); - weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); - System.out.println(weapon); - weapon = blacksmith.manufactureWeapon(WeaponType.AXE); - System.out.println(weapon); - - blacksmith = new ElfBlacksmith(); - weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); - System.out.println(weapon); - weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); - System.out.println(weapon); - } -} diff --git a/factory-method/src/main/java/com/iluwatar/Weapon.java b/factory-method/src/main/java/com/iluwatar/Weapon.java deleted file mode 100644 index 0787c38f3e15..000000000000 --- a/factory-method/src/main/java/com/iluwatar/Weapon.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.iluwatar; - -public interface Weapon { - -} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/App.java b/factory-method/src/main/java/com/iluwatar/factory/method/App.java new file mode 100644 index 000000000000..f406b1931003 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/App.java @@ -0,0 +1,35 @@ +package com.iluwatar.factory.method; + + +/** + * + * In Factory Method we have an interface (Blacksmith) with a + * method for creating objects (manufactureWeapon). The concrete + * subclasses (OrcBlacksmith, ElfBlacksmith) then override the + * method to produce objects of their liking. + * + */ +public class App +{ + public static void main( String[] args ) + { + Blacksmith blacksmith; + Weapon weapon; + + blacksmith = new OrcBlacksmith(); + weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); + System.out.println(weapon); + weapon = blacksmith.manufactureWeapon(WeaponType.AXE); + System.out.println(weapon); + + blacksmith = new ElfBlacksmith(); + weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); + System.out.println(weapon); + weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); + System.out.println(weapon); + + blacksmith = new Testsmith(); + weapon = blacksmith.manufactureWeapon(WeaponType.TEST); + System.out.print(weapon); + } +} diff --git a/factory-method/src/main/java/com/iluwatar/Blacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java similarity index 78% rename from factory-method/src/main/java/com/iluwatar/Blacksmith.java rename to factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java index ac488b27d8c9..64ec02980bff 100644 --- a/factory-method/src/main/java/com/iluwatar/Blacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java @@ -1,12 +1,14 @@ -package com.iluwatar; - -/** - * - * The interface containing method for producing objects. - * - */ -public interface Blacksmith { - - Weapon manufactureWeapon(WeaponType weaponType); - -} +package com.iluwatar.factory.method; + + + +/** + * + * The interface containing method for producing objects. + * + */ +public interface Blacksmith { + + Weapon manufactureWeapon(WeaponType weaponType); + +} diff --git a/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java similarity index 79% rename from factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java rename to factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java index 067584088e13..0a358d248dac 100644 --- a/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java @@ -1,14 +1,17 @@ -package com.iluwatar; - -/** - * - * Concrete subclass for creating new objects. - * - */ -public class ElfBlacksmith implements Blacksmith { - - public Weapon manufactureWeapon(WeaponType weaponType) { - return new ElfWeapon(weaponType); - } - -} +package com.iluwatar.factory.method; + + + +/** + * + * Concrete subclass for creating new objects. + * + */ +public class ElfBlacksmith implements Blacksmith { + + @Override + public Weapon manufactureWeapon(WeaponType weaponType) { + return new ElfWeapon(weaponType); + } + +} diff --git a/factory-method/src/main/java/com/iluwatar/ElfWeapon.java b/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java similarity index 85% rename from factory-method/src/main/java/com/iluwatar/ElfWeapon.java rename to factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java index f1c3e6d5c5cf..37e4a9ce4fe4 100644 --- a/factory-method/src/main/java/com/iluwatar/ElfWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java @@ -1,16 +1,17 @@ -package com.iluwatar; - -public class ElfWeapon implements Weapon { - - private WeaponType weaponType; - - public ElfWeapon(WeaponType weaponType) { - this.weaponType = weaponType; - } - - @Override - public String toString() { - return "Elven " + weaponType; - } - -} +package com.iluwatar.factory.method; + + +public class ElfWeapon implements Weapon { + + private WeaponType weaponType; + + public ElfWeapon(WeaponType weaponType) { + this.weaponType = weaponType; + } + + @Override + public String toString() { + return "Elven " + weaponType; + } + +} diff --git a/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java similarity index 80% rename from factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java rename to factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java index 60730d15f410..ac1c64364497 100644 --- a/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java @@ -1,14 +1,16 @@ -package com.iluwatar; - -/** - * - * Concrete subclass for creating new objects. - * - */ -public class OrcBlacksmith implements Blacksmith { - - public Weapon manufactureWeapon(WeaponType weaponType) { - return new OrcWeapon(weaponType); - } - -} +package com.iluwatar.factory.method; + + +/** + * + * Concrete subclass for creating new objects. + * + */ +public class OrcBlacksmith implements Blacksmith { + + @Override + public Weapon manufactureWeapon(WeaponType weaponType) { + return new OrcWeapon(weaponType); + } + +} diff --git a/factory-method/src/main/java/com/iluwatar/OrcWeapon.java b/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java similarity index 85% rename from factory-method/src/main/java/com/iluwatar/OrcWeapon.java rename to factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java index 5ad59015846a..a0a505259057 100644 --- a/factory-method/src/main/java/com/iluwatar/OrcWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java @@ -1,16 +1,18 @@ -package com.iluwatar; - -public class OrcWeapon implements Weapon { - - private WeaponType weaponType; - - public OrcWeapon(WeaponType weaponType) { - this.weaponType = weaponType; - } - - @Override - public String toString() { - return "Orcish " + weaponType; - } - -} +package com.iluwatar.factory.method; + + + +public class OrcWeapon implements Weapon { + + private WeaponType weaponType; + + public OrcWeapon(WeaponType weaponType) { + this.weaponType = weaponType; + } + + @Override + public String toString() { + return "Orcish " + weaponType; + } + +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/Testsmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/Testsmith.java new file mode 100644 index 000000000000..6bc1af839dec --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/Testsmith.java @@ -0,0 +1,16 @@ +package com.iluwatar.factory.method; + + +/** + * + * Concrete subclass for creating new objects. + * + */ +public class Testsmith implements Blacksmith { + + @Override + public Weapon manufactureWeapon(WeaponType weaponType) { + return new ElfWeapon(weaponType); + } + +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/Weapon.java b/factory-method/src/main/java/com/iluwatar/factory/method/Weapon.java new file mode 100644 index 000000000000..80e7c911fb78 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/Weapon.java @@ -0,0 +1,5 @@ +package com.iluwatar.factory.method; + +public interface Weapon { + +} diff --git a/factory-method/src/main/java/com/iluwatar/WeaponType.java b/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java similarity index 70% rename from factory-method/src/main/java/com/iluwatar/WeaponType.java rename to factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java index 72e01d82ceed..4ba4f4f47749 100644 --- a/factory-method/src/main/java/com/iluwatar/WeaponType.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java @@ -1,19 +1,20 @@ -package com.iluwatar; - -public enum WeaponType { - - SHORT_SWORD, SPEAR, AXE; - - @Override - public String toString() { - String s = ""; - switch(this) { - case SHORT_SWORD: s = "short sword"; break; - case SPEAR: s = "spear"; break; - case AXE: s = "axe"; break; - } - return s; - } - - -} +package com.iluwatar.factory.method; + +public enum WeaponType { + + SHORT_SWORD, SPEAR, AXE,TEST; + + @Override + public String toString() { + String s = ""; + switch(this) { + case SHORT_SWORD: s = "short sword"; break; + case SPEAR: s = "spear"; break; + case AXE: s = "axe"; break; + case TEST: s = "test"; break; + } + return s; + } + + +} diff --git a/factory-method/src/test/log4j.xml b/factory-method/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/factory-method/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/factory-method/src/test/resources/configure/UATApplicationContext.xml b/factory-method/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/factory-method/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/factory-method/src/test/resources/configure/prop.xml b/factory-method/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/factory-method/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/factory-method/src/test/resources/configure/test_data_source.xml b/factory-method/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/factory-method/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/factory-method/src/test/resources/configure/uat.properties b/factory-method/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/factory-method/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/factory-method/src/test/resources/configure/uat_spring_conf.xml b/factory-method/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/factory-method/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/factory-method/src/test/resources/data/backup/README b/factory-method/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/factory-method/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/factory-method/src/test/resources/data/config/README b/factory-method/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/factory-method/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/factory-method/src/test/resources/data/excel/README b/factory-method/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/factory-method/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/factory-method/src/test/resources/data/object/README b/factory-method/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/factory-method/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/factory-method/src/test/resources/data/spring/README b/factory-method/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/factory-method/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/factory-method/src/test/resources/temp/README b/factory-method/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/factory-method/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/factory-method/src/test/testng.xml b/factory-method/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/factory-method/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/flyweight/flyweight.iml b/flyweight/flyweight.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/flyweight/flyweight.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/flyweight/src/main/java/com/iluwatar/AlchemistShop.java b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java similarity index 88% rename from flyweight/src/main/java/com/iluwatar/AlchemistShop.java rename to flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java index 3d15668c891a..13823f0be437 100644 --- a/flyweight/src/main/java/com/iluwatar/AlchemistShop.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java @@ -1,57 +1,57 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * The class that needs many objects. - * - */ -public class AlchemistShop { - - List topShelf; - List bottomShelf; - - public AlchemistShop() { - topShelf = new ArrayList<>(); - bottomShelf = new ArrayList<>(); - fillShelves(); - } - - private void fillShelves() { - - PotionFactory factory = new PotionFactory(); - - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.STRENGTH)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.STRENGTH)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); - bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); - } - - public void enumerate() { - - System.out.println("Enumerating top shelf potions\n"); - - for (Potion p: topShelf) { - p.drink(); - } - - System.out.println("\nEnumerating bottom shelf potions\n"); - - for (Potion p: bottomShelf) { - p.drink(); - } - - } -} +package com.iluwatar.flyweight; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * The class that needs many objects. + * + */ +public class AlchemistShop { + + List topShelf; + List bottomShelf; + + public AlchemistShop() { + topShelf = new ArrayList(); + bottomShelf = new ArrayList(); + fillShelves(); + } + + private void fillShelves() { + + PotionFactory factory = new PotionFactory(); + + topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); + topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); + topShelf.add(factory.createPotion(PotionType.STRENGTH)); + topShelf.add(factory.createPotion(PotionType.HEALING)); + topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); + topShelf.add(factory.createPotion(PotionType.STRENGTH)); + topShelf.add(factory.createPotion(PotionType.HEALING)); + topShelf.add(factory.createPotion(PotionType.HEALING)); + + bottomShelf.add(factory.createPotion(PotionType.POISON)); + bottomShelf.add(factory.createPotion(PotionType.POISON)); + bottomShelf.add(factory.createPotion(PotionType.POISON)); + bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); + bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); + } + + public void enumerate() { + + System.out.println("Enumerating top shelf potions\n"); + + for (Potion p: topShelf) { + p.drink(); + } + + System.out.println("\nEnumerating bottom shelf potions\n"); + + for (Potion p: bottomShelf) { + p.drink(); + } + + } +} diff --git a/flyweight/src/main/java/com/iluwatar/App.java b/flyweight/src/main/java/com/iluwatar/flyweight/App.java similarity index 89% rename from flyweight/src/main/java/com/iluwatar/App.java rename to flyweight/src/main/java/com/iluwatar/flyweight/App.java index d3b23dc867e7..c2b6dd3f6f91 100644 --- a/flyweight/src/main/java/com/iluwatar/App.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/App.java @@ -1,17 +1,17 @@ -package com.iluwatar; - -/** - * - * Flyweight (PotionFactory) is useful when there is plethora of - * objects (Potion). It provides means to decrease resource usage - * by sharing object instances. - * - */ -public class App -{ - public static void main( String[] args ) - { - AlchemistShop alchemistShop = new AlchemistShop(); - alchemistShop.enumerate(); - } -} +package com.iluwatar.flyweight; + +/** + * + * Flyweight (PotionFactory) is useful when there is plethora of + * objects (Potion). It provides means to decrease resource usage + * by sharing object instances. + * + */ +public class App +{ + public static void main( String[] args ) + { + AlchemistShop alchemistShop = new AlchemistShop(); + alchemistShop.enumerate(); + } +} diff --git a/flyweight/src/main/java/com/iluwatar/HealingPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java similarity index 84% rename from flyweight/src/main/java/com/iluwatar/HealingPotion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java index 944dea751e37..e2da1048fb97 100644 --- a/flyweight/src/main/java/com/iluwatar/HealingPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class HealingPotion implements Potion { - - @Override - public void drink() { - System.out.println("You feel healed. (Potion=" + System.identityHashCode(this) + ")"); - } - -} +package com.iluwatar.flyweight; + +public class HealingPotion implements Potion { + + @Override + public void drink() { + System.out.println("You feel healed. (Potion=" + System.identityHashCode(this) + ")"); + } + +} diff --git a/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java similarity index 84% rename from flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java index 27b185a9467e..de33a716f0f9 100644 --- a/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class HolyWaterPotion implements Potion { - - @Override - public void drink() { - System.out.println("You feel blessed. (Potion=" + System.identityHashCode(this) + ")"); - } - -} +package com.iluwatar.flyweight; + +public class HolyWaterPotion implements Potion { + + @Override + public void drink() { + System.out.println("You feel blessed. (Potion=" + System.identityHashCode(this) + ")"); + } + +} diff --git a/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java similarity index 85% rename from flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java index 7796b5bebe6e..40a9b69554e2 100644 --- a/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class InvisibilityPotion implements Potion { - - @Override - public void drink() { - System.out.println("You become invisible. (Potion=" + System.identityHashCode(this) + ")"); - } - -} +package com.iluwatar.flyweight; + +public class InvisibilityPotion implements Potion { + + @Override + public void drink() { + System.out.println("You become invisible. (Potion=" + System.identityHashCode(this) + ")"); + } + +} diff --git a/flyweight/src/main/java/com/iluwatar/PoisonPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java similarity index 85% rename from flyweight/src/main/java/com/iluwatar/PoisonPotion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java index 728b0d00b1be..cc7e5d0d3141 100644 --- a/flyweight/src/main/java/com/iluwatar/PoisonPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class PoisonPotion implements Potion { - - @Override - public void drink() { - System.out.println("Urgh! This is poisonous. (Potion=" + System.identityHashCode(this) + ")"); - } - -} +package com.iluwatar.flyweight; + +public class PoisonPotion implements Potion { + + @Override + public void drink() { + System.out.println("Urgh! This is poisonous. (Potion=" + System.identityHashCode(this) + ")"); + } + +} diff --git a/flyweight/src/main/java/com/iluwatar/Potion.java b/flyweight/src/main/java/com/iluwatar/flyweight/Potion.java similarity index 73% rename from flyweight/src/main/java/com/iluwatar/Potion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/Potion.java index 91cfabe3a1e9..b76e7b4e52ab 100644 --- a/flyweight/src/main/java/com/iluwatar/Potion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/Potion.java @@ -1,12 +1,12 @@ -package com.iluwatar; - -/** - * - * Interface for objects. - * - */ -public interface Potion { - - public void drink(); - -} +package com.iluwatar.flyweight; + +/** + * + * Interface for objects. + * + */ +public interface Potion { + + public void drink(); + +} diff --git a/flyweight/src/main/java/com/iluwatar/PotionFactory.java b/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java similarity index 86% rename from flyweight/src/main/java/com/iluwatar/PotionFactory.java rename to flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java index d1eb09a74a14..0ea48e01bd98 100644 --- a/flyweight/src/main/java/com/iluwatar/PotionFactory.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java @@ -1,49 +1,49 @@ -package com.iluwatar; - -import java.util.EnumMap; - -/** - * - * Flyweight. - * - */ -public class PotionFactory { - - private EnumMap potions; - - public PotionFactory() { - potions = new EnumMap<>(PotionType.class); - } - - Potion createPotion(PotionType type) { - Potion potion = potions.get(type); - if (potion == null) { - switch (type) { - case HEALING: - potion = new HealingPotion(); - potions.put(type, potion); - break; - case HOLY_WATER: - potion = new HolyWaterPotion(); - potions.put(type, potion); - break; - case INVISIBILITY: - potion = new InvisibilityPotion(); - potions.put(type, potion); - break; - case POISON: - potion = new PoisonPotion(); - potions.put(type, potion); - break; - case STRENGTH: - potion = new StrengthPotion(); - potions.put(type, potion); - break; - default: - break; - } - } - return potion; - } - -} +package com.iluwatar.flyweight; + +import java.util.EnumMap; + +/** + * + * Flyweight. + * + */ +public class PotionFactory { + + private EnumMap potions; + + public PotionFactory() { + potions = new EnumMap(PotionType.class); + } + + Potion createPotion(PotionType type) { + Potion potion = potions.get(type); + if (potion == null) { + switch (type) { + case HEALING: + potion = new HealingPotion(); + potions.put(type, potion); + break; + case HOLY_WATER: + potion = new HolyWaterPotion(); + potions.put(type, potion); + break; + case INVISIBILITY: + potion = new InvisibilityPotion(); + potions.put(type, potion); + break; + case POISON: + potion = new PoisonPotion(); + potions.put(type, potion); + break; + case STRENGTH: + potion = new StrengthPotion(); + potions.put(type, potion); + break; + default: + break; + } + } + return potion; + } + +} diff --git a/flyweight/src/main/java/com/iluwatar/PotionType.java b/flyweight/src/main/java/com/iluwatar/flyweight/PotionType.java similarity index 72% rename from flyweight/src/main/java/com/iluwatar/PotionType.java rename to flyweight/src/main/java/com/iluwatar/flyweight/PotionType.java index ff4e392c9f26..38c5a3a53c79 100644 --- a/flyweight/src/main/java/com/iluwatar/PotionType.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/PotionType.java @@ -1,11 +1,11 @@ -package com.iluwatar; - -public enum PotionType { - - HEALING, - INVISIBILITY, - STRENGTH, - HOLY_WATER, - POISON; - -} +package com.iluwatar.flyweight; + +public enum PotionType { + + HEALING, + INVISIBILITY, + STRENGTH, + HOLY_WATER, + POISON; + +} diff --git a/flyweight/src/main/java/com/iluwatar/StrengthPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java similarity index 84% rename from flyweight/src/main/java/com/iluwatar/StrengthPotion.java rename to flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java index 0709b5b53116..d69bb90974ab 100644 --- a/flyweight/src/main/java/com/iluwatar/StrengthPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class StrengthPotion implements Potion { - - @Override - public void drink() { - System.out.println("You feel strong. (Potion=" + System.identityHashCode(this) + ")"); - } - -} +package com.iluwatar.flyweight; + +public class StrengthPotion implements Potion { + + @Override + public void drink() { + System.out.println("You feel strong. (Potion=" + System.identityHashCode(this) + ")"); + } + +} diff --git a/interpreter/interpreter.iml b/interpreter/interpreter.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/interpreter/interpreter.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/interpreter/src/main/java/com/iluwatar/App.java b/interpreter/src/main/java/com/iluwatar/interpreter/App.java similarity index 76% rename from interpreter/src/main/java/com/iluwatar/App.java rename to interpreter/src/main/java/com/iluwatar/interpreter/App.java index ce2d6b520d29..efd9b3f9421d 100644 --- a/interpreter/src/main/java/com/iluwatar/App.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/App.java @@ -1,67 +1,68 @@ -package com.iluwatar; - -import java.util.Stack; - -/** - * - * Interpreter pattern breaks sentences into expressions (Expression) - * that can be evaluated and as a whole form the result. - * - */ -public class App -{ - - /** - * - * Expressions can be evaluated using prefix, infix or postfix notations - * This sample uses postfix, where operator comes after the operands - * - */ - public static void main( String[] args ) - { - String tokenString = "4 3 2 - 1 + *"; - Stack stack = new Stack<>(); - - String[] tokenList = tokenString.split(" "); - for (String s : tokenList) { - if (isOperator(s)) { - Expression rightExpression = stack.pop(); - Expression leftExpression = stack.pop(); - System.out.println(String.format("popped from stack left: %d right: %d", - leftExpression.interpret(), rightExpression.interpret())); - Expression operator = getOperatorInstance(s, leftExpression, - rightExpression); - System.out.println(String.format("operator: %s", operator)); - int result = operator.interpret(); - NumberExpression resultExpression = new NumberExpression(result); - stack.push(resultExpression); - System.out.println(String.format("push result to stack: %d", resultExpression.interpret())); - } else { - Expression i = new NumberExpression(s); - stack.push(i); - System.out.println(String.format("push to stack: %d", i.interpret())); - } - } - System.out.println(String.format("result: %d", stack.pop().interpret())); - } - - public static boolean isOperator(String s) { - if (s.equals("+") || s.equals("-") || s.equals("*")) - return true; - else - return false; - } - - public static Expression getOperatorInstance(String s, Expression left, - Expression right) { - switch (s) { - case "+": - return new PlusExpression(left, right); - case "-": - return new MinusExpression(left, right); - case "*": - return new MultiplyExpression(left, right); - } - return null; - } -} +package com.iluwatar.interpreter; + +import java.util.Stack; + +/** + * + * Interpreter pattern breaks sentences into expressions (Expression) + * that can be evaluated and as a whole form the result. + * + */ +public class App +{ + + /** + * + * Expressions can be evaluated using prefix, infix or postfix notations + * This sample uses postfix, where operator comes after the operands + * + */ + public static void main( String[] args ) + { + String tokenString = "4 3 2 - 1 + *"; + Stack stack = new Stack(); + + String[] tokenList = tokenString.split(" "); + for (String s : tokenList) { + if (isOperator(s)) { + Expression rightExpression = stack.pop(); + Expression leftExpression = stack.pop(); + System.out.println(String.format("popped from stack left: %d right: %d", + leftExpression.interpret(), rightExpression.interpret())); + Expression operator = getOperatorInstance(s, leftExpression, + rightExpression); + System.out.println(String.format("operator: %s", operator)); + int result = operator.interpret(); + NumberExpression resultExpression = new NumberExpression(result); + stack.push(resultExpression); + System.out.println(String.format("push result to stack: %d", resultExpression.interpret())); + } else { + Expression i = new NumberExpression(s); + stack.push(i); + System.out.println(String.format("push to stack: %d", i.interpret())); + } + } + System.out.println(String.format("result: %d", stack.pop().interpret())); + } + + public static boolean isOperator(String s) { + if (s.equals("+") || s.equals("-") || s.equals("*")) { + return true; + } else { + return false; + } + } + + public static Expression getOperatorInstance(String s, Expression left, + Expression right) { + if ("+".equals(s)) { + return new PlusExpression(left, right); + } else if ("-".equals(s)) { + return new MinusExpression(left, right); + } else if ("*".equals(s)) { + return new MultiplyExpression(left, right); + } + + return null; + } +} diff --git a/interpreter/src/main/java/com/iluwatar/Expression.java b/interpreter/src/main/java/com/iluwatar/interpreter/Expression.java similarity index 78% rename from interpreter/src/main/java/com/iluwatar/Expression.java rename to interpreter/src/main/java/com/iluwatar/interpreter/Expression.java index 28fbce6fd71d..922807274c30 100644 --- a/interpreter/src/main/java/com/iluwatar/Expression.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/Expression.java @@ -1,9 +1,9 @@ -package com.iluwatar; - -public abstract class Expression { - - public abstract int interpret(); - - @Override - public abstract String toString(); -} +package com.iluwatar.interpreter; + +public abstract class Expression { + + public abstract int interpret(); + + @Override + public abstract String toString(); +} diff --git a/interpreter/src/main/java/com/iluwatar/MinusExpression.java b/interpreter/src/main/java/com/iluwatar/interpreter/MinusExpression.java similarity index 91% rename from interpreter/src/main/java/com/iluwatar/MinusExpression.java rename to interpreter/src/main/java/com/iluwatar/interpreter/MinusExpression.java index 8025020fcb49..c344daf5f400 100644 --- a/interpreter/src/main/java/com/iluwatar/MinusExpression.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/MinusExpression.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public class MinusExpression extends Expression { - - private Expression leftExpression; - private Expression rightExpression; - - public MinusExpression(Expression leftExpression, Expression rightExpression) { - this.leftExpression = leftExpression; - this.rightExpression = rightExpression; - } - - @Override - public int interpret() { - return leftExpression.interpret() - rightExpression.interpret(); - } - - @Override - public String toString() { - return "-"; - } - -} +package com.iluwatar.interpreter; + +public class MinusExpression extends Expression { + + private Expression leftExpression; + private Expression rightExpression; + + public MinusExpression(Expression leftExpression, Expression rightExpression) { + this.leftExpression = leftExpression; + this.rightExpression = rightExpression; + } + + @Override + public int interpret() { + return leftExpression.interpret() - rightExpression.interpret(); + } + + @Override + public String toString() { + return "-"; + } + +} diff --git a/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java b/interpreter/src/main/java/com/iluwatar/interpreter/MultiplyExpression.java similarity index 91% rename from interpreter/src/main/java/com/iluwatar/MultiplyExpression.java rename to interpreter/src/main/java/com/iluwatar/interpreter/MultiplyExpression.java index 15e1a1d9e282..6fa02f67ba47 100644 --- a/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/MultiplyExpression.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public class MultiplyExpression extends Expression { - - private Expression leftExpression; - private Expression rightExpression; - - public MultiplyExpression(Expression leftExpression, Expression rightExpression) { - this.leftExpression = leftExpression; - this.rightExpression = rightExpression; - } - - @Override - public int interpret() { - return leftExpression.interpret() * rightExpression.interpret(); - } - - @Override - public String toString() { - return "*"; - } - -} +package com.iluwatar.interpreter; + +public class MultiplyExpression extends Expression { + + private Expression leftExpression; + private Expression rightExpression; + + public MultiplyExpression(Expression leftExpression, Expression rightExpression) { + this.leftExpression = leftExpression; + this.rightExpression = rightExpression; + } + + @Override + public int interpret() { + return leftExpression.interpret() * rightExpression.interpret(); + } + + @Override + public String toString() { + return "*"; + } + +} diff --git a/interpreter/src/main/java/com/iluwatar/NumberExpression.java b/interpreter/src/main/java/com/iluwatar/interpreter/NumberExpression.java similarity index 87% rename from interpreter/src/main/java/com/iluwatar/NumberExpression.java rename to interpreter/src/main/java/com/iluwatar/interpreter/NumberExpression.java index 0e818f3368bc..104fd39f5b3d 100644 --- a/interpreter/src/main/java/com/iluwatar/NumberExpression.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/NumberExpression.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class NumberExpression extends Expression { - - private int number; - - public NumberExpression(int number) { - this.number = number; - } - - public NumberExpression(String s) { - this.number = Integer.parseInt(s); - } - - @Override - public int interpret() { - return number; - } - - @Override - public String toString() { - return "number"; - } - -} +package com.iluwatar.interpreter; + +public class NumberExpression extends Expression { + + private int number; + + public NumberExpression(int number) { + this.number = number; + } + + public NumberExpression(String s) { + this.number = Integer.parseInt(s); + } + + @Override + public int interpret() { + return number; + } + + @Override + public String toString() { + return "number"; + } + +} diff --git a/interpreter/src/main/java/com/iluwatar/PlusExpression.java b/interpreter/src/main/java/com/iluwatar/interpreter/PlusExpression.java similarity index 91% rename from interpreter/src/main/java/com/iluwatar/PlusExpression.java rename to interpreter/src/main/java/com/iluwatar/interpreter/PlusExpression.java index de090c3320c0..22d8d09d27e6 100644 --- a/interpreter/src/main/java/com/iluwatar/PlusExpression.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/PlusExpression.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -public class PlusExpression extends Expression { - - private Expression leftExpression; - private Expression rightExpression; - - public PlusExpression(Expression leftExpression, Expression rightExpression) { - this.leftExpression = leftExpression; - this.rightExpression = rightExpression; - } - - @Override - public int interpret() { - return leftExpression.interpret() + rightExpression.interpret(); - } - - @Override - public String toString() { - return "+"; - } - -} +package com.iluwatar.interpreter; + +public class PlusExpression extends Expression { + + private Expression leftExpression; + private Expression rightExpression; + + public PlusExpression(Expression leftExpression, Expression rightExpression) { + this.leftExpression = leftExpression; + this.rightExpression = rightExpression; + } + + @Override + public int interpret() { + return leftExpression.interpret() + rightExpression.interpret(); + } + + @Override + public String toString() { + return "+"; + } + +} diff --git a/iterator/iterator.iml b/iterator/iterator.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/iterator/iterator.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iterator/src/main/java/com/iluwatar/App.java b/iterator/src/main/java/com/iluwatar/iterator/App.java similarity index 94% rename from iterator/src/main/java/com/iluwatar/App.java rename to iterator/src/main/java/com/iluwatar/iterator/App.java index 0ee92de1bc74..4c706486509c 100644 --- a/iterator/src/main/java/com/iluwatar/App.java +++ b/iterator/src/main/java/com/iluwatar/iterator/App.java @@ -1,42 +1,42 @@ -package com.iluwatar; - -/** - * - * Iterator (ItemIterator) adds abstraction layer on top of a - * collection (TreasureChest). This way the collection can change - * its internal implementation without affecting its clients. - * - */ -public class App -{ - public static void main( String[] args ) - { - TreasureChest chest = new TreasureChest(); - - ItemIterator ringIterator = chest.Iterator(ItemType.RING); - while (ringIterator.hasNext()) { - System.out.println(ringIterator.next()); - } - - System.out.println("----------"); - - ItemIterator potionIterator = chest.Iterator(ItemType.POTION); - while (potionIterator.hasNext()) { - System.out.println(potionIterator.next()); - } - - System.out.println("----------"); - - ItemIterator weaponIterator = chest.Iterator(ItemType.WEAPON); - while (weaponIterator.hasNext()) { - System.out.println(weaponIterator.next()); - } - - System.out.println("----------"); - - ItemIterator it = chest.Iterator(ItemType.ANY); - while (it.hasNext()) { - System.out.println(it.next()); - } - } -} +package com.iluwatar.iterator; + +/** + * + * Iterator (ItemIterator) adds abstraction layer on top of a + * collection (TreasureChest). This way the collection can change + * its internal implementation without affecting its clients. + * + */ +public class App +{ + public static void main( String[] args ) + { + TreasureChest chest = new TreasureChest(); + + ItemIterator ringIterator = chest.Iterator(ItemType.RING); + while (ringIterator.hasNext()) { + System.out.println(ringIterator.next()); + } + + System.out.println("----------"); + + ItemIterator potionIterator = chest.Iterator(ItemType.POTION); + while (potionIterator.hasNext()) { + System.out.println(potionIterator.next()); + } + + System.out.println("----------"); + + ItemIterator weaponIterator = chest.Iterator(ItemType.WEAPON); + while (weaponIterator.hasNext()) { + System.out.println(weaponIterator.next()); + } + + System.out.println("----------"); + + ItemIterator it = chest.Iterator(ItemType.ANY); + while (it.hasNext()) { + System.out.println(it.next()); + } + } +} diff --git a/iterator/src/main/java/com/iluwatar/Item.java b/iterator/src/main/java/com/iluwatar/iterator/Item.java similarity index 87% rename from iterator/src/main/java/com/iluwatar/Item.java rename to iterator/src/main/java/com/iluwatar/iterator/Item.java index f7a3b7661e74..41109bb3ed22 100644 --- a/iterator/src/main/java/com/iluwatar/Item.java +++ b/iterator/src/main/java/com/iluwatar/iterator/Item.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class Item { - - private ItemType type; - private String name; - - public Item(ItemType type, String name) { - this.setType(type); - this.name = name; - } - - @Override - public String toString() { - return name; - } - - public ItemType getType() { - return type; - } - - public void setType(ItemType type) { - this.type = type; - } -} +package com.iluwatar.iterator; + +public class Item { + + private ItemType type; + private String name; + + public Item(ItemType type, String name) { + this.setType(type); + this.name = name; + } + + @Override + public String toString() { + return name; + } + + public ItemType getType() { + return type; + } + + public void setType(ItemType type) { + this.type = type; + } +} diff --git a/iterator/src/main/java/com/iluwatar/ItemIterator.java b/iterator/src/main/java/com/iluwatar/iterator/ItemIterator.java similarity index 71% rename from iterator/src/main/java/com/iluwatar/ItemIterator.java rename to iterator/src/main/java/com/iluwatar/iterator/ItemIterator.java index 1a6da1cd46a3..b56c0ed24de8 100644 --- a/iterator/src/main/java/com/iluwatar/ItemIterator.java +++ b/iterator/src/main/java/com/iluwatar/iterator/ItemIterator.java @@ -1,13 +1,15 @@ -package com.iluwatar; - -/** - * - * Iterator interface. - * - */ -public interface ItemIterator { - - boolean hasNext(); - - Item next(); -} +package com.iluwatar.iterator; + + + +/** + * + * Iterator interface. + * + */ +public interface ItemIterator { + + boolean hasNext(); + + Item next(); +} diff --git a/iterator/src/main/java/com/iluwatar/ItemType.java b/iterator/src/main/java/com/iluwatar/iterator/ItemType.java similarity index 64% rename from iterator/src/main/java/com/iluwatar/ItemType.java rename to iterator/src/main/java/com/iluwatar/iterator/ItemType.java index 905179417e35..508cb7f2b810 100644 --- a/iterator/src/main/java/com/iluwatar/ItemType.java +++ b/iterator/src/main/java/com/iluwatar/iterator/ItemType.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public enum ItemType { - - ANY, - WEAPON, - RING, - POTION - -} +package com.iluwatar.iterator; + +public enum ItemType { + + ANY, + WEAPON, + RING, + POTION + +} diff --git a/iterator/src/main/java/com/iluwatar/TreasureChest.java b/iterator/src/main/java/com/iluwatar/iterator/TreasureChest.java similarity index 86% rename from iterator/src/main/java/com/iluwatar/TreasureChest.java rename to iterator/src/main/java/com/iluwatar/iterator/TreasureChest.java index 7cc80e7ffdd5..edddb6bc40ab 100644 --- a/iterator/src/main/java/com/iluwatar/TreasureChest.java +++ b/iterator/src/main/java/com/iluwatar/iterator/TreasureChest.java @@ -1,39 +1,41 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * Collection class. - * - */ -public class TreasureChest { - - private List items; - - public TreasureChest() { - items = new ArrayList<>(); - items.add(new Item(ItemType.POTION, "Potion of courage")); - items.add(new Item(ItemType.RING, "Ring of shadows")); - items.add(new Item(ItemType.POTION, "Potion of wisdom")); - items.add(new Item(ItemType.POTION, "Potion of blood")); - items.add(new Item(ItemType.WEAPON, "Sword of silver +1")); - items.add(new Item(ItemType.POTION, "Potion of rust")); - items.add(new Item(ItemType.POTION, "Potion of healing")); - items.add(new Item(ItemType.RING, "Ring of armor")); - items.add(new Item(ItemType.WEAPON, "Steel halberd")); - items.add(new Item(ItemType.WEAPON, "Dagger of poison")); - } - - ItemIterator Iterator(ItemType type) { - return new TreasureChestItemIterator(this, type); - } - - public List getItems() { - ArrayList list = new ArrayList<>(); - list.addAll(items); - return list; - } - -} +package com.iluwatar.iterator; + +import java.util.ArrayList; +import java.util.List; + + + +/** + * + * Collection class. + * + */ +public class TreasureChest { + + private List items; + + public TreasureChest() { + items = new ArrayList(); + items.add(new Item(ItemType.POTION, "Potion of courage")); + items.add(new Item(ItemType.RING, "Ring of shadows")); + items.add(new Item(ItemType.POTION, "Potion of wisdom")); + items.add(new Item(ItemType.POTION, "Potion of blood")); + items.add(new Item(ItemType.WEAPON, "Sword of silver +1")); + items.add(new Item(ItemType.POTION, "Potion of rust")); + items.add(new Item(ItemType.POTION, "Potion of healing")); + items.add(new Item(ItemType.RING, "Ring of armor")); + items.add(new Item(ItemType.WEAPON, "Steel halberd")); + items.add(new Item(ItemType.WEAPON, "Dagger of poison")); + } + + ItemIterator Iterator(ItemType type) { + return new TreasureChestItemIterator(this, type); + } + + public List getItems() { + ArrayList list = new ArrayList(); + list.addAll(items); + return list; + } + +} diff --git a/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java b/iterator/src/main/java/com/iluwatar/iterator/TreasureChestItemIterator.java similarity index 89% rename from iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java rename to iterator/src/main/java/com/iluwatar/iterator/TreasureChestItemIterator.java index 01e089b08798..e02073bc35fe 100644 --- a/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java +++ b/iterator/src/main/java/com/iluwatar/iterator/TreasureChestItemIterator.java @@ -1,48 +1,50 @@ -package com.iluwatar; - -import java.util.List; - -public class TreasureChestItemIterator implements ItemIterator { - - private TreasureChest chest; - private int idx; - private ItemType type; - - public TreasureChestItemIterator(TreasureChest chest, ItemType type) { - this.chest = chest; - this.type = type; - this.idx = -1; - } - - @Override - public boolean hasNext() { - return findNextIdx() != -1; - } - - @Override - public Item next() { - idx = findNextIdx(); - if (idx != -1) { - return chest.getItems().get(idx); - } - return null; - } - - private int findNextIdx() { - - List items = chest.getItems(); - boolean found = false; - int tempIdx = idx; - while (!found) { - tempIdx++; - if (tempIdx >= items.size()) { - tempIdx = -1; - break; - } - if (type.equals(ItemType.ANY) || items.get(tempIdx).getType().equals(type)) { - break; - } - } - return tempIdx; - } -} +package com.iluwatar.iterator; + +import java.util.List; + + + +public class TreasureChestItemIterator implements ItemIterator { + + private TreasureChest chest; + private int idx; + private ItemType type; + + public TreasureChestItemIterator(TreasureChest chest, ItemType type) { + this.chest = chest; + this.type = type; + idx = -1; + } + + @Override + public boolean hasNext() { + return findNextIdx() != -1; + } + + @Override + public Item next() { + idx = findNextIdx(); + if (idx != -1) { + return chest.getItems().get(idx); + } + return null; + } + + private int findNextIdx() { + + List items = chest.getItems(); + boolean found = false; + int tempIdx = idx; + while (!found) { + tempIdx++; + if (tempIdx >= items.size()) { + tempIdx = -1; + break; + } + if (type.equals(ItemType.ANY) || items.get(tempIdx).getType().equals(type)) { + break; + } + } + return tempIdx; + } +} diff --git a/lambda/pom.xml b/lambda/pom.xml new file mode 100644 index 000000000000..f56729207b3b --- /dev/null +++ b/lambda/pom.xml @@ -0,0 +1,27 @@ + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.0-SNAPSHOT + + lambda + lambda + + + + cglib + cglib + 3.2.5 + + + + org.mybatis + mybatis + 3.2.1 + + + + + \ No newline at end of file diff --git a/lambda/src/main/java/com/iluwatar/lambda/LRUCache.java b/lambda/src/main/java/com/iluwatar/lambda/LRUCache.java new file mode 100644 index 000000000000..109345fcc2a8 --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/lambda/LRUCache.java @@ -0,0 +1,48 @@ +package com.iluwatar.lambda; +/** + * LRU缂撳瓨 + * @author duanmenghua + * + */ + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Random; + +public class LRUCache { + + private static Integer cacheSize = 5; + + static LinkedHashMap cache = new LinkedHashMap(cacheSize, 0.75f, true) { + private static final long serialVersionUID = 4389287907499075284L; + protected boolean removeEldestEntry(Map.Entry eldest) { + + if (size()>cacheSize) { + System.out.println(cache.keySet()); + System.out.println("to remove key: "+ eldest.getKey()+ " value: "+eldest.getValue()); + return true; + } + + return false; + } + + }; + + public static void main(String[] args) throws InterruptedException { + while(true) { + if (cache.size()>=cacheSize) { + Integer key = cache.keySet().stream().findFirst().get(); + System.out.println("get value: key: "+ key+" value: "+cache.get(key)); + } + + int nextKey = new Random(System.nanoTime()).nextInt(10); + String value = "test"; + cache.put(nextKey, value); + System.out.println("put value: key: "+ nextKey+" value: "+value); + System.out.println(cache.keySet()); + Thread.sleep(2000); + + } + } + +} diff --git a/lambda/src/main/java/com/iluwatar/lambda/Lambda.java b/lambda/src/main/java/com/iluwatar/lambda/Lambda.java new file mode 100644 index 000000000000..678bb4f81061 --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/lambda/Lambda.java @@ -0,0 +1,65 @@ +package com.iluwatar.lambda; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; +import java.util.Random; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * Created by duanmenghua on 2017-07-24. + */ +public class Lambda { + public static void main(String[] args) { + +// List result = new LinkedList<>(); +// result.add(1); +// result.add(3); +// result.add(4); +// result.add(7); +// result.add(5); +// result.add(7); +// List collect = result.stream().filter(x -> x > 3).distinct().collect(Collectors.toList()); +// Collections.sort(collect, (x,y)-> {return y-x;}); +// System.out.println(collect); +// collect.forEach(System.out::println); +// System.out.println("predicate"); +// evaluate(collect, n->n<=5); +// Integer reduce = collect.stream().map(x->x*x).reduce((x,y)->x+y).get(); +// System.out.println(collect); + compare(); + } + + public static void evaluate(List list, Predicate predicate) { + list.forEach((x)->{if(predicate.test(x)) System.out.print(x+" ");}); + } + public static void compare() { + List values = new LinkedList<>(); + for (int i = 0; i < 50000000; i++) { + Random random = new Random(System.currentTimeMillis()); + values.add(random.nextInt()); + } + int max = Integer.MIN_VALUE; + long start = System.currentTimeMillis(); + System.out.println("for start "); + for (Integer integer : values) { + if (integer > max) { + max = integer; + } + } + long end = System.currentTimeMillis(); + + System.out.println("max is: "+max); + System.out.println("for start "+(end-start)*1.0/1000); + max = Integer.MIN_VALUE; + max = values.stream().reduce(Integer.MIN_VALUE,Math::max); + long last = System.currentTimeMillis(); + System.out.println("max is: "+max); + System.out.println("for start "+(last-end)*1.0/1000); + + + } + +} diff --git a/lambda/src/main/java/com/iluwatar/proxy/HelloService.java b/lambda/src/main/java/com/iluwatar/proxy/HelloService.java new file mode 100644 index 000000000000..b7f28e8f8d8c --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/proxy/HelloService.java @@ -0,0 +1,6 @@ +package com.iluwatar.proxy; + +public interface HelloService { + public void Hello(String name); + +} diff --git a/lambda/src/main/java/com/iluwatar/proxy/HelloServiceCGLIBProxy.java b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceCGLIBProxy.java new file mode 100644 index 000000000000..2920225bdfc7 --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceCGLIBProxy.java @@ -0,0 +1,37 @@ +package com.iluwatar.proxy; + +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + +public class HelloServiceCGLIBProxy implements MethodInterceptor{ + + private Object target; + + public Object getInstance(Object target) { + this.target = target; + Enhancer enhancer = new Enhancer(); + enhancer.setSuperclass(target.getClass()); + enhancer.setCallback(this); + return enhancer.create(); + } + + @Override + public Object intercept(Object object, Method method, Object[] args, MethodProxy proxy) throws Throwable { + System.out.println("CGLIB浠g悊鏂规硶灏嗗紑濮嬫墽琛"); + Object result = proxy.invokeSuper(object, args); + System.out.println("CGLIB浠g悊鏂规硶灏嗘墽琛岀粨鏉"); + return result; + } + + public static void main(String[] args) { + HelloServiceCGLIBProxy handler = new HelloServiceCGLIBProxy(); + HelloService proxy = (HelloService) handler.getInstance(new HelloServiceImpl()); + proxy.Hello("duanmenghua"); + } + + + +} diff --git a/lambda/src/main/java/com/iluwatar/proxy/HelloServiceImpl.java b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceImpl.java new file mode 100644 index 000000000000..bfce1d5106c1 --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceImpl.java @@ -0,0 +1,10 @@ +package com.iluwatar.proxy; + +public class HelloServiceImpl implements HelloService{ + + @Override + public void Hello(String name) { + System.out.println("Hello "+name); + } + +} diff --git a/lambda/src/main/java/com/iluwatar/proxy/HelloServiceJDKProxy.java b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceJDKProxy.java new file mode 100644 index 000000000000..3b377d0d797b --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/proxy/HelloServiceJDKProxy.java @@ -0,0 +1,32 @@ +package com.iluwatar.proxy; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +public class HelloServiceJDKProxy implements InvocationHandler{ + + private Object target; + + public Object bind(Object target) { + this.target = target; + return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); + + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + System.out.println("浠g悊鏂规硶灏嗗紑濮嬫墽琛"); + Object result = method.invoke(target, args); + System.out.println("浠g悊鏂规硶灏嗘墽琛岀粨鏉"); + + return result; + } + + public static void main(String[] args) { + HelloServiceJDKProxy handler = new HelloServiceJDKProxy(); + HelloService proxy = (HelloService) handler.bind(new HelloServiceImpl()); + proxy.Hello("duanmenghua"); + } + +} diff --git a/lambda/src/main/java/com/iluwatar/reflect/ReflectService.java b/lambda/src/main/java/com/iluwatar/reflect/ReflectService.java new file mode 100644 index 000000000000..2cd9ec810369 --- /dev/null +++ b/lambda/src/main/java/com/iluwatar/reflect/ReflectService.java @@ -0,0 +1,23 @@ +package com.iluwatar.reflect; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * 鍙嶅皠 + * @author duanmenghua + * + */ +public class ReflectService { + public void Hello(String name) { + System.out.println("hello word "+ name); + } + + public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException { + + Object service = Class.forName(ReflectService.class.getName()).newInstance(); + Method method = service.getClass().getMethod("Hello", String.class); + method.invoke(service, "duanmenghua"); + } + +} diff --git a/mediator/mediator.iml b/mediator/mediator.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/mediator/mediator.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mediator/src/main/java/com/iluwatar/App.java b/mediator/src/main/java/com/iluwatar/App.java deleted file mode 100644 index 4a7053e843e4..000000000000 --- a/mediator/src/main/java/com/iluwatar/App.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.iluwatar; - -/** - * - * Mediator encapsulates how set of objects (PartyMember) interact. - * Instead of referring to each other directly they - * use the mediator (Party) interface. - * - */ -public class App -{ - public static void main( String[] args ) - { - Party party = new PartyImpl(); - Hobbit hobbit = new Hobbit(); - Wizard wizard = new Wizard(); - Rogue rogue = new Rogue(); - Hunter hunter = new Hunter(); - - party.addMember(hobbit); - party.addMember(wizard); - party.addMember(rogue); - party.addMember(hunter); - - hobbit.act(Action.ENEMY); - wizard.act(Action.TALE); - rogue.act(Action.GOLD); - hunter.act(Action.HUNT); - } -} diff --git a/mediator/src/main/java/com/iluwatar/Action.java b/mediator/src/main/java/com/iluwatar/mediator/Action.java similarity index 87% rename from mediator/src/main/java/com/iluwatar/Action.java rename to mediator/src/main/java/com/iluwatar/mediator/Action.java index 6dd42dc941d0..5e3dd59712e5 100644 --- a/mediator/src/main/java/com/iluwatar/Action.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Action.java @@ -1,28 +1,28 @@ -package com.iluwatar; - -public enum Action { - - HUNT, TALE, GOLD, ENEMY; - - public String toString() { - - String s = ""; - switch (this) { - case ENEMY: - s = "spotted enemies"; - break; - case GOLD: - s = "found gold"; - break; - case HUNT: - s = "hunted a rabbit"; - break; - case TALE: - s = "tells a tale"; - break; - default: - break; - } - return s; - }; -} +package com.iluwatar.mediator; + +public enum Action { + + HUNT, TALE, GOLD, ENEMY; + + public String toString() { + + String s = ""; + switch (this) { + case ENEMY: + s = "spotted enemies"; + break; + case GOLD: + s = "found gold"; + break; + case HUNT: + s = "hunted a rabbit"; + break; + case TALE: + s = "tells a tale"; + break; + default: + break; + } + return s; + }; +} diff --git a/mediator/src/main/java/com/iluwatar/mediator/App.java b/mediator/src/main/java/com/iluwatar/mediator/App.java new file mode 100644 index 000000000000..974e099110b5 --- /dev/null +++ b/mediator/src/main/java/com/iluwatar/mediator/App.java @@ -0,0 +1,32 @@ +package com.iluwatar.mediator; + + + +/** + * + * Mediator encapsulates how set of objects (PartyMember) interact. + * Instead of referring to each other directly they + * use the mediator (Party) interface. + * + */ +public class App +{ + public static void main( String[] args ) + { + Party party = new PartyImpl(); + Hobbit hobbit = new Hobbit(); + Wizard wizard = new Wizard(); + Rogue rogue = new Rogue(); + Hunter hunter = new Hunter(); + + party.addMember(hobbit); + party.addMember(wizard); + party.addMember(rogue); + party.addMember(hunter); + + hobbit.act(Action.ENEMY); + wizard.act(Action.TALE); + rogue.act(Action.GOLD); + hunter.act(Action.HUNT); + } +} diff --git a/mediator/src/main/java/com/iluwatar/Hobbit.java b/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java similarity index 77% rename from mediator/src/main/java/com/iluwatar/Hobbit.java rename to mediator/src/main/java/com/iluwatar/mediator/Hobbit.java index ae8542fad2e9..9e17d24bd868 100644 --- a/mediator/src/main/java/com/iluwatar/Hobbit.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class Hobbit extends PartyMemberBase { - - @Override - public String toString() { - return "Hobbit"; - } - -} +package com.iluwatar.mediator; + +public class Hobbit extends PartyMemberBase { + + @Override + public String toString() { + return "Hobbit"; + } + +} diff --git a/mediator/src/main/java/com/iluwatar/Hunter.java b/mediator/src/main/java/com/iluwatar/mediator/Hunter.java similarity index 77% rename from mediator/src/main/java/com/iluwatar/Hunter.java rename to mediator/src/main/java/com/iluwatar/mediator/Hunter.java index e27cdf8b9d6e..de15fa1639e1 100644 --- a/mediator/src/main/java/com/iluwatar/Hunter.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Hunter.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class Hunter extends PartyMemberBase { - - @Override - public String toString() { - return "Hunter"; - } - -} +package com.iluwatar.mediator; + +public class Hunter extends PartyMemberBase { + + @Override + public String toString() { + return "Hunter"; + } + +} diff --git a/mediator/src/main/java/com/iluwatar/Party.java b/mediator/src/main/java/com/iluwatar/mediator/Party.java similarity index 80% rename from mediator/src/main/java/com/iluwatar/Party.java rename to mediator/src/main/java/com/iluwatar/mediator/Party.java index cf72b31039ca..3f606b0a77d0 100644 --- a/mediator/src/main/java/com/iluwatar/Party.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Party.java @@ -1,14 +1,14 @@ -package com.iluwatar; - -/** - * - * Mediator interface. - * - */ -public interface Party { - - void addMember(PartyMember member); - - void act(PartyMember actor, Action action); - -} +package com.iluwatar.mediator; + +/** + * + * Mediator interface. + * + */ +public interface Party { + + void addMember(PartyMember member); + + void act(PartyMember actor, Action action); + +} diff --git a/mediator/src/main/java/com/iluwatar/PartyImpl.java b/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java similarity index 85% rename from mediator/src/main/java/com/iluwatar/PartyImpl.java rename to mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java index d95325d3f238..3be9bfe46749 100644 --- a/mediator/src/main/java/com/iluwatar/PartyImpl.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java @@ -1,37 +1,37 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -public class PartyImpl implements Party { - - private List members; - - public PartyImpl() { - members = new ArrayList<>(); - } - - @Override - public void act(PartyMember actor, Action action) { - for (PartyMember member: members) { - if (member != actor) { - member.partyAction(action); - } - } - } - - @Override - public void addMember(PartyMember member) { - members.add(member); - member.joinedParty(this); - } - - // somebody hunts for food, call for dinner - - // somebody spots enemy, alert everybody - - // somebody finds gold, deal the gold with everybody - - // somebody tells a tale, call everybody to listen - -} +package com.iluwatar.mediator; + +import java.util.ArrayList; +import java.util.List; + +public class PartyImpl implements Party { + + private List members; + + public PartyImpl() { + members = new ArrayList(); + } + + @Override + public void act(PartyMember actor, Action action) { + for (PartyMember member: members) { + if (member != actor) { + member.partyAction(action); + } + } + } + + @Override + public void addMember(PartyMember member) { + members.add(member); + member.joinedParty(this); + } + + // somebody hunts for food, call for dinner + + // somebody spots enemy, alert everybody + + // somebody finds gold, deal the gold with everybody + + // somebody tells a tale, call everybody to listen + +} diff --git a/mediator/src/main/java/com/iluwatar/PartyMember.java b/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java similarity index 84% rename from mediator/src/main/java/com/iluwatar/PartyMember.java rename to mediator/src/main/java/com/iluwatar/mediator/PartyMember.java index 80e04ba2f1d1..e2be70eff0c9 100644 --- a/mediator/src/main/java/com/iluwatar/PartyMember.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java @@ -1,15 +1,15 @@ -package com.iluwatar; - -/** - * - * Interface for party members interacting with Party. - * - */ -public interface PartyMember { - - void joinedParty(Party party); - - void partyAction(Action action); - - void act(Action action); -} +package com.iluwatar.mediator; + +/** + * + * Interface for party members interacting with Party. + * + */ +public interface PartyMember { + + void joinedParty(Party party); + + void partyAction(Action action); + + void act(Action action); +} diff --git a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java similarity index 92% rename from mediator/src/main/java/com/iluwatar/PartyMemberBase.java rename to mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java index 77b7a7cb448a..04763842cbb1 100644 --- a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java @@ -1,46 +1,46 @@ -package com.iluwatar; - -public abstract class PartyMemberBase implements PartyMember { - - protected Party party; - - @Override - public void joinedParty(Party party) { - System.out.println(this + " joins the party"); - this.party = party; - } - - @Override - public void partyAction(Action action) { - String s = this + " "; - switch (action) { - case ENEMY: - s = s + "runs for cover"; - break; - case GOLD: - s = s + "takes his share of the gold"; - break; - case HUNT: - s = s + "arrives for dinner"; - break; - case TALE: - s = s + "comes to listen"; - break; - default: - break; - } - System.out.println(s); - } - - @Override - public void act(Action action) { - if (party != null) { - System.out.println(this + " " + action.toString()); - party.act(this, action); - } - } - - @Override - public abstract String toString(); - -} +package com.iluwatar.mediator; + +public abstract class PartyMemberBase implements PartyMember { + + protected Party party; + + @Override + public void joinedParty(Party party) { + System.out.println(this + " joins the party"); + this.party = party; + } + + @Override + public void partyAction(Action action) { + String s = this + " "; + switch (action) { + case ENEMY: + s = s + "runs for cover"; + break; + case GOLD: + s = s + "takes his share of the gold"; + break; + case HUNT: + s = s + "arrives for dinner"; + break; + case TALE: + s = s + "comes to listen"; + break; + default: + break; + } + System.out.println(s); + } + + @Override + public void act(Action action) { + if (party != null) { + System.out.println(this + " " + action.toString()); + party.act(this, action); + } + } + + @Override + public abstract String toString(); + +} diff --git a/mediator/src/main/java/com/iluwatar/Rogue.java b/mediator/src/main/java/com/iluwatar/mediator/Rogue.java similarity index 77% rename from mediator/src/main/java/com/iluwatar/Rogue.java rename to mediator/src/main/java/com/iluwatar/mediator/Rogue.java index 5990e0523f5e..aab9144292fe 100644 --- a/mediator/src/main/java/com/iluwatar/Rogue.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Rogue.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class Rogue extends PartyMemberBase { - - @Override - public String toString() { - return "Rogue"; - } - -} +package com.iluwatar.mediator; + +public class Rogue extends PartyMemberBase { + + @Override + public String toString() { + return "Rogue"; + } + +} diff --git a/mediator/src/main/java/com/iluwatar/Wizard.java b/mediator/src/main/java/com/iluwatar/mediator/Wizard.java similarity index 77% rename from mediator/src/main/java/com/iluwatar/Wizard.java rename to mediator/src/main/java/com/iluwatar/mediator/Wizard.java index 689879865932..6bccd36ceebc 100644 --- a/mediator/src/main/java/com/iluwatar/Wizard.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Wizard.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class Wizard extends PartyMemberBase { - - @Override - public String toString() { - return "Wizard"; - } - -} +package com.iluwatar.mediator; + +public class Wizard extends PartyMemberBase { + + @Override + public String toString() { + return "Wizard"; + } + +} diff --git a/memento/memento.iml b/memento/memento.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/memento/memento.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/memento/src/main/java/com/iluwatar/App.java b/memento/src/main/java/com/iluwatar/App.java deleted file mode 100644 index c98bc320dd7d..000000000000 --- a/memento/src/main/java/com/iluwatar/App.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.iluwatar; - -import java.util.Stack; - -/** - * - * Memento pattern is for storing and restoring object - * state. The object (Star) gives out a "memento" - * (StarMemento) that contains the state of the object. - * Later on the memento can be set back to the object - * restoring the state. - * - */ -public class App -{ - public static void main( String[] args ) - { - Stack states = new Stack<>(); - - Star star = new Star(StarType.SUN, 10000000, 500000); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - while (states.size() > 0) { - star.setMemento(states.pop()); - System.out.println(star); - } - } -} diff --git a/memento/src/main/java/com/iluwatar/memento/App.java b/memento/src/main/java/com/iluwatar/memento/App.java new file mode 100644 index 000000000000..710f38d81daa --- /dev/null +++ b/memento/src/main/java/com/iluwatar/memento/App.java @@ -0,0 +1,39 @@ +package com.iluwatar.memento; + +import java.util.Stack; + +/** + * + * Memento pattern is for storing and restoring object + * state. The object (Star) gives out a "memento" + * (StarMemento) that contains the state of the object. + * Later on the memento can be set back to the object + * restoring the state. + * + */ +public class App +{ + public static void main( String[] args ) + { + Stack states = new Stack(); + + Star star = new Star(StarType.SUN, 10000000, 500000); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + while (states.size() > 0) { + star.setMemento(states.pop()); + System.out.println(star); + } + } +} diff --git a/memento/src/main/java/com/iluwatar/Star.java b/memento/src/main/java/com/iluwatar/memento/Star.java similarity index 93% rename from memento/src/main/java/com/iluwatar/Star.java rename to memento/src/main/java/com/iluwatar/memento/Star.java index 03a5ad305ec7..03ec2fd52926 100644 --- a/memento/src/main/java/com/iluwatar/Star.java +++ b/memento/src/main/java/com/iluwatar/memento/Star.java @@ -1,68 +1,68 @@ -package com.iluwatar; - -/** - * - * Star uses "mementos" to store and restore state. - * - */ -public class Star { - - private StarType type; - private int ageYears; - private int massTons; - - public Star(StarType startType, int startAge, int startMass) { - this.type = startType; - this.ageYears = startAge; - this.massTons = startMass; - } - - public void timePasses() { - ageYears *= 2; - massTons *= 8; - switch (type) { - case RED_GIANT: - type = StarType.WHITE_DWARF; - break; - case SUN: - type = StarType.RED_GIANT; - break; - case SUPERNOVA: - type = StarType.DEAD; - break; - case WHITE_DWARF: - type = StarType.SUPERNOVA; - break; - case DEAD: - ageYears *= 2; - massTons = 0; - break; - default: - break; - } - } - - StarMemento getMemento() { - - StarMementoInternal state = new StarMementoInternal(); - state.setAgeYears(ageYears); - state.setMassTons(massTons); - state.setType(type); - return state; - - } - - void setMemento(StarMemento memento) { - - StarMementoInternal state = (StarMementoInternal) memento; - this.type = state.getType(); - this.ageYears = state.getAgeYears(); - this.massTons = state.getMassTons(); - - } - - @Override - public String toString() { - return String.format("%s age: %d years mass: %d tons", type.toString(), ageYears, massTons); - } -} +package com.iluwatar.memento; + +/** + * + * Star uses "mementos" to store and restore state. + * + */ +public class Star { + + private StarType type; + private int ageYears; + private int massTons; + + public Star(StarType startType, int startAge, int startMass) { + this.type = startType; + this.ageYears = startAge; + this.massTons = startMass; + } + + public void timePasses() { + ageYears *= 2; + massTons *= 8; + switch (type) { + case RED_GIANT: + type = StarType.WHITE_DWARF; + break; + case SUN: + type = StarType.RED_GIANT; + break; + case SUPERNOVA: + type = StarType.DEAD; + break; + case WHITE_DWARF: + type = StarType.SUPERNOVA; + break; + case DEAD: + ageYears *= 2; + massTons = 0; + break; + default: + break; + } + } + + StarMemento getMemento() { + + StarMementoInternal state = new StarMementoInternal(); + state.setAgeYears(ageYears); + state.setMassTons(massTons); + state.setType(type); + return state; + + } + + void setMemento(StarMemento memento) { + + StarMementoInternal state = (StarMementoInternal) memento; + this.type = state.getType(); + this.ageYears = state.getAgeYears(); + this.massTons = state.getMassTons(); + + } + + @Override + public String toString() { + return String.format("%s age: %d years mass: %d tons", type.toString(), ageYears, massTons); + } +} diff --git a/memento/src/main/java/com/iluwatar/StarMemento.java b/memento/src/main/java/com/iluwatar/memento/StarMemento.java similarity index 72% rename from memento/src/main/java/com/iluwatar/StarMemento.java rename to memento/src/main/java/com/iluwatar/memento/StarMemento.java index 9d2806ac2550..b5ac94b17768 100644 --- a/memento/src/main/java/com/iluwatar/StarMemento.java +++ b/memento/src/main/java/com/iluwatar/memento/StarMemento.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -/** - * - * External interface to memento. - * - */ -public interface StarMemento { - -} +package com.iluwatar.memento; + +/** + * + * External interface to memento. + * + */ +public interface StarMemento { + +} diff --git a/memento/src/main/java/com/iluwatar/StarMementoInternal.java b/memento/src/main/java/com/iluwatar/memento/StarMementoInternal.java similarity index 90% rename from memento/src/main/java/com/iluwatar/StarMementoInternal.java rename to memento/src/main/java/com/iluwatar/memento/StarMementoInternal.java index 45c8f7c11160..84c3b2e602a6 100644 --- a/memento/src/main/java/com/iluwatar/StarMementoInternal.java +++ b/memento/src/main/java/com/iluwatar/memento/StarMementoInternal.java @@ -1,32 +1,32 @@ -package com.iluwatar; - -/** - * - * Internal interface to memento. - * - */ -public class StarMementoInternal implements StarMemento { - - private StarType type; - private int ageYears; - private int massTons; - - public StarType getType() { - return type; - } - public void setType(StarType type) { - this.type = type; - } - public int getAgeYears() { - return ageYears; - } - public void setAgeYears(int ageYears) { - this.ageYears = ageYears; - } - public int getMassTons() { - return massTons; - } - public void setMassTons(int massTons) { - this.massTons = massTons; - } -} +package com.iluwatar.memento; + +/** + * + * Internal interface to memento. + * + */ +public class StarMementoInternal implements StarMemento { + + private StarType type; + private int ageYears; + private int massTons; + + public StarType getType() { + return type; + } + public void setType(StarType type) { + this.type = type; + } + public int getAgeYears() { + return ageYears; + } + public void setAgeYears(int ageYears) { + this.ageYears = ageYears; + } + public int getMassTons() { + return massTons; + } + public void setMassTons(int massTons) { + this.massTons = massTons; + } +} diff --git a/memento/src/main/java/com/iluwatar/StarType.java b/memento/src/main/java/com/iluwatar/memento/StarType.java similarity index 87% rename from memento/src/main/java/com/iluwatar/StarType.java rename to memento/src/main/java/com/iluwatar/memento/StarType.java index 54b3521843ee..7b1f7a52d419 100644 --- a/memento/src/main/java/com/iluwatar/StarType.java +++ b/memento/src/main/java/com/iluwatar/memento/StarType.java @@ -1,36 +1,36 @@ -package com.iluwatar; - -public enum StarType { - - SUN, - RED_GIANT, - WHITE_DWARF, - SUPERNOVA, - DEAD; - - @Override - public String toString() { - String s = ""; - switch (this) { - case RED_GIANT: - s = "red giant"; - break; - case SUN: - s = "sun"; - break; - case SUPERNOVA: - s = "supernova"; - break; - case WHITE_DWARF: - s = "white dwarf"; - break; - case DEAD: - s = "dead star"; - break; - default: - break; - } - return s; - } - -} +package com.iluwatar.memento; + +public enum StarType { + + SUN, + RED_GIANT, + WHITE_DWARF, + SUPERNOVA, + DEAD; + + @Override + public String toString() { + String s = ""; + switch (this) { + case RED_GIANT: + s = "red giant"; + break; + case SUN: + s = "sun"; + break; + case SUPERNOVA: + s = "supernova"; + break; + case WHITE_DWARF: + s = "white dwarf"; + break; + case DEAD: + s = "dead star"; + break; + default: + break; + } + return s; + } + +} diff --git a/observer/.gitignore b/observer/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/observer/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/observer/com/iluwatar/App.main.pdf b/observer/com/iluwatar/App.main.pdf new file mode 100644 index 000000000000..57b29a561e00 Binary files /dev/null and b/observer/com/iluwatar/App.main.pdf differ diff --git a/observer/com/iluwatar/App.main.sdx b/observer/com/iluwatar/App.main.sdx new file mode 100644 index 000000000000..89544b0d29bd --- /dev/null +++ b/observer/com/iluwatar/App.main.sdx @@ -0,0 +1,43 @@ +user:Actor +App:App +Weather:Weather +WeatherType:WeatherType +Orcs:Orcs +Hobbits:Hobbits + +user:App.main +App[0]:Weather. +Weather[0]:WeatherType. +WeatherType[0]:WeatherType. +WeatherType[1]:WeatherType. +App[0]:Orcs. +App[0]:Weather.addObserver +App[0]:Hobbits. +App[0]:Weather.addObserver +App[0]:Weather.timePasses +Weather[0]:Weather.$SWITCH_TABLE$com$iluwatar$WeatherType +Weather[0]:WeatherType.values +Weather[1]:WeatherType.toString +Weather[0]:Weather.notifyObservers +Weather[0]:Orcs.update +Orcs[0]:Orcs.$SWITCH_TABLE$com$iluwatar$WeatherType +Orcs[0]:WeatherType.values +Weather[0]:Hobbits.update +Hobbits[0]:Hobbits.$SWITCH_TABLE$com$iluwatar$WeatherType +Hobbits[0]:WeatherType.values +App[0]:Weather.timePasses +Weather[0]:Weather.$SWITCH_TABLE$com$iluwatar$WeatherType +Weather[1]:WeatherType.toString +Weather[0]:Weather.notifyObservers +Weather[0]:Orcs.update +Orcs[0]:Orcs.$SWITCH_TABLE$com$iluwatar$WeatherType +Weather[0]:Hobbits.update +Hobbits[0]:Hobbits.$SWITCH_TABLE$com$iluwatar$WeatherType +App[0]:Weather.timePasses +Weather[0]:Weather.$SWITCH_TABLE$com$iluwatar$WeatherType +Weather[1]:WeatherType.toString +Weather[0]:Weather.notifyObservers +Weather[0]:Orcs.update +Orcs[0]:Orcs.$SWITCH_TABLE$com$iluwatar$WeatherType +Weather[0]:Hobbits.update +Hobbits[0]:Hobbits.$SWITCH_TABLE$com$iluwatar$WeatherType diff --git a/observer/observer.iml b/observer/observer.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/observer/observer.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/observer/out/.gitignore b/observer/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/observer/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/observer/src/dsd.java b/observer/src/dsd.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/observer/src/main/java/RER.java b/observer/src/main/java/RER.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/observer/src/main/java/RWW.java b/observer/src/main/java/RWW.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/observer/src/main/java/com/iluwatar/App.java b/observer/src/main/java/com/iluwatar/observer/App.java similarity index 61% rename from observer/src/main/java/com/iluwatar/App.java rename to observer/src/main/java/com/iluwatar/observer/App.java index a128fd38f1ed..ef6ee94bd7db 100644 --- a/observer/src/main/java/com/iluwatar/App.java +++ b/observer/src/main/java/com/iluwatar/observer/App.java @@ -1,25 +1,30 @@ -package com.iluwatar; - -/** - * - * Observer pattern defines one-to-many relationship - * between objects. The target object sends change - * notifications to its registered observers. - * - */ -public class App -{ - public static void main( String[] args ) - { - - Weather weather = new Weather(); - weather.addObserver(new Orcs()); - weather.addObserver(new Hobbits()); - - weather.timePasses(); - weather.timePasses(); - weather.timePasses(); - weather.timePasses(); - - } -} +package com.iluwatar.observer; + +/** + * + * Observer pattern defines one-to-many relationship + * between objects. The target object sends change + * notifications to its registered observers. + * + */ +public class App +{ + public static void main( String[] args ) + { + + Weather weather = new Weather(); + weather.addObserver(new Orcs()); + weather.addObserver(new Hobbits()); + + try { + weather.timePasses(); + weather.timePasses(); + weather.timePasses(); + weather.timePasses(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/observer/src/main/java/com/iluwatar/Hobbits.java b/observer/src/main/java/com/iluwatar/observer/Hobbits.java similarity index 66% rename from observer/src/main/java/com/iluwatar/Hobbits.java rename to observer/src/main/java/com/iluwatar/observer/Hobbits.java index b4b09ab3c15e..c5c758e81698 100644 --- a/observer/src/main/java/com/iluwatar/Hobbits.java +++ b/observer/src/main/java/com/iluwatar/observer/Hobbits.java @@ -1,25 +1,27 @@ -package com.iluwatar; - -public class Hobbits implements WeatherObserver { - - @Override - public void update(WeatherType currentWeather) { - switch (currentWeather) { - case COLD: - System.out.println("The hobbits are shivering in the cold weather."); - break; - case RAINY: - System.out.println("The hobbits look for cover from the rain."); - break; - case SUNNY: - System.out.println("The happy hobbits bade in the warm sun."); - break; - case WINDY: - System.out.println("The hobbits hold their hats tightly in the windy weather."); - break; - default: - break; - } - } - -} +package com.iluwatar.observer; + +public class Hobbits implements WeatherObserver { + + @Override + public void update(WeatherType currentWeather) { + switch (currentWeather) { + case COLD: + System.out + .println("The hobbits are shivering in the cold weather."); + break; + case RAINY: + System.out.println("The hobbits look for cover from the rain."); + break; + case SUNNY: + System.out.println("The happy hobbits bade in the warm sun."); + break; + case WINDY: + System.out + .println("The hobbits hold their hats tightly in the windy weather."); + break; + default: + break; + } + } + +} diff --git a/observer/src/main/java/com/iluwatar/Orcs.java b/observer/src/main/java/com/iluwatar/observer/Orcs.java similarity index 91% rename from observer/src/main/java/com/iluwatar/Orcs.java rename to observer/src/main/java/com/iluwatar/observer/Orcs.java index 05fc0a4c9064..db560cf58514 100644 --- a/observer/src/main/java/com/iluwatar/Orcs.java +++ b/observer/src/main/java/com/iluwatar/observer/Orcs.java @@ -1,25 +1,25 @@ -package com.iluwatar; - -public class Orcs implements WeatherObserver { - - @Override - public void update(WeatherType currentWeather) { - switch (currentWeather) { - case COLD: - System.out.println("The orcs are freezing cold."); - break; - case RAINY: - System.out.println("The orcs are dripping wet."); - break; - case SUNNY: - System.out.println("The sun hurts the orcs' eyes."); - break; - case WINDY: - System.out.println("The orc smell almost vanishes in the wind."); - break; - default: - break; - } - } - -} +package com.iluwatar.observer; + +public class Orcs implements WeatherObserver { + + @Override + public void update(WeatherType currentWeather) { + switch (currentWeather) { + case COLD: + System.out.println("The orcs are freezing cold."); + break; + case RAINY: + System.out.println("The orcs are dripping wet."); + break; + case SUNNY: + System.out.println("The sun hurts the orcs' eyes."); + break; + case WINDY: + System.out.println("The orc smell almost vanishes in the wind."); + break; + default: + break; + } + } + +} diff --git a/observer/src/main/java/com/iluwatar/observer/Test.java b/observer/src/main/java/com/iluwatar/observer/Test.java new file mode 100644 index 000000000000..31894f0307cc --- /dev/null +++ b/observer/src/main/java/com/iluwatar/observer/Test.java @@ -0,0 +1 @@ +package com.iluwatar.observer; diff --git a/observer/src/main/java/com/iluwatar/observer/WEE.java b/observer/src/main/java/com/iluwatar/observer/WEE.java new file mode 100644 index 000000000000..31894f0307cc --- /dev/null +++ b/observer/src/main/java/com/iluwatar/observer/WEE.java @@ -0,0 +1 @@ +package com.iluwatar.observer; diff --git a/observer/src/main/java/com/iluwatar/Weather.java b/observer/src/main/java/com/iluwatar/observer/Weather.java similarity index 90% rename from observer/src/main/java/com/iluwatar/Weather.java rename to observer/src/main/java/com/iluwatar/observer/Weather.java index f3c11ac73fab..3ada84aa8317 100644 --- a/observer/src/main/java/com/iluwatar/Weather.java +++ b/observer/src/main/java/com/iluwatar/observer/Weather.java @@ -1,56 +1,56 @@ -package com.iluwatar; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * Weather can be observed by implementing WeatherObserver - * interface and registering as listener. - * - */ -public class Weather { - - private WeatherType currentWeather; - private List observers; - - public Weather() { - observers = new ArrayList<>(); - currentWeather = WeatherType.SUNNY; - } - - public void addObserver(WeatherObserver obs) { - observers.add(obs); - } - - public void removeObserver(WeatherObserver obs) { - observers.remove(obs); - } - - public void timePasses() { - switch (currentWeather) { - case COLD: - currentWeather = WeatherType.SUNNY; - break; - case RAINY: - currentWeather = WeatherType.WINDY; - break; - case SUNNY: - currentWeather = WeatherType.RAINY; - break; - case WINDY: - currentWeather = WeatherType.COLD; - break; - default: - break; - } - System.out.println("The weather now changes to " + currentWeather); - notifyObservers(); - } - - private void notifyObservers() { - for (WeatherObserver obs: observers) { - obs.update(currentWeather); - } - } -} +package com.iluwatar.observer; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * Weather can be observed by implementing WeatherObserver + * interface and registering as listener. + * + */ +public class Weather { + + private WeatherType currentWeather; + private List observers; + + public Weather() { + observers = new ArrayList(); + currentWeather = WeatherType.SUNNY; + } + + public void addObserver(WeatherObserver obs) { + observers.add(obs); + } + + public void removeObserver(WeatherObserver obs) { + observers.remove(obs); + } + + public void timePasses() { + switch (currentWeather) { + case COLD: + currentWeather = WeatherType.SUNNY; + break; + case RAINY: + currentWeather = WeatherType.WINDY; + break; + case SUNNY: + currentWeather = WeatherType.RAINY; + break; + case WINDY: + currentWeather = WeatherType.COLD; + break; + default: + break; + } + System.out.println("The weather now changes to " + currentWeather); + notifyObservers(); + } + + private void notifyObservers() { + for (WeatherObserver obs: observers) { + obs.update(currentWeather); + } + } +} diff --git a/observer/src/main/java/com/iluwatar/WeatherObserver.java b/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java similarity index 78% rename from observer/src/main/java/com/iluwatar/WeatherObserver.java rename to observer/src/main/java/com/iluwatar/observer/WeatherObserver.java index 6af0202405e6..c630ae38a4e9 100644 --- a/observer/src/main/java/com/iluwatar/WeatherObserver.java +++ b/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java @@ -1,12 +1,12 @@ -package com.iluwatar; - -/** - * - * Observer interface. - * - */ -public interface WeatherObserver { - - void update(WeatherType currentWeather); - -} +package com.iluwatar.observer; + +/** + * + * Observer interface. + * + */ +public interface WeatherObserver { + + void update(WeatherType currentWeather); + +} diff --git a/observer/src/main/java/com/iluwatar/WeatherType.java b/observer/src/main/java/com/iluwatar/observer/WeatherType.java similarity index 78% rename from observer/src/main/java/com/iluwatar/WeatherType.java rename to observer/src/main/java/com/iluwatar/observer/WeatherType.java index 9625fbab8bed..3c295176a54f 100644 --- a/observer/src/main/java/com/iluwatar/WeatherType.java +++ b/observer/src/main/java/com/iluwatar/observer/WeatherType.java @@ -1,14 +1,14 @@ -package com.iluwatar; - -public enum WeatherType { - - SUNNY, - RAINY, - WINDY, - COLD; - - public String toString() { - return this.name().toLowerCase(); - }; - -} +package com.iluwatar.observer; + +public enum WeatherType { + + SUNNY, + RAINY, + WINDY, + COLD; + + public String toString() { + return this.name().toLowerCase(); + }; + +} diff --git a/observer/src/main/java/com/iluwatar/observer/dsfaa.java b/observer/src/main/java/com/iluwatar/observer/dsfaa.java new file mode 100644 index 000000000000..31894f0307cc --- /dev/null +++ b/observer/src/main/java/com/iluwatar/observer/dsfaa.java @@ -0,0 +1 @@ +package com.iluwatar.observer; diff --git a/observer/src/test/log4j.xml b/observer/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/observer/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/observer/src/test/resources/configure/UATApplicationContext.xml b/observer/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/observer/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/observer/src/test/resources/configure/prop.xml b/observer/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/observer/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/observer/src/test/resources/configure/test_data_source.xml b/observer/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/observer/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/observer/src/test/resources/configure/uat.properties b/observer/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/observer/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/observer/src/test/resources/configure/uat_spring_conf.xml b/observer/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/observer/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/observer/src/test/resources/data/backup/README b/observer/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/observer/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/observer/src/test/resources/data/config/README b/observer/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/observer/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/observer/src/test/resources/data/excel/README b/observer/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/observer/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/observer/src/test/resources/data/object/README b/observer/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/observer/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/observer/src/test/resources/data/spring/README b/observer/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/observer/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/observer/src/test/resources/temp/README b/observer/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/observer/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/observer/src/test/testng.xml b/observer/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/observer/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 4da45cbe67e8..e27d0261fa3e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,62 +1,63 @@ - - - 4.0.0 - - com.iluwatar - java-design-patterns - 1.0-SNAPSHOT - pom - - - - website - scp://webhost.company.com/www/website - - - - - UTF-8 - - - abstract-factory - builder - factory-method - prototype - singleton - adapter - bridge - composite - decorator - facade - flyweight - proxy - chain - command - interpreter - iterator - mediator - memento - observer - state - strategy - template-method - visitor - double-checked-locking - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.0 - - 1.7 - 1.7 - - - - - + + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.0-SNAPSHOT + pom + + + + website + scp://webhost.company.com/www/website + + + + + UTF-8 + + + abstract-factory + builder + factory-method + prototype + singleton + adapter + bridge + composite + decorator + facade + flyweight + proxy + chain + command + interpreter + iterator + mediator + memento + observer + state + strategy + template-method + visitor + double-checked-locking + lambda + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.0 + + 1.7 + 1.7 + + + + + \ No newline at end of file diff --git a/prototype/prototype.iml b/prototype/prototype.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/prototype/prototype.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/prototype/src/main/java/com/iluwatar/App.java b/prototype/src/main/java/com/iluwatar/prototype/App.java similarity index 94% rename from prototype/src/main/java/com/iluwatar/App.java rename to prototype/src/main/java/com/iluwatar/prototype/App.java index ff3790010239..e704103fa74b 100644 --- a/prototype/src/main/java/com/iluwatar/App.java +++ b/prototype/src/main/java/com/iluwatar/prototype/App.java @@ -1,35 +1,35 @@ -package com.iluwatar; - -/** - * - * In Prototype we have a factory class (HeroFactoryImpl) producing - * objects by cloning existing ones. In this example the factory's - * prototype objects are given as constructor parameters. - * - */ -public class App -{ - public static void main( String[] args ) - { - HeroFactory factory; - Mage mage; - Warlord warlord; - Beast beast; - - factory = new HeroFactoryImpl(new ElfMage(), new ElfWarlord(), new ElfBeast()); - mage = factory.createMage(); - warlord = factory.createWarlord(); - beast = factory.createBeast(); - System.out.println(mage); - System.out.println(warlord); - System.out.println(beast); - - factory = new HeroFactoryImpl(new OrcMage(), new OrcWarlord(), new OrcBeast()); - mage = factory.createMage(); - warlord = factory.createWarlord(); - beast = factory.createBeast(); - System.out.println(mage); - System.out.println(warlord); - System.out.println(beast); - } -} +package com.iluwatar.prototype; + +/** + * + * In Prototype we have a factory class (HeroFactoryImpl) producing + * objects by cloning existing ones. In this example the factory's + * prototype objects are given as constructor parameters. + * + */ +public class App +{ + public static void main( String[] args ) + { + HeroFactory factory; + Mage mage; + Warlord warlord; + Beast beast; + + factory = new HeroFactoryImpl(new ElfMage(), new ElfWarlord(), new ElfBeast()); + mage = factory.createMage(); + warlord = factory.createWarlord(); + beast = factory.createBeast(); + System.out.println(mage); + System.out.println(warlord); + System.out.println(beast); + + factory = new HeroFactoryImpl(new OrcMage(), new OrcWarlord(), new OrcBeast()); + mage = factory.createMage(); + warlord = factory.createWarlord(); + beast = factory.createBeast(); + System.out.println(mage); + System.out.println(warlord); + System.out.println(beast); + } +} diff --git a/prototype/src/main/java/com/iluwatar/Beast.java b/prototype/src/main/java/com/iluwatar/prototype/Beast.java similarity index 80% rename from prototype/src/main/java/com/iluwatar/Beast.java rename to prototype/src/main/java/com/iluwatar/prototype/Beast.java index 2d1e978c0c03..ad01ad718e7c 100644 --- a/prototype/src/main/java/com/iluwatar/Beast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Beast.java @@ -1,8 +1,8 @@ -package com.iluwatar; - -public abstract class Beast extends Prototype { - - @Override - public abstract Beast clone() throws CloneNotSupportedException; - -} +package com.iluwatar.prototype; + +public abstract class Beast extends Prototype { + + @Override + public abstract Beast clone() throws CloneNotSupportedException; + +} diff --git a/prototype/src/main/java/com/iluwatar/ElfBeast.java b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java similarity index 86% rename from prototype/src/main/java/com/iluwatar/ElfBeast.java rename to prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java index 40fac06b8757..b51f24d0558a 100644 --- a/prototype/src/main/java/com/iluwatar/ElfBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class ElfBeast extends Beast { - - public ElfBeast() { - } - - public ElfBeast(ElfBeast beast) { - } - - @Override - public Beast clone() throws CloneNotSupportedException { - return new ElfBeast(this); - } - - @Override - public String toString() { - return "Elven eagle"; - } - -} +package com.iluwatar.prototype; + +public class ElfBeast extends Beast { + + public ElfBeast() { + } + + public ElfBeast(ElfBeast beast) { + } + + @Override + public Beast clone() throws CloneNotSupportedException { + return new ElfBeast(this); + } + + @Override + public String toString() { + return "Elven eagle"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/ElfMage.java b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java similarity index 86% rename from prototype/src/main/java/com/iluwatar/ElfMage.java rename to prototype/src/main/java/com/iluwatar/prototype/ElfMage.java index 52919c91dc7d..26e60499f28e 100644 --- a/prototype/src/main/java/com/iluwatar/ElfMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class ElfMage extends Mage { - - public ElfMage() { - } - - public ElfMage(ElfMage mage) { - } - - @Override - public Mage clone() throws CloneNotSupportedException { - return new ElfMage(this); - } - - @Override - public String toString() { - return "Elven mage"; - } - -} +package com.iluwatar.prototype; + +public class ElfMage extends Mage { + + public ElfMage() { + } + + public ElfMage(ElfMage mage) { + } + + @Override + public Mage clone() throws CloneNotSupportedException { + return new ElfMage(this); + } + + @Override + public String toString() { + return "Elven mage"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/ElfWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java similarity index 87% rename from prototype/src/main/java/com/iluwatar/ElfWarlord.java rename to prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java index 51c52afdc5ca..6e098660112a 100644 --- a/prototype/src/main/java/com/iluwatar/ElfWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class ElfWarlord extends Warlord { - - public ElfWarlord() { - } - - public ElfWarlord(ElfWarlord warlord) { - } - - @Override - public Warlord clone() throws CloneNotSupportedException { - return new ElfWarlord(this); - } - - @Override - public String toString() { - return "Elven warlord"; - } - -} +package com.iluwatar.prototype; + +public class ElfWarlord extends Warlord { + + public ElfWarlord() { + } + + public ElfWarlord(ElfWarlord warlord) { + } + + @Override + public Warlord clone() throws CloneNotSupportedException { + return new ElfWarlord(this); + } + + @Override + public String toString() { + return "Elven warlord"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/HeroFactory.java b/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java similarity index 80% rename from prototype/src/main/java/com/iluwatar/HeroFactory.java rename to prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java index e7145fa88571..d66ab298e2db 100644 --- a/prototype/src/main/java/com/iluwatar/HeroFactory.java +++ b/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java @@ -1,16 +1,16 @@ -package com.iluwatar; - -/** - * - * Interface for the factory class. - * - */ -public interface HeroFactory { - - Mage createMage(); - - Warlord createWarlord(); - - Beast createBeast(); - -} +package com.iluwatar.prototype; + +/** + * + * Interface for the factory class. + * + */ +public interface HeroFactory { + + Mage createMage(); + + Warlord createWarlord(); + + Beast createBeast(); + +} diff --git a/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java similarity index 91% rename from prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java rename to prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java index 7c96fc8a5f37..207b6f9ec56d 100644 --- a/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java +++ b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java @@ -1,44 +1,44 @@ -package com.iluwatar; - -/** - * - * Concrete factory class. - * - */ -public class HeroFactoryImpl implements HeroFactory { - - private Mage mage; - private Warlord warlord; - private Beast beast; - - public HeroFactoryImpl(Mage mage, Warlord warlord, Beast beast) { - this.mage = mage; - this.warlord = warlord; - this.beast = beast; - } - - public Mage createMage() { - try { - return mage.clone(); - } catch (CloneNotSupportedException e) { - return null; - } - } - - public Warlord createWarlord() { - try { - return warlord.clone(); - } catch (CloneNotSupportedException e) { - return null; - } - } - - public Beast createBeast() { - try { - return beast.clone(); - } catch (CloneNotSupportedException e) { - return null; - } - } - -} +package com.iluwatar.prototype; + +/** + * + * Concrete factory class. + * + */ +public class HeroFactoryImpl implements HeroFactory { + + private Mage mage; + private Warlord warlord; + private Beast beast; + + public HeroFactoryImpl(Mage mage, Warlord warlord, Beast beast) { + this.mage = mage; + this.warlord = warlord; + this.beast = beast; + } + + public Mage createMage() { + try { + return mage.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } + + public Warlord createWarlord() { + try { + return warlord.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } + + public Beast createBeast() { + try { + return beast.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } + +} diff --git a/prototype/src/main/java/com/iluwatar/Mage.java b/prototype/src/main/java/com/iluwatar/prototype/Mage.java similarity index 80% rename from prototype/src/main/java/com/iluwatar/Mage.java rename to prototype/src/main/java/com/iluwatar/prototype/Mage.java index 726150633295..8c735a927ee5 100644 --- a/prototype/src/main/java/com/iluwatar/Mage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Mage.java @@ -1,8 +1,8 @@ -package com.iluwatar; - -public abstract class Mage extends Prototype { - - @Override - public abstract Mage clone() throws CloneNotSupportedException; - -} +package com.iluwatar.prototype; + +public abstract class Mage extends Prototype { + + @Override + public abstract Mage clone() throws CloneNotSupportedException; + +} diff --git a/prototype/src/main/java/com/iluwatar/OrcBeast.java b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java similarity index 86% rename from prototype/src/main/java/com/iluwatar/OrcBeast.java rename to prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java index a5f52232c9f1..7a68c54b1738 100644 --- a/prototype/src/main/java/com/iluwatar/OrcBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class OrcBeast extends Beast { - - public OrcBeast() { - } - - public OrcBeast(OrcBeast beast) { - } - - @Override - public Beast clone() throws CloneNotSupportedException { - return new OrcBeast(this); - } - - @Override - public String toString() { - return "Orcish wolf"; - } - -} +package com.iluwatar.prototype; + +public class OrcBeast extends Beast { + + public OrcBeast() { + } + + public OrcBeast(OrcBeast beast) { + } + + @Override + public Beast clone() throws CloneNotSupportedException { + return new OrcBeast(this); + } + + @Override + public String toString() { + return "Orcish wolf"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/OrcMage.java b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java similarity index 86% rename from prototype/src/main/java/com/iluwatar/OrcMage.java rename to prototype/src/main/java/com/iluwatar/prototype/OrcMage.java index 88e7718ac55b..5ea31a465521 100644 --- a/prototype/src/main/java/com/iluwatar/OrcMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class OrcMage extends Mage { - - public OrcMage() { - } - - public OrcMage(OrcMage mage) { - } - - @Override - public Mage clone() throws CloneNotSupportedException { - return new OrcMage(this); - } - - @Override - public String toString() { - return "Orcish mage"; - } - -} +package com.iluwatar.prototype; + +public class OrcMage extends Mage { + + public OrcMage() { + } + + public OrcMage(OrcMage mage) { + } + + @Override + public Mage clone() throws CloneNotSupportedException { + return new OrcMage(this); + } + + @Override + public String toString() { + return "Orcish mage"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/OrcWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java similarity index 87% rename from prototype/src/main/java/com/iluwatar/OrcWarlord.java rename to prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java index 62ab25975d66..3b7b5358fa7e 100644 --- a/prototype/src/main/java/com/iluwatar/OrcWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class OrcWarlord extends Warlord { - - public OrcWarlord() { - } - - public OrcWarlord(OrcWarlord warlord) { - } - - @Override - public Warlord clone() throws CloneNotSupportedException { - return new OrcWarlord(this); - } - - @Override - public String toString() { - return "Orcish warlord"; - } - -} +package com.iluwatar.prototype; + +public class OrcWarlord extends Warlord { + + public OrcWarlord() { + } + + public OrcWarlord(OrcWarlord warlord) { + } + + @Override + public Warlord clone() throws CloneNotSupportedException { + return new OrcWarlord(this); + } + + @Override + public String toString() { + return "Orcish warlord"; + } + +} diff --git a/prototype/src/main/java/com/iluwatar/Prototype.java b/prototype/src/main/java/com/iluwatar/prototype/Prototype.java similarity index 81% rename from prototype/src/main/java/com/iluwatar/Prototype.java rename to prototype/src/main/java/com/iluwatar/prototype/Prototype.java index e508aea6e606..48fbabbd52a4 100644 --- a/prototype/src/main/java/com/iluwatar/Prototype.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Prototype.java @@ -1,8 +1,8 @@ -package com.iluwatar; - -public abstract class Prototype implements Cloneable { - - @Override - public abstract Object clone() throws CloneNotSupportedException; - -} +package com.iluwatar.prototype; + +public abstract class Prototype implements Cloneable { + + @Override + public abstract Object clone() throws CloneNotSupportedException; + +} diff --git a/prototype/src/main/java/com/iluwatar/Warlord.java b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java similarity index 80% rename from prototype/src/main/java/com/iluwatar/Warlord.java rename to prototype/src/main/java/com/iluwatar/prototype/Warlord.java index 4ddcdd251135..80f1b7b4b67c 100644 --- a/prototype/src/main/java/com/iluwatar/Warlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java @@ -1,8 +1,8 @@ -package com.iluwatar; - -public abstract class Warlord extends Prototype { - - @Override - public abstract Warlord clone() throws CloneNotSupportedException; - -} +package com.iluwatar.prototype; + +public abstract class Warlord extends Prototype { + + @Override + public abstract Warlord clone() throws CloneNotSupportedException; + +} diff --git a/proxy/proxy.iml b/proxy/proxy.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/proxy/proxy.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/proxy/src/main/java/com/iluwatar/App.java b/proxy/src/main/java/com/iluwatar/App.java deleted file mode 100644 index ceca214b23df..000000000000 --- a/proxy/src/main/java/com/iluwatar/App.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.iluwatar; - -/** - * - * Proxy (WizardTowerProxy) controls access to the - * actual object (WizardTower). - * - */ -public class App -{ - public static void main( String[] args ) - { - - WizardTowerProxy tower = new WizardTowerProxy(); - tower.enter(new Wizard("Red wizard")); - tower.enter(new Wizard("White wizard")); - tower.enter(new Wizard("Black wizard")); - tower.enter(new Wizard("Green wizard")); - tower.enter(new Wizard("Brown wizard")); - - } -} diff --git a/proxy/src/main/java/com/iluwatar/proxy/App.java b/proxy/src/main/java/com/iluwatar/proxy/App.java new file mode 100644 index 000000000000..09ddbe3838e8 --- /dev/null +++ b/proxy/src/main/java/com/iluwatar/proxy/App.java @@ -0,0 +1,24 @@ +package com.iluwatar.proxy; + + + +/** + * + * Proxy (WizardTowerProxy) controls access to the + * actual object (WizardTower). + * + */ +public class App +{ + public static void main( String[] args ) + { + + WizardTowerProxy tower = new WizardTowerProxy(); + tower.enter(new Wizard("Red wizard")); + tower.enter(new Wizard("White wizard")); + tower.enter(new Wizard("Black wizard")); + tower.enter(new Wizard("Green wizard")); + tower.enter(new Wizard("Brown wizard")); + + } +} diff --git a/proxy/src/main/java/com/iluwatar/Wizard.java b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java similarity index 81% rename from proxy/src/main/java/com/iluwatar/Wizard.java rename to proxy/src/main/java/com/iluwatar/proxy/Wizard.java index 41c838fdcb73..1aa291d57f2d 100644 --- a/proxy/src/main/java/com/iluwatar/Wizard.java +++ b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java @@ -1,16 +1,16 @@ -package com.iluwatar; - -public class Wizard { - - private String name; - - public Wizard(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - -} +package com.iluwatar.proxy; + +public class Wizard { + + private String name; + + public Wizard(String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } + +} diff --git a/proxy/src/main/java/com/iluwatar/WizardTower.java b/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java similarity index 79% rename from proxy/src/main/java/com/iluwatar/WizardTower.java rename to proxy/src/main/java/com/iluwatar/proxy/WizardTower.java index 1b7320a3ede0..31b2a4103106 100644 --- a/proxy/src/main/java/com/iluwatar/WizardTower.java +++ b/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java @@ -1,14 +1,16 @@ -package com.iluwatar; - -/** - * - * The object to be proxyed. - * - */ -public class WizardTower { - - public void enter(Wizard wizard) { - System.out.println(wizard + " enters the tower."); - } - -} +package com.iluwatar.proxy; + + + +/** + * + * The object to be proxyed. + * + */ +public class WizardTower { + + public void enter(Wizard wizard) { + System.out.println(wizard + " enters the tower."); + } + +} diff --git a/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java similarity index 88% rename from proxy/src/main/java/com/iluwatar/WizardTowerProxy.java rename to proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java index 1be1cacea582..661a118f8321 100644 --- a/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java +++ b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java @@ -1,23 +1,25 @@ -package com.iluwatar; - -/** - * - * The proxy controlling access to WizardTower. - * - */ -public class WizardTowerProxy extends WizardTower { - - private static final int NUM_WIZARDS_ALLOWED = 3; - - private int numWizards; - - @Override - public void enter(Wizard wizard) { - if (numWizards < NUM_WIZARDS_ALLOWED) { - super.enter(wizard); - numWizards++; - } else { - System.out.println(wizard + " is not allowed to enter!"); - } - } -} +package com.iluwatar.proxy; + + + +/** + * + * The proxy controlling access to WizardTower. + * + */ +public class WizardTowerProxy extends WizardTower { + + private static final int NUM_WIZARDS_ALLOWED = 3; + + private int numWizards; + + @Override + public void enter(Wizard wizard) { + if (numWizards < NUM_WIZARDS_ALLOWED) { + super.enter(wizard); + numWizards++; + } else { + System.out.println(wizard + " is not allowed to enter!"); + } + } +} diff --git a/singleton/.gitignore b/singleton/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/singleton/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/singleton/out/.gitignore b/singleton/out/.gitignore new file mode 100644 index 000000000000..5e56e040ec09 --- /dev/null +++ b/singleton/out/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/singleton/singleton.iml b/singleton/singleton.iml new file mode 100644 index 000000000000..57a0548ee6df --- /dev/null +++ b/singleton/singleton.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/singleton/src/main/java/com/iluwatar/App.java b/singleton/src/main/java/com/iluwatar/singleton/App.java similarity index 91% rename from singleton/src/main/java/com/iluwatar/App.java rename to singleton/src/main/java/com/iluwatar/singleton/App.java index 01e26c4af1de..c0dbb0d23bf7 100644 --- a/singleton/src/main/java/com/iluwatar/App.java +++ b/singleton/src/main/java/com/iluwatar/singleton/App.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -/** - * - * Singleton pattern ensures that the class (IvoryTower) can have only - * one existing instance and provides global access to that instance. - * - */ -public class App -{ - public static void main( String[] args ) - { - - IvoryTower ivoryTower1 = IvoryTower.getInstance(); - IvoryTower ivoryTower2 = IvoryTower.getInstance(); - System.out.println("ivoryTower1=" + ivoryTower1); - System.out.println("ivoryTower2=" + ivoryTower2); - - } -} +package com.iluwatar.singleton; + +/** + * + * Singleton pattern ensures that the class (IvoryTower) can have only + * one existing instance and provides global access to that instance. + * + */ +public class App +{ + public static void main( String[] args ) + { + + IvoryTower ivoryTower1 = IvoryTower.getInstance(); + IvoryTower ivoryTower2 = IvoryTower.getInstance(); + System.out.println("ivoryTower1=" + ivoryTower1); + System.out.println("ivoryTower2=" + ivoryTower2); + + } +} diff --git a/singleton/src/main/java/com/iluwatar/IvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java similarity index 53% rename from singleton/src/main/java/com/iluwatar/IvoryTower.java rename to singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java index 113962eb84c7..699281af2f61 100644 --- a/singleton/src/main/java/com/iluwatar/IvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java @@ -1,17 +1,20 @@ -package com.iluwatar; - -/** - * - * Singleton class. - * - */ -public class IvoryTower { - - private static IvoryTower instance = new IvoryTower(); - - private IvoryTower() {} - - public static IvoryTower getInstance() { - return instance; - } -} +package com.iluwatar.singleton; + +/** + * + * Singleton class. + * + */ +public class IvoryTower { + + private static IvoryTower instance = null; + + private IvoryTower() {} + + public static IvoryTower getInstance() { + if(instance == null){ + instance = new IvoryTower(); + } + return instance; + } +} diff --git a/singleton/src/test/log4j.xml b/singleton/src/test/log4j.xml new file mode 100644 index 000000000000..748d0c1a5271 --- /dev/null +++ b/singleton/src/test/log4j.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/singleton/src/test/resources/configure/UATApplicationContext.xml b/singleton/src/test/resources/configure/UATApplicationContext.xml new file mode 100644 index 000000000000..818ef52f909e --- /dev/null +++ b/singleton/src/test/resources/configure/UATApplicationContext.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/singleton/src/test/resources/configure/prop.xml b/singleton/src/test/resources/configure/prop.xml new file mode 100644 index 000000000000..c7afbd60d256 --- /dev/null +++ b/singleton/src/test/resources/configure/prop.xml @@ -0,0 +1,133 @@ + + + false + + + $JAVA_HOME + server + -server -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=GMT+8 -Djava.awt.headless=true + 8005 + + 80 + + + + true + + StartTomcat + nc.bs.tomcat.startup.BootStrapTomcatService + 15 + true + false + start|stop + + + EJB_SERVICE + nc.bs.mw.naming.EJBContainerService + 15 + true + false + start|stop + + nc.bs.mw.tran.IerpTransactionManagerProxy + nc.bs.mw.tran.IerpUserTransaction + nc.bs.mw.tran.IerpTransactionManager + nc.bs.mw.sql.UFSqlObject + nc.bs.mw.ejbsql.IerpXADataSource + + design + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + baptest807 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bafi + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bafi + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + iufo6103312 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + iufo6103312 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + batm + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + batm + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + bap8 + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + bap8 + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + + foodmart + Z + jdbc:oracle:thin:@20.10.130.235:1521:orcl + foodmart + jlehfdffcfmohiag + oracle.jdbc.OracleDriver + ORACLE11G + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/singleton/src/test/resources/configure/test_data_source.xml b/singleton/src/test/resources/configure/test_data_source.xml new file mode 100644 index 000000000000..2e45d5ee869c --- /dev/null +++ b/singleton/src/test/resources/configure/test_data_source.xml @@ -0,0 +1,19 @@ + + + + design + Z + jdbc:sqlserver://uapxt02:1433;database=newwf_1010;sendStringParametersAsUnicode=false;responseBuffering=adaptive + sa + sasasa + com.microsoft.sqlserver.jdbc.SQLServerDriver + SQLSERVER2008 + 50 + 1 + nc.bs.mw.ejb.xares.IerpDataSource + nc.bs.mw.ejb.xares.IerpXADataSource + 0 + 0 + 0 + + \ No newline at end of file diff --git a/singleton/src/test/resources/configure/uat.properties b/singleton/src/test/resources/configure/uat.properties new file mode 100644 index 000000000000..f0b076c2de77 --- /dev/null +++ b/singleton/src/test/resources/configure/uat.properties @@ -0,0 +1,33 @@ +#project information +app_name=App Name +app_version=V6.5 + +#Common Configure +##UAPHOME path, USE '/' for path separator +nc_home= +##verify log path, USE '/' for path separator +log_file=debug.log + +# 0 don't print app log information on test result log +# 1 only print app log information on test result log for fail testcase +# 2 print application log information on test result log for all testcase +uatlog_switch=2 + +#dataFile Configure ,backup database data and restore database data +data_backup_file = c:/temp/datafile.xml + +#default datasource +default_datasource=design + +#BusinessServer configure +serverstart=off +login_username= +login_password= + +#resources settings +nc_configure_dir=resources/configure/ +testdata_config_dir=resources/data/conf/ +testdata_springfile_dir=resources/data/spring/ +testdata_objectfile_dir=resources/data/object/ +testdata_excelfile_dir=resources/data/excel/ +testdata_backup_dir=resources/data/backup/ diff --git a/singleton/src/test/resources/configure/uat_spring_conf.xml b/singleton/src/test/resources/configure/uat_spring_conf.xml new file mode 100644 index 000000000000..169a91514700 --- /dev/null +++ b/singleton/src/test/resources/configure/uat_spring_conf.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/singleton/src/test/resources/data/backup/README b/singleton/src/test/resources/data/backup/README new file mode 100644 index 000000000000..a5b99861a7dc --- /dev/null +++ b/singleton/src/test/resources/data/backup/README @@ -0,0 +1 @@ +备份文件夹 \ No newline at end of file diff --git a/singleton/src/test/resources/data/config/README b/singleton/src/test/resources/data/config/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/singleton/src/test/resources/data/config/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/singleton/src/test/resources/data/excel/README b/singleton/src/test/resources/data/excel/README new file mode 100644 index 000000000000..4849e2aef709 --- /dev/null +++ b/singleton/src/test/resources/data/excel/README @@ -0,0 +1 @@ +Object配置文件夹 \ No newline at end of file diff --git a/singleton/src/test/resources/data/object/README b/singleton/src/test/resources/data/object/README new file mode 100644 index 000000000000..271c286f3687 --- /dev/null +++ b/singleton/src/test/resources/data/object/README @@ -0,0 +1 @@ +固化结果文件夹 \ No newline at end of file diff --git a/singleton/src/test/resources/data/spring/README b/singleton/src/test/resources/data/spring/README new file mode 100644 index 000000000000..961ee7009fd2 --- /dev/null +++ b/singleton/src/test/resources/data/spring/README @@ -0,0 +1 @@ +spring 配置文件夹 \ No newline at end of file diff --git a/singleton/src/test/resources/temp/README b/singleton/src/test/resources/temp/README new file mode 100644 index 000000000000..ccffba66ffdd --- /dev/null +++ b/singleton/src/test/resources/temp/README @@ -0,0 +1 @@ +临时文件夹 \ No newline at end of file diff --git a/singleton/src/test/testng.xml b/singleton/src/test/testng.xml new file mode 100644 index 000000000000..1fa0f7461a59 --- /dev/null +++ b/singleton/src/test/testng.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/state/src/main/java/com/iluwatar/AngryState.java b/state/src/main/java/com/iluwatar/state/AngryState.java similarity index 89% rename from state/src/main/java/com/iluwatar/AngryState.java rename to state/src/main/java/com/iluwatar/state/AngryState.java index 0a3de44e8973..6b4d2bdc47ae 100644 --- a/state/src/main/java/com/iluwatar/AngryState.java +++ b/state/src/main/java/com/iluwatar/state/AngryState.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class AngryState implements State { - - private Mammoth mammoth; - - public AngryState(Mammoth mammoth) { - this.mammoth = mammoth; - } - - @Override - public void observe() { - System.out.println(String.format("%s is furious!", mammoth)); - } - - @Override - public void onEnterState() { - System.out.println(String.format("%s gets angry!", mammoth)); - } - -} +package com.iluwatar.state; + +public class AngryState implements State { + + private Mammoth mammoth; + + public AngryState(Mammoth mammoth) { + this.mammoth = mammoth; + } + + @Override + public void observe() { + System.out.println(String.format("%s is furious!", mammoth)); + } + + @Override + public void onEnterState() { + System.out.println(String.format("%s gets angry!", mammoth)); + } + +} diff --git a/state/src/main/java/com/iluwatar/App.java b/state/src/main/java/com/iluwatar/state/App.java similarity index 90% rename from state/src/main/java/com/iluwatar/App.java rename to state/src/main/java/com/iluwatar/state/App.java index 92a87619dd0a..249b0d135cce 100644 --- a/state/src/main/java/com/iluwatar/App.java +++ b/state/src/main/java/com/iluwatar/state/App.java @@ -1,24 +1,24 @@ -package com.iluwatar; - -/** - * - * In State pattern the object (Mammoth) has internal - * state object (State) that defines the current - * behavior. The state object can be changed - * to alter the behavior. - * - */ -public class App -{ - public static void main( String[] args ) - { - - Mammoth mammoth = new Mammoth(); - mammoth.observe(); - mammoth.timePasses(); - mammoth.observe(); - mammoth.timePasses(); - mammoth.observe(); - - } -} +package com.iluwatar.state; + +/** + * + * In State pattern the object (Mammoth) has internal + * state object (State) that defines the current + * behavior. The state object can be changed + * to alter the behavior. + * + */ +public class App +{ + public static void main( String[] args ) + { + + Mammoth mammoth = new Mammoth(); + mammoth.observe(); + mammoth.timePasses(); + mammoth.observe(); + mammoth.timePasses(); + mammoth.observe(); + + } +} diff --git a/state/src/main/java/com/iluwatar/Mammoth.java b/state/src/main/java/com/iluwatar/state/Mammoth.java similarity index 90% rename from state/src/main/java/com/iluwatar/Mammoth.java rename to state/src/main/java/com/iluwatar/state/Mammoth.java index 78fb19682168..4327bbaf9deb 100644 --- a/state/src/main/java/com/iluwatar/Mammoth.java +++ b/state/src/main/java/com/iluwatar/state/Mammoth.java @@ -1,37 +1,37 @@ -package com.iluwatar; - -/** - * - * Mammoth has internal state that defines its behavior. - * - */ -public class Mammoth { - - private State state; - - public Mammoth() { - state = new PeacefulState(this); - } - - public void timePasses() { - if (state.getClass().equals(PeacefulState.class)) { - changeStateTo(new AngryState(this)); - } else { - changeStateTo(new PeacefulState(this)); - } - } - - private void changeStateTo(State newState) { - this.state = newState; - this.state.onEnterState(); - } - - @Override - public String toString() { - return "The mammoth"; - } - - public void observe() { - this.state.observe(); - } -} +package com.iluwatar.state; + +/** + * + * Mammoth has internal state that defines its behavior. + * + */ +public class Mammoth { + + private State state; + + public Mammoth() { + state = new PeacefulState(this); + } + + public void timePasses() { + if (state.getClass().equals(PeacefulState.class)) { + changeStateTo(new AngryState(this)); + } else { + changeStateTo(new PeacefulState(this)); + } + } + + private void changeStateTo(State newState) { + this.state = newState; + this.state.onEnterState(); + } + + @Override + public String toString() { + return "The mammoth"; + } + + public void observe() { + this.state.observe(); + } +} diff --git a/state/src/main/java/com/iluwatar/PeacefulState.java b/state/src/main/java/com/iluwatar/state/PeacefulState.java similarity index 89% rename from state/src/main/java/com/iluwatar/PeacefulState.java rename to state/src/main/java/com/iluwatar/state/PeacefulState.java index 6d6179a8b1be..293b584e3da3 100644 --- a/state/src/main/java/com/iluwatar/PeacefulState.java +++ b/state/src/main/java/com/iluwatar/state/PeacefulState.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -public class PeacefulState implements State { - - private Mammoth mammoth; - - public PeacefulState(Mammoth mammoth) { - this.mammoth = mammoth; - } - - @Override - public void observe() { - System.out.println(String.format("%s is calm and peaceful.", mammoth)); - } - - @Override - public void onEnterState() { - System.out.println(String.format("%s calms down.", mammoth)); - } - -} +package com.iluwatar.state; + +public class PeacefulState implements State { + + private Mammoth mammoth; + + public PeacefulState(Mammoth mammoth) { + this.mammoth = mammoth; + } + + @Override + public void observe() { + System.out.println(String.format("%s is calm and peaceful.", mammoth)); + } + + @Override + public void onEnterState() { + System.out.println(String.format("%s calms down.", mammoth)); + } + +} diff --git a/state/src/main/java/com/iluwatar/State.java b/state/src/main/java/com/iluwatar/state/State.java similarity index 74% rename from state/src/main/java/com/iluwatar/State.java rename to state/src/main/java/com/iluwatar/state/State.java index 3570a63f7e04..0163236e87ce 100644 --- a/state/src/main/java/com/iluwatar/State.java +++ b/state/src/main/java/com/iluwatar/state/State.java @@ -1,14 +1,14 @@ -package com.iluwatar; - -/** - * - * State interface. - * - */ -public interface State { - - void onEnterState(); - - void observe(); - -} +package com.iluwatar.state; + +/** + * + * State interface. + * + */ +public interface State { + + void onEnterState(); + + void observe(); + +} diff --git a/state/state.iml b/state/state.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/state/state.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/strategy/src/main/java/com/iluwatar/App.java b/strategy/src/main/java/com/iluwatar/strategy/App.java similarity index 93% rename from strategy/src/main/java/com/iluwatar/App.java rename to strategy/src/main/java/com/iluwatar/strategy/App.java index 26e047dc8002..3a663c6632a4 100644 --- a/strategy/src/main/java/com/iluwatar/App.java +++ b/strategy/src/main/java/com/iluwatar/strategy/App.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -/** - * - * Strategy (DragonSlayingStrategy) encapsulates the algorithm to use. - * The object (DragonSlayer) can alter its behavior by changing its strategy. - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println("Green dragon spotted ahead!"); - DragonSlayer dragonSlayer = new DragonSlayer(new MeleeStrategy()); - dragonSlayer.goToBattle(); - System.out.println("Red dragon emerges."); - dragonSlayer.changeStrategy(new ProjectileStrategy()); - dragonSlayer.goToBattle(); - System.out.println("Black dragon lands before you."); - dragonSlayer.changeStrategy(new SpellStrategy()); - dragonSlayer.goToBattle(); - } -} +package com.iluwatar.strategy; + +/** + * + * Strategy (DragonSlayingStrategy) encapsulates the algorithm to use. + * The object (DragonSlayer) can alter its behavior by changing its strategy. + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println("Green dragon spotted ahead!"); + DragonSlayer dragonSlayer = new DragonSlayer(new MeleeStrategy()); + dragonSlayer.goToBattle(); + System.out.println("Red dragon emerges."); + dragonSlayer.changeStrategy(new ProjectileStrategy()); + dragonSlayer.goToBattle(); + System.out.println("Black dragon lands before you."); + dragonSlayer.changeStrategy(new SpellStrategy()); + dragonSlayer.goToBattle(); + } +} diff --git a/strategy/src/main/java/com/iluwatar/DragonSlayer.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java similarity index 89% rename from strategy/src/main/java/com/iluwatar/DragonSlayer.java rename to strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java index 0111c7e66dec..466b6e628651 100644 --- a/strategy/src/main/java/com/iluwatar/DragonSlayer.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -/** - * - * DragonSlayer uses different strategies to slay the dragon. - * - */ -public class DragonSlayer { - - private DragonSlayingStrategy strategy; - - public DragonSlayer(DragonSlayingStrategy strategy) { - this.strategy = strategy; - } - - public void changeStrategy(DragonSlayingStrategy strategy) { - this.strategy = strategy; - } - - public void goToBattle() { - strategy.execute(); - } -} +package com.iluwatar.strategy; + +/** + * + * DragonSlayer uses different strategies to slay the dragon. + * + */ +public class DragonSlayer { + + private DragonSlayingStrategy strategy; + + public DragonSlayer(DragonSlayingStrategy strategy) { + this.strategy = strategy; + } + + public void changeStrategy(DragonSlayingStrategy strategy) { + this.strategy = strategy; + } + + public void goToBattle() { + strategy.execute(); + } +} diff --git a/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java similarity index 75% rename from strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java rename to strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java index 100ad29ed20f..b5c2a08681b8 100644 --- a/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java @@ -1,12 +1,12 @@ -package com.iluwatar; - -/** - * - * Strategy interface. - * - */ -public interface DragonSlayingStrategy { - - void execute(); - -} +package com.iluwatar.strategy; + +/** + * + * Strategy interface. + * + */ +public interface DragonSlayingStrategy { + + void execute(); + +} diff --git a/strategy/src/main/java/com/iluwatar/MeleeStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java similarity index 84% rename from strategy/src/main/java/com/iluwatar/MeleeStrategy.java rename to strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java index 49c06e826a67..0ae08fc62db6 100644 --- a/strategy/src/main/java/com/iluwatar/MeleeStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class MeleeStrategy implements DragonSlayingStrategy { - - @Override - public void execute() { - System.out.println("With your Excalibur you severe the dragon's head!"); - } - -} +package com.iluwatar.strategy; + +public class MeleeStrategy implements DragonSlayingStrategy { + + @Override + public void execute() { + System.out.println("With your Excalibur you severe the dragon's head!"); + } + +} diff --git a/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java similarity index 87% rename from strategy/src/main/java/com/iluwatar/ProjectileStrategy.java rename to strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java index 37c4a14cc73b..66a6bc7feddf 100644 --- a/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class ProjectileStrategy implements DragonSlayingStrategy { - - @Override - public void execute() { - System.out.println("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); - } - -} +package com.iluwatar.strategy; + +public class ProjectileStrategy implements DragonSlayingStrategy { + + @Override + public void execute() { + System.out.println("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); + } + +} diff --git a/strategy/src/main/java/com/iluwatar/SpellStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java similarity index 86% rename from strategy/src/main/java/com/iluwatar/SpellStrategy.java rename to strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java index 3dab043296a1..21497e66e928 100644 --- a/strategy/src/main/java/com/iluwatar/SpellStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java @@ -1,10 +1,10 @@ -package com.iluwatar; - -public class SpellStrategy implements DragonSlayingStrategy { - - @Override - public void execute() { - System.out.println("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); - } - -} +package com.iluwatar.strategy; + +public class SpellStrategy implements DragonSlayingStrategy { + + @Override + public void execute() { + System.out.println("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); + } + +} diff --git a/strategy/strategy.iml b/strategy/strategy.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/strategy/strategy.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/template-method/src/main/java/com/iluwatar/App.java b/template-method/src/main/java/com/iluwatar/template/method/App.java similarity index 90% rename from template-method/src/main/java/com/iluwatar/App.java rename to template-method/src/main/java/com/iluwatar/template/method/App.java index 0f6ccd6443e4..87d087d49b77 100644 --- a/template-method/src/main/java/com/iluwatar/App.java +++ b/template-method/src/main/java/com/iluwatar/template/method/App.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -/** - * - * Template Method (StealingMethod) defines skeleton for the - * algorithm and subclasses (HitAndRunMethod, SubtleMethod) - * fill in the blanks. - * - */ -public class App -{ - public static void main( String[] args ) - { - HalflingThief thief = new HalflingThief(new HitAndRunMethod()); - thief.steal(); - thief.changeMethod(new SubtleMethod()); - thief.steal(); - } -} +package com.iluwatar.template.method; + +/** + * + * Template Method (StealingMethod) defines skeleton for the + * algorithm and subclasses (HitAndRunMethod, SubtleMethod) + * fill in the blanks. + * + */ +public class App +{ + public static void main( String[] args ) + { + HalflingThief thief = new HalflingThief(new HitAndRunMethod()); + thief.steal(); + thief.changeMethod(new SubtleMethod()); + thief.steal(); + } +} diff --git a/template-method/src/main/java/com/iluwatar/HalflingThief.java b/template-method/src/main/java/com/iluwatar/template/method/HalflingThief.java similarity index 87% rename from template-method/src/main/java/com/iluwatar/HalflingThief.java rename to template-method/src/main/java/com/iluwatar/template/method/HalflingThief.java index 844fd00f895a..9fce6a45a6e5 100644 --- a/template-method/src/main/java/com/iluwatar/HalflingThief.java +++ b/template-method/src/main/java/com/iluwatar/template/method/HalflingThief.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -/** - * - * Halfling thief uses StealingMethod to steal. - * - */ -public class HalflingThief { - - private StealingMethod method; - - public HalflingThief(StealingMethod method) { - this.method = method; - } - - public void steal() { - method.steal(); - } - - public void changeMethod(StealingMethod method) { - this.method = method; - } -} +package com.iluwatar.template.method; + +/** + * + * Halfling thief uses StealingMethod to steal. + * + */ +public class HalflingThief { + + private StealingMethod method; + + public HalflingThief(StealingMethod method) { + this.method = method; + } + + public void steal() { + method.steal(); + } + + public void changeMethod(StealingMethod method) { + this.method = method; + } +} diff --git a/template-method/src/main/java/com/iluwatar/HitAndRunMethod.java b/template-method/src/main/java/com/iluwatar/template/method/HitAndRunMethod.java similarity index 90% rename from template-method/src/main/java/com/iluwatar/HitAndRunMethod.java rename to template-method/src/main/java/com/iluwatar/template/method/HitAndRunMethod.java index 99c0d61d12c3..313ead3a5f8a 100644 --- a/template-method/src/main/java/com/iluwatar/HitAndRunMethod.java +++ b/template-method/src/main/java/com/iluwatar/template/method/HitAndRunMethod.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -public class HitAndRunMethod extends StealingMethod { - - @Override - protected String pickTarget() { - return "old goblin woman"; - } - - @Override - protected void confuseTarget(String target) { - System.out.println("Approach the " + target + " from behind."); - } - - @Override - protected void stealTheItem(String target) { - System.out.println("Grab the handbag and run away fast!"); - } - -} +package com.iluwatar.template.method; + +public class HitAndRunMethod extends StealingMethod { + + @Override + protected String pickTarget() { + return "old goblin woman"; + } + + @Override + protected void confuseTarget(String target) { + System.out.println("Approach the " + target + " from behind."); + } + + @Override + protected void stealTheItem(String target) { + System.out.println("Grab the handbag and run away fast!"); + } + +} diff --git a/template-method/src/main/java/com/iluwatar/StealingMethod.java b/template-method/src/main/java/com/iluwatar/template/method/StealingMethod.java similarity index 90% rename from template-method/src/main/java/com/iluwatar/StealingMethod.java rename to template-method/src/main/java/com/iluwatar/template/method/StealingMethod.java index a57d8296f58f..3a75786ccf56 100644 --- a/template-method/src/main/java/com/iluwatar/StealingMethod.java +++ b/template-method/src/main/java/com/iluwatar/template/method/StealingMethod.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -/** - * - * Template Method base class. - * - */ -public abstract class StealingMethod { - - protected abstract String pickTarget(); - - protected abstract void confuseTarget(String target); - - protected abstract void stealTheItem(String target); - - public void steal() { - String target = pickTarget(); - System.out.println("The target has been chosen as " + target + "."); - confuseTarget(target); - stealTheItem(target); - } -} +package com.iluwatar.template.method; + +/** + * + * Template Method base class. + * + */ +public abstract class StealingMethod { + + protected abstract String pickTarget(); + + protected abstract void confuseTarget(String target); + + protected abstract void stealTheItem(String target); + + public void steal() { + String target = pickTarget(); + System.out.println("The target has been chosen as " + target + "."); + confuseTarget(target); + stealTheItem(target); + } +} diff --git a/template-method/src/main/java/com/iluwatar/SubtleMethod.java b/template-method/src/main/java/com/iluwatar/template/method/SubtleMethod.java similarity index 90% rename from template-method/src/main/java/com/iluwatar/SubtleMethod.java rename to template-method/src/main/java/com/iluwatar/template/method/SubtleMethod.java index 8967a92d6426..2c851c43673f 100644 --- a/template-method/src/main/java/com/iluwatar/SubtleMethod.java +++ b/template-method/src/main/java/com/iluwatar/template/method/SubtleMethod.java @@ -1,20 +1,20 @@ -package com.iluwatar; - -public class SubtleMethod extends StealingMethod { - - @Override - protected String pickTarget() { - return "shop keeper"; - } - - @Override - protected void confuseTarget(String target) { - System.out.println("Approach the " + target + " with tears running and hug him!"); - } - - @Override - protected void stealTheItem(String target) { - System.out.println("While in close contact grab the " + target + "'s wallet."); - } - -} +package com.iluwatar.template.method; + +public class SubtleMethod extends StealingMethod { + + @Override + protected String pickTarget() { + return "shop keeper"; + } + + @Override + protected void confuseTarget(String target) { + System.out.println("Approach the " + target + " with tears running and hug him!"); + } + + @Override + protected void stealTheItem(String target) { + System.out.println("While in close contact grab the " + target + "'s wallet."); + } + +} diff --git a/template-method/template-method.iml b/template-method/template-method.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/template-method/template-method.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/pom.xml b/test/pom.xml new file mode 100644 index 000000000000..3421d505fcf2 --- /dev/null +++ b/test/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.0-SNAPSHOT + + com.iluwatar + test + 1.0-SNAPSHOT + test + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + \ No newline at end of file diff --git a/test/src/main/java/com/ronly/lambda/Lambda.java b/test/src/main/java/com/ronly/lambda/Lambda.java new file mode 100644 index 000000000000..6d2f8a92174d --- /dev/null +++ b/test/src/main/java/com/ronly/lambda/Lambda.java @@ -0,0 +1,25 @@ +package com.ronly.lambda; + +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Created by duanmenghua on 2017-07-24. + */ +public class Lambda { + public static void main(String[] args) { + + List result = new LinkedList<>(); + result.add(1); + result.add(3); + result.add(4); + result.add(7); + result.add(5); + result.add(7); + List collect = result.stream().filter(x -> x > 3).distinct().collect(Collectors.toList()); + System.out.println(collect); + + + } +} diff --git a/test/test.iml b/test/test.iml new file mode 100644 index 000000000000..bc7ef2d9d966 --- /dev/null +++ b/test/test.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/visitor/src/main/java/com/iluwatar/App.java b/visitor/src/main/java/com/iluwatar/visitor/App.java similarity index 92% rename from visitor/src/main/java/com/iluwatar/App.java rename to visitor/src/main/java/com/iluwatar/visitor/App.java index 1de762fff7b9..659a6c7908cc 100644 --- a/visitor/src/main/java/com/iluwatar/App.java +++ b/visitor/src/main/java/com/iluwatar/visitor/App.java @@ -1,23 +1,23 @@ -package com.iluwatar; - -/** - * - * Visitor pattern defines mechanism to apply operations - * (UnitVisitor) on nodes (Unit) in hierarchy. New operations - * can be added without altering the node interface. - * - */ -public class App -{ - public static void main( String[] args ) - { - - Commander commander = new Commander( - new Sergeant(new Soldier(), new Soldier(), new Soldier()), - new Sergeant(new Soldier(), new Soldier(), new Soldier())); - commander.accept(new SoldierVisitor()); - commander.accept(new SergeantVisitor()); - commander.accept(new CommanderVisitor()); - - } -} +package com.iluwatar.visitor; + +/** + * + * Visitor pattern defines mechanism to apply operations + * (UnitVisitor) on nodes (Unit) in hierarchy. New operations + * can be added without altering the node interface. + * + */ +public class App +{ + public static void main( String[] args ) + { + + Commander commander = new Commander( + new Sergeant(new Soldier(), new Soldier(), new Soldier()), + new Sergeant(new Soldier(), new Soldier(), new Soldier())); + commander.accept(new SoldierVisitor()); + commander.accept(new SergeantVisitor()); + commander.accept(new CommanderVisitor()); + + } +} diff --git a/visitor/src/main/java/com/iluwatar/Commander.java b/visitor/src/main/java/com/iluwatar/visitor/Commander.java similarity index 87% rename from visitor/src/main/java/com/iluwatar/Commander.java rename to visitor/src/main/java/com/iluwatar/visitor/Commander.java index 6366abeafbf1..5ba51ea8969a 100644 --- a/visitor/src/main/java/com/iluwatar/Commander.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Commander.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -public class Commander extends Unit { - - public Commander(Unit ... children) { - super(children); - } - - @Override - public void accept(UnitVisitor visitor) { - visitor.visitCommander(this); - super.accept(visitor); - } - - @Override - public String toString() { - return "commander"; - } -} +package com.iluwatar.visitor; + +public class Commander extends Unit { + + public Commander(Unit ... children) { + super(children); + } + + @Override + public void accept(UnitVisitor visitor) { + visitor.visitCommander(this); + super.accept(visitor); + } + + @Override + public String toString() { + return "commander"; + } +} diff --git a/visitor/src/main/java/com/iluwatar/CommanderVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java similarity index 89% rename from visitor/src/main/java/com/iluwatar/CommanderVisitor.java rename to visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java index 63904aa2c99c..8cc2625058bb 100644 --- a/visitor/src/main/java/com/iluwatar/CommanderVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -public class CommanderVisitor implements UnitVisitor { - - @Override - public void visitSoldier(Soldier soldier) { - // TODO Auto-generated method stub - - } - - @Override - public void visitSergeant(Sergeant sergeant) { - // TODO Auto-generated method stub - - } - - @Override - public void visitCommander(Commander commander) { - System.out.println("Good to see you " + commander); - } - -} +package com.iluwatar.visitor; + +public class CommanderVisitor implements UnitVisitor { + + @Override + public void visitSoldier(Soldier soldier) { + // TODO Auto-generated method stub + + } + + @Override + public void visitSergeant(Sergeant sergeant) { + // TODO Auto-generated method stub + + } + + @Override + public void visitCommander(Commander commander) { + System.out.println("Good to see you " + commander); + } + +} diff --git a/visitor/src/main/java/com/iluwatar/Sergeant.java b/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java similarity index 87% rename from visitor/src/main/java/com/iluwatar/Sergeant.java rename to visitor/src/main/java/com/iluwatar/visitor/Sergeant.java index f56b3fc7aded..45d0b58f3029 100644 --- a/visitor/src/main/java/com/iluwatar/Sergeant.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -public class Sergeant extends Unit { - - public Sergeant(Unit ... children) { - super(children); - } - - @Override - public void accept(UnitVisitor visitor) { - visitor.visitSergeant(this); - super.accept(visitor); - } - - @Override - public String toString() { - return "sergeant"; - } -} +package com.iluwatar.visitor; + +public class Sergeant extends Unit { + + public Sergeant(Unit ... children) { + super(children); + } + + @Override + public void accept(UnitVisitor visitor) { + visitor.visitSergeant(this); + super.accept(visitor); + } + + @Override + public String toString() { + return "sergeant"; + } +} diff --git a/visitor/src/main/java/com/iluwatar/SergeantVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java similarity index 89% rename from visitor/src/main/java/com/iluwatar/SergeantVisitor.java rename to visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java index 5257ca4b577c..123db4d9c2bc 100644 --- a/visitor/src/main/java/com/iluwatar/SergeantVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -public class SergeantVisitor implements UnitVisitor { - - @Override - public void visitSoldier(Soldier soldier) { - // TODO Auto-generated method stub - - } - - @Override - public void visitSergeant(Sergeant sergeant) { - System.out.println("Hello " + sergeant); - } - - @Override - public void visitCommander(Commander commander) { - // TODO Auto-generated method stub - - } - -} +package com.iluwatar.visitor; + +public class SergeantVisitor implements UnitVisitor { + + @Override + public void visitSoldier(Soldier soldier) { + // TODO Auto-generated method stub + + } + + @Override + public void visitSergeant(Sergeant sergeant) { + System.out.println("Hello " + sergeant); + } + + @Override + public void visitCommander(Commander commander) { + // TODO Auto-generated method stub + + } + +} diff --git a/visitor/src/main/java/com/iluwatar/Soldier.java b/visitor/src/main/java/com/iluwatar/visitor/Soldier.java similarity index 87% rename from visitor/src/main/java/com/iluwatar/Soldier.java rename to visitor/src/main/java/com/iluwatar/visitor/Soldier.java index 45b9b1554937..b222df076a1f 100644 --- a/visitor/src/main/java/com/iluwatar/Soldier.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Soldier.java @@ -1,19 +1,19 @@ -package com.iluwatar; - -public class Soldier extends Unit { - - public Soldier(Unit ... children) { - super(children); - } - - @Override - public void accept(UnitVisitor visitor) { - visitor.visitSoldier(this); - super.accept(visitor); - } - - @Override - public String toString() { - return "soldier"; - } -} +package com.iluwatar.visitor; + +public class Soldier extends Unit { + + public Soldier(Unit ... children) { + super(children); + } + + @Override + public void accept(UnitVisitor visitor) { + visitor.visitSoldier(this); + super.accept(visitor); + } + + @Override + public String toString() { + return "soldier"; + } +} diff --git a/visitor/src/main/java/com/iluwatar/SoldierVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java similarity index 89% rename from visitor/src/main/java/com/iluwatar/SoldierVisitor.java rename to visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java index fd80d553c1c9..c6b73b76ed08 100644 --- a/visitor/src/main/java/com/iluwatar/SoldierVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java @@ -1,22 +1,22 @@ -package com.iluwatar; - -public class SoldierVisitor implements UnitVisitor { - - @Override - public void visitSoldier(Soldier soldier) { - System.out.println("Greetings " + soldier); - } - - @Override - public void visitSergeant(Sergeant sergeant) { - // TODO Auto-generated method stub - - } - - @Override - public void visitCommander(Commander commander) { - // TODO Auto-generated method stub - - } - -} +package com.iluwatar.visitor; + +public class SoldierVisitor implements UnitVisitor { + + @Override + public void visitSoldier(Soldier soldier) { + System.out.println("Greetings " + soldier); + } + + @Override + public void visitSergeant(Sergeant sergeant) { + // TODO Auto-generated method stub + + } + + @Override + public void visitCommander(Commander commander) { + // TODO Auto-generated method stub + + } + +} diff --git a/visitor/src/main/java/com/iluwatar/Unit.java b/visitor/src/main/java/com/iluwatar/visitor/Unit.java similarity index 87% rename from visitor/src/main/java/com/iluwatar/Unit.java rename to visitor/src/main/java/com/iluwatar/visitor/Unit.java index 32cc93ed321c..2eb324fb0643 100644 --- a/visitor/src/main/java/com/iluwatar/Unit.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Unit.java @@ -1,21 +1,21 @@ -package com.iluwatar; - -/** - * - * Interface for the nodes in hierarchy. - * - */ -public abstract class Unit { - - private Unit[] children; - - public Unit(Unit ... children) { - this.children = children; - } - - public void accept(UnitVisitor visitor) { - for (Unit child: children) { - child.accept(visitor); - } - } -} +package com.iluwatar.visitor; + +/** + * + * Interface for the nodes in hierarchy. + * + */ +public abstract class Unit { + + private Unit[] children; + + public Unit(Unit ... children) { + this.children = children; + } + + public void accept(UnitVisitor visitor) { + for (Unit child: children) { + child.accept(visitor); + } + } +} diff --git a/visitor/src/main/java/com/iluwatar/UnitVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java similarity index 84% rename from visitor/src/main/java/com/iluwatar/UnitVisitor.java rename to visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java index 298b9f8cbfc7..64cfce4b5f05 100644 --- a/visitor/src/main/java/com/iluwatar/UnitVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java @@ -1,14 +1,14 @@ -package com.iluwatar; - -/** - * - * Visitor interface. - * - */ -public interface UnitVisitor { - - void visitSoldier(Soldier soldier); - void visitSergeant(Sergeant sergeant); - void visitCommander(Commander commander); - -} +package com.iluwatar.visitor; + +/** + * + * Visitor interface. + * + */ +public interface UnitVisitor { + + void visitSoldier(Soldier soldier); + void visitSergeant(Sergeant sergeant); + void visitCommander(Commander commander); + +} diff --git a/visitor/visitor.iml b/visitor/visitor.iml new file mode 100644 index 000000000000..622a13cd7540 --- /dev/null +++ b/visitor/visitor.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file