From 60eb7a7a77d810e81afb368a61c1bdc029b2b81d Mon Sep 17 00:00:00 2001 From: Geeth Munasinghe Date: Tue, 2 Dec 2014 18:21:24 +0530 Subject: [PATCH] initial commit --- .gitignore | 9 + README.md | 3 + modules/distribution/INSTALL.txt | 46 ++ modules/distribution/LICENSE.txt | 541 ++++++++++++++++ modules/distribution/README.txt | 183 ++++++ modules/distribution/pom.xml | 272 ++++++++ modules/distribution/release-notes.html | 164 +++++ modules/distribution/src/assembly/bin.xml | 495 ++++++++++++++ modules/distribution/src/assembly/dist.xml | 37 ++ modules/distribution/src/assembly/docs.xml | 41 ++ .../src/assembly/filter.properties | 7 + modules/distribution/src/assembly/src.xml | 0 .../src/repository/database/WSO2EMM_DB.h2.db | Bin 0 -> 77824 bytes modules/features/org.wso2.emm.feature/pom.xml | 221 +++++++ .../org.wso2.emm.feature/resources/p2.inf | 6 + .../org.wso2.emm.styles.feature/pom.xml | 78 +++ modules/features/pom.xml | 47 ++ modules/integration/pom.xml | 36 ++ .../tests-common/admin-clients/pom.xml | 18 + .../integration-test-utils/pom.xml | 26 + modules/integration/tests-common/pom.xml | 34 + .../integration/tests-common/ui-pages/pom.xml | 48 ++ .../pages/EMMIntegrationUiBaseTestCase.java | 66 ++ .../integration/ui/pages/UIElementMapper.java | 65 ++ .../integration/ui/pages/home/HomePage.java | 53 ++ .../integration/ui/pages/login/LoginPage.java | 67 ++ .../src/main/resources/mapper.properties | 449 +++++++++++++ .../integration/tests-ui-integration/pom.xml | 257 ++++++++ .../ui/integration/test/LoginTestCase.java | 55 ++ .../src/test/resources/automation.xml | 222 +++++++ .../test/resources/automationXMLSchema.xsd | 611 ++++++++++++++++++ .../resources/axis2config/axis2_client.xml | 299 +++++++++ .../modules/addressing-1.6.1-wso2v10.mar | Bin 0 -> 31350 bytes ...sing-1.6.1-wso2v11-20140908.185829-596.mar | Bin 0 -> 31367 bytes .../client/modules/rampart-1.6.1-wso2v8.mar | Bin 0 -> 9708 bytes .../src/test/resources/emma.properties | 105 +++ .../src/test/resources/filters.txt | 17 + .../src/test/resources/instrumentation.txt | 11 + .../keystores/products/client-truststore.jks | Bin 0 -> 36522 bytes .../keystores/products/wso2carbon.jks | Bin 0 -> 33260 bytes .../resources/keystores/products/wso2emm.jks | Bin 0 -> 4993 bytes .../keystores/stratos/client-truststore.jks | Bin 0 -> 35240 bytes .../keystores/stratos/wso2carbon.jks | Bin 0 -> 33260 bytes .../resources/keystores/stratos/wso2emm.jks | Bin 0 -> 4993 bytes .../src/test/resources/log4j.properties | 43 ++ .../security/policies/scenario-config.xml | 201 ++++++ .../security/policies/scenario1-policy.xml | 51 ++ .../security/policies/scenario10-policy.xml | 127 ++++ .../security/policies/scenario11-policy.xml | 128 ++++ .../security/policies/scenario12-policy.xml | 123 ++++ .../security/policies/scenario13-policy.xml | 126 ++++ .../security/policies/scenario14-policy.xml | 133 ++++ .../security/policies/scenario15-policy.xml | 136 ++++ .../security/policies/scenario16-policy.xml | 87 +++ .../security/policies/scenario17-policy.xml | 93 +++ .../security/policies/scenario2-policy.xml | 74 +++ .../security/policies/scenario3-policy.xml | 72 +++ .../security/policies/scenario4-policy.xml | 72 +++ .../security/policies/scenario5-policy.xml | 82 +++ .../security/policies/scenario6-policy.xml | 75 +++ .../security/policies/scenario7-policy.xml | 82 +++ .../security/policies/scenario8-policy.xml | 85 +++ .../security/policies/scenario9-policy.xml | 127 ++++ .../src/test/resources/testng-server-mgt.xml | 17 + .../src/test/resources/testng.xml | 16 + modules/p2-profile-gen/pom.xml | 147 +++++ pom.xml | 35 + 67 files changed, 6721 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 modules/distribution/INSTALL.txt create mode 100644 modules/distribution/LICENSE.txt create mode 100644 modules/distribution/README.txt create mode 100644 modules/distribution/pom.xml create mode 100644 modules/distribution/release-notes.html create mode 100644 modules/distribution/src/assembly/bin.xml create mode 100644 modules/distribution/src/assembly/dist.xml create mode 100644 modules/distribution/src/assembly/docs.xml create mode 100644 modules/distribution/src/assembly/filter.properties create mode 100644 modules/distribution/src/assembly/src.xml create mode 100644 modules/distribution/src/repository/database/WSO2EMM_DB.h2.db create mode 100644 modules/features/org.wso2.emm.feature/pom.xml create mode 100644 modules/features/org.wso2.emm.feature/resources/p2.inf create mode 100644 modules/features/org.wso2.emm.styles.feature/pom.xml create mode 100644 modules/features/pom.xml create mode 100644 modules/integration/pom.xml create mode 100644 modules/integration/tests-common/admin-clients/pom.xml create mode 100644 modules/integration/tests-common/integration-test-utils/pom.xml create mode 100644 modules/integration/tests-common/pom.xml create mode 100644 modules/integration/tests-common/ui-pages/pom.xml create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/EMMIntegrationUiBaseTestCase.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/UIElementMapper.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/home/HomePage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/login/LoginPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties create mode 100644 modules/integration/tests-ui-integration/pom.xml create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginTestCase.java create mode 100644 modules/integration/tests-ui-integration/src/test/resources/automation.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd create mode 100644 modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v10.mar create mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v11-20140908.185829-596.mar create mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/rampart-1.6.1-wso2v8.mar create mode 100644 modules/integration/tests-ui-integration/src/test/resources/emma.properties create mode 100644 modules/integration/tests-ui-integration/src/test/resources/filters.txt create mode 100644 modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/products/client-truststore.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2carbon.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2carbon.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2emm.jks create mode 100644 modules/integration/tests-ui-integration/src/test/resources/log4j.properties create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario-config.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml create mode 100644 modules/integration/tests-ui-integration/src/test/resources/testng.xml create mode 100644 modules/p2-profile-gen/pom.xml create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..4b2db6d4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Ignore everything in this directory +target +.classpath +.settings +.project +*.iml +*.iws +*.ipr +.idea diff --git a/README.md b/README.md new file mode 100644 index 000000000..c3327e66d --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +product-cdm +=========== +WSO2 CONNECTED DEVICE MANAGER diff --git a/modules/distribution/INSTALL.txt b/modules/distribution/INSTALL.txt new file mode 100644 index 000000000..865c5d96e --- /dev/null +++ b/modules/distribution/INSTALL.txt @@ -0,0 +1,46 @@ +(1) Installing WSO2 Enterprise Mobility Management Solution ${product.version} + +Running the server +--------------- +1. The directory containing this INSTALL file will the root and it will be + treated as Carbon home directory and let it be CARBON_HOME. + +2. All the shell scripts and .bat files are available in CARBON_HOME/bin folder. + +3. To start WSO2 Enterprise Mobility Management Solution one can use either wso2server.sh or daemon.sh in all *nix + system & wso2server.bat file on Windows operating systems. + +4. Either of the following commands can be used to start WSO2 UES + i) ./wso2server.sh {console|start|stop|restart|status|dump|version} + ii) ./daemon.sh {console|start|stop|restart|status|dump} + iii) wso2server.bat {start|stop|version} + + Usage: wso2server.sh [command] + command: + --debug Start the server in remote debugging mode. + port: The remote debugging port. + --run Run the server + --start Start Carbon as a Unix daemon in the background + --console Start Carbon as a Unix daemon in the foreground + --stop Stop the Carbon Unix daemon + --status Get the status of the Carbon Unix daemon + --dump Print a thread dump of the Carbon Unix daemon + --restart Restart the Carbon Unix daemon + --version What version of the Carbon server are you running + --n Start Multiple Instances of the same server after you + have successfully installed the Multiple-instances features + from a feature repo. + +System Requirements +------------------- +1. Minimum memory - 2GB +2. The Management Console requires full Javascript enablement of the Web browser + NOTE: + On Windows Server 2003, it is not allowed to go below the medium security + level in Internet Explorer 6.x. + +For more details see +https://docs.wso2.org/display/EMM110/Prerequisites + + + diff --git a/modules/distribution/LICENSE.txt b/modules/distribution/LICENSE.txt new file mode 100644 index 000000000..a00fe531d --- /dev/null +++ b/modules/distribution/LICENSE.txt @@ -0,0 +1,541 @@ + +This product is licensed by WSO2 Inc. under Apache License 2.0. The license +can be downloaded from the following locations: + http://www.apache.org/licenses/LICENSE-2.0.html + http://www.apache.org/licenses/LICENSE-2.0.txt + +This product also contains software under different licenses. This table below +all the contained libraries (jar files) and the license under which they are +provided to you. + +At the bottom of this file is a table that shows what each license indicated +below is and where the actual text of the license can be found. + +Name Type License +--------------------------------------------------------------------------------------------------------- +abdera_1.0.0.wso2v3.jar bundle apache2 907 +activation-1.1.1.jar jarinbundle cddl1 552 +activation-1.1.jar jarinbundle cddl1 339 +addressing-1.6.1-wso2v10.mar bundle apache2 1916 +ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 +amber_0.22.1358727.wso2v3.jar bundle apache2 2067 +annogen_0.1.0.wso2v1.jar bundle apache2 942 +ant-contrib-1.0b3.jar jar apache2 549 +antlr_3.2.0.wso2v1.jar bundle bsd 838 +ant_1.7.0.wso2v1.jar bundle apache2 1012 +aopalliance-1.0.jar jar apache2 512 +authenticator_0.7.0.wso2v1.jar bundle apache2 700 +axiom_1.2.11.wso2v4.jar bundle apache2 722 +axis2-json_1.6.1.wso2v10.jar bundle apache2 2151 +axis2-transport-jms_1.1.0.wso2v9.jar bundle apache2 2167 +axis2-transport-rabbitmq-amqp_1.1.0.wso2v9.jar bundle apache2 3075 +axis2_1.6.1.wso2v10.jar bundle apache2 2198 +backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 +bcprov-jdk15-132.jar jar bouncy +bcmail-jdk15on_1.49.0.wso2v1.jar bundle bouncy 3473 +bcpkix-jdk15on_1.49.0.wso2v1.jar bundle bouncy 3472 +bcprov-jdk15on_1.49.0.wso2v1.jar bundle bouncy 3471 +carbon-cxf-1.0.1.jar jar apache2 697 +com.fasterxml.jackson.core.jackson-annotations_2.1.4.jar bundle apache2 917 +com.fasterxml.jackson.core.jackson-core_2.1.4.jar bundle apache2 916 +com.fasterxml.jackson.core.jackson-databind_2.1.4.jar bundle apache2 915 +com.google.gson_2.1.0.jar bundle apache2 379 +com.google.gson_2.2.4.jar bundle apache2 914 +com.googlecode.plist.dd-plist_1.8.0.jar bundle mit 913 +com.notnoop.apns.apns_0.2.3.jar bundle bsd3 912 +commons-beanutils-1.7.0.jar jarinbundle apache2 383 +commons-cli_1.2.0.wso2v1.jar bundle apache2 922 +commons-codec_1.4.0.wso2v1.jar bundle apache2 980 +commons-collections-3.2.0.wso2v1.jar bundle apache2 779 +commons-collections-3.2.1.jar bundle apache2 514 +commons-collections_3.2.0.wso2v1.jar bundle apache2 824 +commons-dbcp_1.4.0.wso2v1.jar bundle apache2 962 +commons-digester-1.8.jar jarinbundle apache2 384 +commons-fileupload_1.2.2.wso2v1.jar bundle apache2 830 +commons-httpclient_3.1.0.wso2v2.jar bundle apache2 760 +commons-io_2.0.0.wso2v2.jar bundle apache2 678 +commons-lang-2.6.0.wso2v1.jar bundle apache2 664 +commons-lang-2.6.jar bundle apache2 506 +commons-lang_2.6.0.wso2v1.jar bundle apache2 940 +commons-logging-1.1.1.jar jar apache2 274 +commons-pool_1.5.6.wso2v1.jar bundle apache2 1009 +commons-scxml-0.9.jar jarinbundle apache2 401 +commons-scxml_0.9.0.wso2v1.jar bundle apache2 1070 +compass_2.0.1.wso2v2.jar bundle apache2 897 +cors-filter_1.7.0.wso2v1.jar bundle apache2 2106 +cxf-bundle-2.7.6.jar bundle apache2 539 +cxf-xjc-boolean-2.6.2.jar jar apache2 540 +cxf-xjc-bug671-2.6.2.jar jar apache2 544 +cxf-xjc-dv-2.6.2.jar jar apache2 535 +cxf-xjc-runtime-2.6.2.jar bundle apache2 538 +cxf-xjc-ts-2.6.2.jar jar apache2 547 +ehcache-core-2.5.1.jar jar apache2 267 +ehcache_1.5.0.wso2v3.jar bundle apache2 852 +el-api-2.2.jar jar apache2 585 +el-impl_2.2.0.wso2v1.jar bundle cddl1 992 +gdata-core_1.47.0.wso2v1.jar bundle apache2 1481 +geronimo-jaxws_2.2_spec-1.0.jar bundle apache2 395 +geronimo-jms_1.1_spec-1.1.0.wso2v1.jar bundle apache2 661 +geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 +geronimo-stax-api_1.0_spec_1.0.1.wso2v1.jar bundle apache2 2108 +guava_12.0.0.wso2v1.jar bundle apache2 +guice_3.0.0.wso2v1.jar bundle apache2 1505 +h2-1.2.140-wso2v3.jar bundle epl1 +h2-database-engine_1.2.140.wso2v3.jar bundle epl1 697 +hazelcast_3.0.1.wso2v1.jar bundle apache2 2236 +httpasyncclient-4.0-beta3.jar jar apache2 280 +httpclient-4.1.1-wso2v1.jar bundle apache2 1476 +httpclient-4.2.5.jar jar apache2 548 +httpclient_4.1.1.wso2v1.jar bundle apache2 1345 +httpcore-4.2.4.jar jar apache2 533 +httpcore-nio-4.2.4.jar jar apache2 534 +httpcore_4.1.0.wso2v1.jar bundle apache2 1243 +httpcore_4.3.0.wso2v1.jar bundle apache2 2247 +icu4j-3.8.jar jarinbundle icu 321 +infinispan-core_5.1.2.wso2v1.jar bundle lgpl2 681 +java-property-utils_1.9.0.wso2v1.jar bundle apache2 2201 +javasysmon_0.3.3.wso2v1.jar bundle bsd 721 +javax.cache.wso2_4.2.0.jar bundle apache2 556 +javax.el_2.2.0.v201108011116.jar bundle cddl1 373 +javax.servlet.jsp_2.0.0.v200806031607.jar bundle sunbinary 410 +javax.servlet.jsp_2.2.0.v201112011158.jar bundle sunbinary 357 +javax.servlet_3.0.0.v201112011016.jar bundle sunbinary 287 +javax.servlet_3.0.0.wso2v1.jar bundle sunbinary 1281 +javax.ws.rs-api-2.0-m10.jar bundle cddl+gpl 263 +jaxb-impl-2.1.13.jar jar cddl+gpl 260 +jaxb-xjc-2.1.13.jar jar cddl+gpl 258 +jaxb_2.2.5.wso2v1.jar bundle cddl1 883 +jboss-logging_3.1.0.wso2v1.jar bundle lgpl2 880 +jboss-transaction-api_1.1_spec-1.0.0.Final.jar jar lgpl2 281 +jcip-annotations_1.0.0.wso2v1.jar bundle apache2 3470 +jdbc-pool_7.0.34.wso2v1.jar bundle apache2 924 +jdom_1.0.0.wso2v1.jar bundle apache2 693 +jericho-html-2.4.jar jarinbundle epl1 363 +jettison-1.3.4.jar bundle apache2 542 +jettison_1.3.4.wso2v1.jar bundle apache2 2162 +jgroups_3.0.6.wso2v1.jar bundle lgpl2 +jscep_2.0.2.wso2v1.jar bundle mit 3469 +json-simple_1.1.0.wso2v1.jar bundle apache2 828 +json_2.0.0.wso2v1.jar bundle apache2 971 +jsr107cache_1.1.0.wso2v3.jar bundle apache2 990 +jsr311-api-1.1.1.jar jarinbundle cddl1 553 +jstl_1.2.1.wso2v2.jar bundle cddl1 2204 +js_1.7.0.R4wso2v1.jar bundle mpl10 2199 +kaptcha_2.3.0.wso2v1.jar bundle apache2 854 +libthrift_0.8.0.wso2v1.jar bundle apache2 1117 +localizer-1.0.jar jarinbundle apache2 551 +mail-1.4.jar jarinbundle cddl1 338 +marshalling_1.3.6.wso2v1.jar bundle lgpl2 704 +maven-scm_1.7.0.wso2v2.jar bundle apache2 1331 +neethi-3.0.2.jar bundle apache2 262 +neethi_2.0.4.wso2v4.jar bundle apache2 937 +nekohtml-1.9.7.jar jarinbundle apache2 432 +opencsv-1.8.jar jarinbundle apache2 368 +opencsv_1.8.0.wso2v1.jar bundle apache2 928 +openid4java-nodeps_0.9.6.wso2v2.jar bundle apache2 1487 +opensaml-1.1.406.jar jarinbundle apache2 351 +opensaml-2.4.1.jar jarinbundle apache2 349 +opensaml2_2.4.1.wso2v1.jar bundle apache2 864 +openws-1.4.1.jar jarinbundle apache2 350 +openxri-client-1.2.0.jar jarinbundle apache2 433 +openxri-syntax-1.2.0.jar jarinbundle apache2 434 +org.apache.commons.codec_1.7.0.jar bundle apache2 911 +org.apache.commons.io_1.4.0.jar bundle apache2 910 +org.apache.felix.gogo.command_0.8.0.v201108120515.jar bundle apache2 342 +org.apache.felix.gogo.runtime_0.8.0.v201108120515.jar bundle apache2 360 +org.apache.felix.gogo.shell_0.8.0.v201110170705.jar bundle apache2 293 +org.apache.jasper.glassfish_2.2.2.v201205150955.jar bundle apache2 365 +org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar bundle epl1 374 +org.eclipse.core.expressions_3.4.401.v20120627-124442.jar bundle epl1 367 +org.eclipse.core.jobs_3.5.300.v20120622-204750.jar bundle epl1 308 +org.eclipse.core.runtime_3.8.0.v20120521-2346.jar bundle epl1 393 +org.eclipse.ecf.filetransfer_5.0.0.v20110531-2218.jar bundle epl1 391 +org.eclipse.ecf.identity_3.1.100.v20110531-2218.jar bundle epl1 356 +org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 +org.eclipse.ecf.provider.filetransfer_3.2.0.v20110531-2218.jar bundle epl1 305 +org.eclipse.ecf_3.1.300.v20110531-2218.jar bundle epl1 385 +org.eclipse.equinox.app_1.3.100.v20120522-1841.jar bundle epl1 290 +org.eclipse.equinox.common_3.6.100.v20120522-1841.jar bundle epl1 375 +org.eclipse.equinox.concurrent_1.0.300.v20120522-2049.jar bundle epl1 392 +org.eclipse.equinox.console_1.0.0.v20120522-1841.jar bundle epl1 335 +org.eclipse.equinox.ds_1.4.0.v20120522-1841.jar bundle epl1 295 +org.eclipse.equinox.frameworkadmin.equinox_1.0.400.v20120428-0117.jar bundle epl1 302 +org.eclipse.equinox.frameworkadmin_2.0.100.v20120606-175127.jar bundle epl1 307 +org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 +org.eclipse.equinox.http.servlet_1.1.300.v20120522-1841.jar bundle epl1 371 +org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 +org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar bundle epl1 362 +org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 +org.eclipse.equinox.p2.console_1.0.300.v20110502-1955.jar bundle epl1 310 +org.eclipse.equinox.p2.core_2.1.0.v20110502-1955.jar bundle epl1 382 +org.eclipse.equinox.p2.director.app_1.0.300.v20110505.jar bundle epl1 343 +org.eclipse.equinox.p2.directorywatcher_1.0.300.v20110502-1955.jar bundle epl1 336 +org.eclipse.equinox.p2.director_2.1.0.v20110504-1715.jar bundle epl1 300 +org.eclipse.equinox.p2.engine_2.1.0.v20110511.jar bundle epl1 387 +org.eclipse.equinox.p2.extensionlocation_1.2.100.v20110510.jar bundle epl1 378 +org.eclipse.equinox.p2.garbagecollector_1.0.200.v20110510.jar bundle epl1 353 +org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110502-1955.jar bundle epl1 341 +org.eclipse.equinox.p2.metadata.repository_1.2.0.v20110511-1359.jar bundle epl1 372 +org.eclipse.equinox.p2.metadata_2.1.0.v20110510.jar bundle epl1 345 +org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 +org.eclipse.equinox.p2.repository.tools_2.0.100.v20110512-1320.jar bundle epl1 361 +org.eclipse.equinox.p2.repository_2.1.0.v20110601.jar bundle epl1 297 +org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 +org.eclipse.equinox.p2.touchpoint.natives_1.0.300.v20110502-1955.jar bundle epl1 299 +org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 +org.eclipse.equinox.p2.updatechecker_1.1.200.v20110502-1955.jar bundle epl1 301 +org.eclipse.equinox.p2.updatesite_1.0.300.v20110510.jar bundle epl1 381 +org.eclipse.equinox.preferences_3.5.0.v20120522-1841.jar bundle epl1 358 +org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar bundle epl1 +org.eclipse.equinox.security_1.1.100.v20120522-1841.jar bundle epl1 340 +org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20110808-1657.jar bundle epl1 291 +org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635.jar bundle epl1 288 +org.eclipse.equinox.util_1.0.400.v20120522-2049.jar bundle epl1 294 +org.eclipse.osgi.services_3.3.100.v20120522-1822.jar bundle epl1 303 +org.eclipse.osgi_3.8.1.v20120830-144521.jar bundle epl1 370 +org.eclipse.wst.jsdt.debug.rhino.debugger_1.0.300.v201109150503.jar bundle epl1 558 +org.eclipse.wst.jsdt.debug.transport_1.0.100.v201109150330.jar bundle epl1 557 +org.jaggeryjs.hostobjects.db_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3066 +org.jaggeryjs.hostobjects.email_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3065 +org.jaggeryjs.hostobjects.feed_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3064 +org.jaggeryjs.hostobjects.file_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3063 +org.jaggeryjs.hostobjects.jaggeryparser_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3062 +org.jaggeryjs.hostobjects.log_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3061 +org.jaggeryjs.hostobjects.oauth_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3060 +org.jaggeryjs.hostobjects.process_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3059 +org.jaggeryjs.hostobjects.registry_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3058 +org.jaggeryjs.hostobjects.stream_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3057 +org.jaggeryjs.hostobjects.uri_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3056 +org.jaggeryjs.hostobjects.uuid_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3055 +org.jaggeryjs.hostobjects.web_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3054 +org.jaggeryjs.hostobjects.ws_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3053 +org.jaggeryjs.hostobjects.xhr_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3052 +org.jaggeryjs.hostobjects.xslt_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3051 +org.jaggeryjs.jaggery.app.mgt.stub_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3050 +org.jaggeryjs.jaggery.app.mgt.ui_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3049 +org.jaggeryjs.jaggery.app.mgt_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3048 +org.jaggeryjs.jaggery.core_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3047 +org.jaggeryjs.jaggery.deployer_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3046 +org.jaggeryjs.jaggery.tools_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3045 +org.jaggeryjs.scriptengine_0.9.0.ALPHA4_wso2v3.jar bundle apache2 3044 +org.sat4j.core_2.3.0.v20110329.jar bundle epl1+lgpl2380 +org.sat4j.pb_2.3.0.v20110329.jar bundle epl1+lgpl2359 +org.wso2.carbon.addressing_4.2.0.jar bundle apache2 2181 +org.wso2.carbon.apache.jasper.fragment_4.2.0.jar bundle apache2 2063 +org.wso2.carbon.apimgt.api_1.2.1.jar bundle apache2 2932 +org.wso2.carbon.apimgt.core_1.2.1.jar bundle apache2 2936 +org.wso2.carbon.apimgt.handlers.security.stub_4.2.0.jar bundle apache2 2001 +org.wso2.carbon.apimgt.hostobjects_1.2.1.jar bundle apache2 2933 +org.wso2.carbon.apimgt.impl_1.2.1.jar bundle apache2 2937 +org.wso2.carbon.apimgt.interceptor_1.2.1.jar bundle apache2 3468 +org.wso2.carbon.apimgt.keymgt.client_1.2.1.jar bundle apache2 2918 +org.wso2.carbon.apimgt.keymgt.stub_4.2.2.jar bundle apache2 2928 +org.wso2.carbon.apimgt.keymgt_1.2.1.jar bundle apache2 2935 +org.wso2.carbon.apimgt.startup.publisher_1.2.0.jar bundle apache2 2155 +org.wso2.carbon.apimgt.usage.client_1.2.0.jar bundle apache2 2158 +org.wso2.carbon.apimgt.usage.publisher_1.2.0.jar bundle apache2 2153 +org.wso2.carbon.application.deployer_4.2.0.jar bundle apache2 2090 +org.wso2.carbon.application.upload_4.2.0.jar bundle apache2 2177 +org.wso2.carbon.authenticator.proxy_4.2.0.jar bundle apache2 2245 +org.wso2.carbon.authenticator.stub_4.2.0.jar bundle apache2 2214 +org.wso2.carbon.bam.presentation.stub_4.2.0.jar bundle apache2 2165 +org.wso2.carbon.base_4.2.0.jar bundle apache2 2179 +org.wso2.carbon.bootstrap-4.2.0.jar bundle apache2 1913 +org.wso2.carbon.bridge-4.2.0.jar bundle apache2 1910 +org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 +org.wso2.carbon.claim.mgt.stub_4.2.0.jar bundle apache2 1985 +org.wso2.carbon.claim.mgt.ui_4.2.0.jar bundle apache2 2147 +org.wso2.carbon.claim.mgt_4.2.0.jar bundle apache2 1943 +org.wso2.carbon.cluster.mgt.core_4.2.0.jar bundle apache2 1955 +org.wso2.carbon.core.bootup.validator_4.2.0.jar bundle apache2 1967 +org.wso2.carbon.core.commons.stub_4.2.0.jar bundle apache2 2088 +org.wso2.carbon.core.common_4.2.0.jar bundle apache2 1922 +org.wso2.carbon.core.services._4.2.0.jar bundle apache2 2257 +org.wso2.carbon.core.services_4.2.0.jar bundle apache2 1928 +org.wso2.carbon.core_4.2.0.jar bundle apache2 2018 +org.wso2.carbon.databridge.datasink.cassandra_4.2.0.jar bundle apache2 2435 +org.wso2.carbon.email.verification.stub_4.2.0.jar bundle apache2 1933 +org.wso2.carbon.email.verification.ui_4.2.0.jar bundle apache2 1964 +org.wso2.carbon.email.verification_4.2.0.jar bundle apache2 2131 +org.wso2.carbon.event.admin_4.2.0.jar bundle apache2 2138 +org.wso2.carbon.event.client.stub_4.2.0.jar bundle apache2 2227 +org.wso2.carbon.event.client_4.2.0.jar bundle apache2 1961 +org.wso2.carbon.event.common_4.2.0.jar bundle apache2 2011 +org.wso2.carbon.event.core_4.2.1.jar bundle apache2 2213 +org.wso2.carbon.event.stub_4.2.0.jar bundle apache2 2464 +org.wso2.carbon.event.ui_4.2.0.jar bundle apache2 2400 +org.wso2.carbon.event.ws_4.2.1.jar bundle apache2 1986 +org.wso2.carbon.feature.mgt.core_4.2.0.jar bundle apache2 2145 +org.wso2.carbon.feature.mgt.services_4.2.0.jar bundle apache2 2184 +org.wso2.carbon.feature.mgt.stub_4.2.0.jar bundle apache2 2187 +org.wso2.carbon.feature.mgt.ui_4.2.0.jar bundle apache2 2141 +org.wso2.carbon.framework.exporter_4.2.0.jar bundle apache2 2100 +org.wso2.carbon.google.analytics.ui_2.2.0.jar bundle apache2 2061 +org.wso2.carbon.governance.api_4.2.1.jar bundle apache2 2219 +org.wso2.carbon.governance.client_4.2.0.jar bundle apache2 2237 +org.wso2.carbon.governance.custom.lifecycles.checklist.stub_4.2.0.jar bundle apache2 1978 +org.wso2.carbon.governance.custom.lifecycles.checklist.ui_4.2.0.jar bundle apache2 2086 +org.wso2.carbon.governance.custom.lifecycles.checklist_4.2.0.jar bundle apache2 1927 +org.wso2.carbon.governance.custom.lifecycles.history.ui_4.2.0.jar bundle apache2 1956 +org.wso2.carbon.governance.generic_4.2.0.jar bundle apache2 2172 +org.wso2.carbon.governance.lcm.stub_4.2.0.jar bundle apache2 2161 +org.wso2.carbon.governance.lcm.ui_4.2.0.jar bundle apache2 1930 +org.wso2.carbon.governance.lcm_4.2.0.jar bundle apache2 2034 +org.wso2.carbon.governance.list_4.2.0.jar bundle apache2 1988 +org.wso2.carbon.governance.registry.eventing_4.2.0.jar bundle apache2 2115 +org.wso2.carbon.governance.registry.extensions_4.2.0.jar bundle apache2 1994 +org.wso2.carbon.governance.wsdltool_4.2.0.jar bundle apache2 2118 +org.wso2.carbon.hostobjects.sso_4.2.0.jar bundle apache2 2182 +org.wso2.carbon.http.bridge-4.2.0.jar bundle apache2 1912 +org.wso2.carbon.i18n_4.2.0.jar bundle apache2 2004 +org.wso2.carbon.identity.application.authentication.framework_4.2.1.jar bundle apache2 1982 +org.wso2.carbon.identity.application.authenticator.basicauth_4.2.1.jar bundle apache2 2543 +org.wso2.carbon.identity.application.authenticator.samlsso_4.2.0.jar bundle apache2 2160 +org.wso2.carbon.identity.authentication_4.2.0.jar bundle apache2 2191 +org.wso2.carbon.identity.authenticator.saml2.sso.common_4.2.1.jar bundle apache2 2905 +org.wso2.carbon.identity.authenticator.saml2.sso.stub_4.2.0.jar bundle apache2 2241 +org.wso2.carbon.identity.authenticator.saml2.sso.ui_4.2.1.jar bundle apache2 2045 +org.wso2.carbon.identity.authenticator.saml2.sso_4.2.1.jar bundle apache2 2866 +org.wso2.carbon.identity.base_4.2.1.jar bundle apache2 2911 +org.wso2.carbon.identity.core_4.2.2.jar bundle apache2 2894 +org.wso2.carbon.identity.entitlement_4.2.0.jar bundle apache2 3276 +org.wso2.carbon.identity.menu.ui_4.2.0.jar bundle apache2 2028 +org.wso2.carbon.identity.oauth.common_4.2.2.jar bundle apache2 2867 +org.wso2.carbon.identity.oauth.stub_4.2.2.jar bundle apache2 2861 +org.wso2.carbon.identity.oauth.ui_4.2.2.jar bundle apache2 2857 +org.wso2.carbon.identity.oauth_4.2.2.jar bundle apache2 2886 +org.wso2.carbon.identity.provider.openid.stub_4.2.0.jar bundle apache2 2879 +org.wso2.carbon.identity.provider.openid.ui_4.2.0.jar bundle apache2 2859 +org.wso2.carbon.identity.provider.stub_4.2.0.jar bundle apache2 2884 +org.wso2.carbon.identity.provider.ui_4.2.0.jar bundle apache2 2901 +org.wso2.carbon.identity.provider_4.2.1.jar bundle apache2 2186 +org.wso2.carbon.identity.relyingparty.stub_4.2.0.jar bundle apache2 2902 +org.wso2.carbon.identity.relyingparty.ui_4.2.0.jar bundle apache2 2860 +org.wso2.carbon.identity.relyingparty_4.2.0.jar bundle apache2 2891 +org.wso2.carbon.identity.sso.saml.stub_4.2.1.jar bundle apache2 2887 +org.wso2.carbon.identity.sso.saml.ui_4.2.1.jar bundle apache2 2869 +org.wso2.carbon.identity.sso.saml_4.2.2.jar bundle apache2 2870 +org.wso2.carbon.identity.sts.mgt.stub_4.2.0.jar bundle apache2 2893 +org.wso2.carbon.identity.sts.mgt.ui_4.2.0.jar bundle apache2 2906 +org.wso2.carbon.identity.sts.mgt_4.2.0.jar bundle apache2 2057 +org.wso2.carbon.identity.sts.store_4.2.1.jar bundle apache2 2102 +org.wso2.carbon.identity.thrift.authentication_4.2.1.jar bundle apache2 1971 +org.wso2.carbon.identity.user.registration.stub_4.2.0.jar bundle apache2 1973 +org.wso2.carbon.identity.user.registration.ui_4.2.0.jar bundle apache2 2882 +org.wso2.carbon.identity.user.registration_4.2.1.jar bundle apache2 2881 +org.wso2.carbon.identity.user.store.configuration.deployer_4.2.0.jar bundle apache2 2176 +org.wso2.carbon.identity.user.store.configuration.stub_4.2.0.jar bundle apache2 2148 +org.wso2.carbon.identity.user.store.configuration.ui_4.2.0.jar bundle apache2 2207 +org.wso2.carbon.identity.user.store.configuration_4.2.1.jar bundle apache2 1980 +org.wso2.carbon.idp.mgt.stub_4.2.0.jar bundle apache2 2233 +org.wso2.carbon.idp.mgt.ui_4.2.0.jar bundle apache2 2128 +org.wso2.carbon.idp.mgt_4.2.1.jar bundle apache2 2139 +org.wso2.carbon.jasper.patch_4.2.0.jar bundle apache2 2043 +org.wso2.carbon.jaxws.webapp.deployer_4.2.0.jar bundle apache2 1924 +org.wso2.carbon.jaxws.webapp.mgt.ui_4.2.0.jar bundle apache2 2231 +org.wso2.carbon.jaxws.webapp.mgt_4.2.0.jar bundle apache2 2249 +org.wso2.carbon.keystore.mgt_2.2.1.jar bundle apache2 1919 +org.wso2.carbon.logging-4.2.0.jar bundle apache2 1914 +org.wso2.carbon.logging_4.2.0.jar bundle apache2 2054 +org.wso2.carbon.mashup.javascript.hostobjects.registry_4.2.0.jar bundle apache2 2120 +org.wso2.carbon.mashup.utils_4.2.0.jar bundle apache2 2216 +org.wso2.carbon.mediation.security.stub_4.2.0.jar bundle apache2 2650 +org.wso2.carbon.ndatasource.common_4.2.0.jar bundle apache2 2036 +org.wso2.carbon.ndatasource.core_4.2.0.jar bundle apache2 2238 +org.wso2.carbon.ndatasource.rdbms_4.2.0.jar bundle apache2 2062 +org.wso2.carbon.ntask.common_4.2.0.jar bundle apache2 2014 +org.wso2.carbon.ntask.core_4.2.2.jar bundle apache2 3166 +org.wso2.carbon.ntask.solutions_4.2.0.jar bundle apache2 2134 +org.wso2.carbon.osgi.security_4.2.0.jar bundle apache2 2053 +org.wso2.carbon.p2.touchpoint_4.2.0.jar bundle apache2 2051 +org.wso2.carbon.qpid.stub_4.2.0.jar bundle apache2 2126 +org.wso2.carbon.queuing_4.2.0.jar bundle apache2 2168 +org.wso2.carbon.redirector.servlet.stub_4.2.0.jar bundle apache2 2192 +org.wso2.carbon.redirector.servlet.ui_2.2.0.jar bundle apache2 2098 +org.wso2.carbon.redirector.servlet_2.2.1.jar bundle apache2 2031 +org.wso2.carbon.registry.admin.api_4.2.0.jar bundle apache2 2140 +org.wso2.carbon.registry.api_4.2.0.jar bundle apache2 1953 +org.wso2.carbon.registry.common.ui_4.2.0.jar bundle apache2 2070 +org.wso2.carbon.registry.common_4.2.1.jar bundle apache2 2085 +org.wso2.carbon.registry.core_4.2.0.jar bundle apache2 1952 +org.wso2.carbon.registry.eventing_4.2.1.jar bundle apache2 2107 +org.wso2.carbon.registry.extensions.stub_4.2.0.jar bundle apache2 2013 +org.wso2.carbon.registry.extensions.ui_4.2.0.jar bundle apache2 2208 +org.wso2.carbon.registry.extensions_4.2.0.jar bundle apache2 2020 +org.wso2.carbon.registry.indexing_4.2.1.jar bundle apache2 1970 +org.wso2.carbon.registry.info.stub_4.2.0.jar bundle apache2 1999 +org.wso2.carbon.registry.info.ui_4.2.0.jar bundle apache2 2055 +org.wso2.carbon.registry.info_4.2.0.jar bundle apache2 2246 +org.wso2.carbon.registry.properties.stub_4.2.0.jar bundle apache2 2220 +org.wso2.carbon.registry.properties.ui_4.2.0.jar bundle apache2 1992 +org.wso2.carbon.registry.properties_4.2.1.jar bundle apache2 2035 +org.wso2.carbon.registry.relations_4.2.0.jar bundle apache2 1929 +org.wso2.carbon.registry.resource.stub_4.2.0.jar bundle apache2 2125 +org.wso2.carbon.registry.resource.ui_4.2.1.jar bundle apache2 2111 +org.wso2.carbon.registry.resource_4.2.0.jar bundle apache2 1932 +org.wso2.carbon.registry.search.stub_4.2.0.jar bundle apache2 2121 +org.wso2.carbon.registry.search.ui_4.2.1.jar bundle apache2 2256 +org.wso2.carbon.registry.search_4.2.1.jar bundle apache2 2038 +org.wso2.carbon.registry.server_4.2.0.jar bundle apache2 1950 +org.wso2.carbon.registry.servlet_4.2.0.jar bundle apache2 2230 +org.wso2.carbon.registry.ws.api_4.2.0.jar bundle apache2 2255 +org.wso2.carbon.registry.ws.client_4.2.0.jar bundle apache2 2094 +org.wso2.carbon.registry.ws.stub_4.2.0.jar bundle apache2 2229 +org.wso2.carbon.remote-tasks.stub_4.2.0.jar bundle apache2 2234 +org.wso2.carbon.roles.mgt.stub_4.2.0.jar bundle apache2 2235 +org.wso2.carbon.roles.mgt.ui_4.2.0.jar bundle apache2 2096 +org.wso2.carbon.roles.mgt_4.2.0.jar bundle apache2 1996 +org.wso2.carbon.sample.installer_2.2.1.jar bundle apache2 2087 +org.wso2.carbon.securevault_4.2.0.jar bundle apache2 2022 +org.wso2.carbon.security.mgt.stub_4.2.0.jar bundle apache2 2048 +org.wso2.carbon.security.mgt.ui_4.2.0.jar bundle apache2 2175 +org.wso2.carbon.security.mgt_4.2.4.jar bundle apache2 2864 +org.wso2.carbon.sequences.stub_4.2.1.jar bundle apache2 2240 +org.wso2.carbon.server-4.2.0.jar bundle apache2 1915 +org.wso2.carbon.server.admin.common_4.2.0.jar bundle apache2 2037 +org.wso2.carbon.server.admin.stub_4.2.0.jar bundle apache2 1975 +org.wso2.carbon.server.admin.ui_4.2.0.jar bundle apache2 2064 +org.wso2.carbon.server.admin_4.2.0.jar bundle apache2 1981 +org.wso2.carbon.service.mgt_4.2.1.jar bundle apache2 2252 +org.wso2.carbon.servletbridge-4.2.0.jar bundle apache2 1911 +org.wso2.carbon.social_1.0.0.jar bundle apache2 3084 +org.wso2.carbon.sso.redirector.ui_2.2.0.jar bundle apache2 2144 +org.wso2.carbon.stratos.common.stub_4.2.0.jar bundle apache2 2253 +org.wso2.carbon.stratos.common_2.2.0.jar bundle apache2 2173 +org.wso2.carbon.stratos.landing.page.deployer_2.2.0.jar bundle apache2 2170 +org.wso2.carbon.sts_4.2.1.jar bundle apache2 2593 +org.wso2.carbon.tenant.dispatcher_2.2.0.jar bundle apache2 2103 +org.wso2.carbon.tenant.mgt.core_2.2.0.jar bundle apache2 2042 +org.wso2.carbon.tenant.mgt.stub_4.2.0.jar bundle apache2 2082 +org.wso2.carbon.tenant.mgt.ui_2.2.0.jar bundle apache2 2033 +org.wso2.carbon.tenant.mgt_2.2.0.jar bundle apache2 2065 +org.wso2.carbon.theme.mgt_2.2.0.jar bundle apache2 2099 +org.wso2.carbon.tomcat.ext_4.2.0.jar bundle apache2 2050 +org.wso2.carbon.tomcat.fragment.dummy_4.2.0.jar bundle apache2 2040 +org.wso2.carbon.tomcat.patch_4.2.0.jar bundle apache2 2129 +org.wso2.carbon.tomcat_4.2.0.jar bundle apache2 2178 +org.wso2.carbon.ui.menu.general_4.2.0.jar bundle apache2 2132 +org.wso2.carbon.ui.menu.governance_4.2.0.jar bundle apache2 2008 +org.wso2.carbon.ui.menu.registry_4.2.0.jar bundle apache2 1968 +org.wso2.carbon.ui_4.2.0.jar bundle apache2 2116 +org.wso2.carbon.um.ws.api.stub_4.2.0.jar bundle apache2 2499 +org.wso2.carbon.um.ws.api.stub_4.2.1.jar bundle apache2 2074 +org.wso2.carbon.um.ws.api_4.2.1.jar bundle apache2 2164 +org.wso2.carbon.um.ws.service_4.2.1.jar bundle apache2 2190 +org.wso2.carbon.user.api_4.2.0.jar bundle apache2 2243 +org.wso2.carbon.user.core_4.2.0.jar bundle apache2 2044 +org.wso2.carbon.user.mgt.common_4.2.0.jar bundle apache2 2078 +org.wso2.carbon.user.mgt.stub_4.2.0.jar bundle apache2 2068 +org.wso2.carbon.user.mgt.ui_4.2.0.jar bundle apache2 1977 +org.wso2.carbon.user.mgt_4.2.1.jar bundle apache2 2092 +org.wso2.carbon.utils_4.2.0.jar bundle apache2 2163 +org.wso2.carbon.webapp.deployer_4.2.0.jar bundle apache2 2084 +org.wso2.carbon.webapp.list.ui_4.2.0.jar bundle apache2 2119 +org.wso2.carbon.webapp.mgt.stub_4.2.0.jar bundle apache2 2083 +org.wso2.carbon.webapp.mgt_4.2.2.jar bundle apache2 2898 +org.wso2.ciphertool-1.0.0-wso2v2.jar bundle apache2 666 +org.wso2.emm.admin.styles_1.1.0.jar bundle apache2 3467 +org.wso2.emm.gcm_1.1.0.jar bundle apache2 3466 +org.wso2.emm.task_1.1.0.jar bundle apache2 3465 +org.wso2.emm.utils_1.1.0.jar bundle apache2 3464 +org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 +org.wso2.store.admin.styles_1.0.0.jar bundle apache2 2519 +org.wso2.store.jaggery-scxml-executors_1.0.0.jar bundle apache2 3082 +org.wso2.store.sso.common_1.0.0.jar bundle apache2 2520 +org.wso2.stratos.identity.saml2.sso.mgt.ui_2.2.0.jar bundle apache2 2516 +org.wso2.stratos.identity.saml2.sso.mgt_2.2.0.jar bundle apache2 2523 +pdepublishing-ant.jar jar epl1 524 +pdepublishing.jar jar epl1 525 +poi-ooxml-3.9.0.wso2v1.jar bundle apache2 2917 +poi-ooxml_3.9.0.wso2v1.jar bundle apache2 1947 +poi-scratchpad_3.9.0.wso2v1.jar bundle apache2 2205 +poi_3.9.0.wso2v1.jar bundle apache2 2017 +quartz_2.1.1.wso2v1.jar bundle apache2 975 +rampart-core_1.6.1.wso2v12.jar bundle apache2 2764 +rampart-policy_1.6.1.wso2v12.jar bundle apache2 2751 +rampart-trust_1.6.1.wso2v12.jar bundle apache2 2726 +rome_0.9.0.wso2v1.jar bundle apache2 930 +saxon.bps_9.0.0.x-wso2v1.jar bundle mpl11 985 +scribe-1.3.1.jar jarinbundle mit 386 +slf4j.api_1.6.1.jar bundle mit 354 +slf4j.api_1.7.7.jar bundle mit 909 +slf4j.log4j12_1.6.1.jar bundle mit 346 +slf4j_1.5.10.wso2v1.jar bundle mit 1429 +smack_3.0.4.wso2v1.jar bundle apache2 1493 +solr_1.4.1.wso2v1.jar bundle apache2 1474 +spring-aop-3.0.7.RELEASE.jar bundle apache2 279 +spring-asm-3.0.7.RELEASE.jar bundle apache2 261 +spring-beans-3.0.7.RELEASE.jar bundle apache2 275 +spring-context-3.0.7.RELEASE.jar bundle apache2 273 +spring-core-3.0.7.RELEASE.jar bundle apache2 270 +spring-expression-3.0.7.RELEASE.jar bundle apache2 272 +spring-web-3.0.7.RELEASE.jar bundle apache2 268 +spring.framework_3.1.0.wso2v1.jar bundle apache2 941 +stax2-api-3.1.1.jar bundle bsd 545 +step2-common-1.0.0-wso2v2.jar bundle apache2 2909 +step2-consumer-1.0.0-wso2v2.jar bundle apache2 2908 +step2_1.0.0.wso2v2.jar bundle apache2 2907 +tcpmon-1.0.jar jar bsd 255 +tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 +tomcat-ha_7.0.34.wso2v1.jar bundle apache2 921 +tomcat_7.0.34.wso2v1.jar bundle apache2 751 +tomcat-juli-7.0.34.jar bundle apache2 +tribes_7.0.34.wso2v1.jar bundle apache2 1963 +uddi4j-1.0.1.jar jarinbundle ibmpl 406 +velocity-1.7.jar bundle apache2 509 +wadl-core_1.1.3.wso2v2.jar bundle apache2 1954 +woden_1.0.0.M8-wso2v1.jar bundle apache2 902 +woodstox-core-asl-4.2.0.jar bundle apache2 537 +wsdl-validator_1.2.0.wso2v1.jar bundle epl1 1175 +wsdl4j-1.6.3.jar jar cpl1 276 +wsdl4j_1.6.2.wso2v4.jar bundle apache2 745 +wso2-uri-templates_1.6.2.jar bundle apache2 364 +wss4j-1.6.11.jar bundle apache2 543 +wss4j_1.5.11.wso2v6.jar bundle apache2 1984 +xalan-2.7.1.wso2v1.jar bundle apache2 659 +xercesImpl-2.8.1.wso2v2.jar bundle apache2 663 +xml-apis-1.3.04.wso2v2.jar bundle apache2 662 +xml-resolver-1.2.jar jar apache2 278 +xmlbeans-2.3.0.jar jarinbundle apache2 344 +xmlbeans_2.3.0.wso2v1.jar bundle apache2 749 +xmlschema-core-2.0.3.jar bundle apache2 269 +XmlSchema_1.4.7.wso2v2.jar bundle apache2 789 +xmlsec-1.5.5.jar bundle apache2 536 +xmltooling-1.3.1.jar jarinbundle apache2 348 + + + +The license types used by the above libraries and their information is given below: + +epl1 Eclipse Public License + http://www.eclipse.org/legal/epl-v10.html +ibmpl IBM Public License 1.0 + http://www.ibm.com/developerworks/library/os-ipl.html +lgpl2 Lesser GPL v2.1 + http://www.opensource.org/licenses/lgpl-2.1.php +icu ICU License + http://source.icu-project.org/repos/icu/icu/trunk/license.html +mpl11 Mozilla Public License 1.0 + http://www.mozilla.org/MPL/MPL-1.1.html +mpl10 Mozilla Public License 1.0 + http://www.mozilla.org/MPL/ +mit MIT License + http://www.opensource.org/licenses/mit-license.php +cddl1 Common Development and Distribution License + http://www.opensource.org/licenses/cddl1.php +cddl+gpl CDDL + GPLv2 + https://glassfish.dev.java.net/public/CDDL+GPL.html +cpl1 Common Public License + http://opensource.org/licenses/cpl1.0.php +epl1+lgpl2 EPL1 + LGPL2 + http://www.eclipse.org/legal/epl-v10.html + http://www.gnu.org/licenses/licenses.html +apache2 Apache License Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.html +sunbinary Binary Code License Agreement + https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewLicense-Start?LicenseUUID=mtrACUFBzm4AAAEYkcI5AXh_&ProductUUID=zFnACUFBlVoAAAEYhxc5AXt. +bsd Berkeley License + http://www.opensource.org/licenses/bsd-license.php +bouncy Bouncy Castle License + http://www.bouncycastle.org/licence.html +bsd3 BSD-3 + http://opensource.org/licenses/BSD-3-Clause diff --git a/modules/distribution/README.txt b/modules/distribution/README.txt new file mode 100644 index 000000000..ad0b5e103 --- /dev/null +++ b/modules/distribution/README.txt @@ -0,0 +1,183 @@ +WSO2 Enterprise Mobility Manager (EMM) +---------------------- +Welcome to the WSO2 Enterprise Mobility Manager (EMM) ${product.version} release +======= + +Key Features +------------ +1. Self-service device enrollment and management with end-user MDM console +2. Policy-driven device management for security, data, and device features (Camera, Password Policy) +3. Deploy policies over-the-air +4. Compliance monitoring for reporting, alerting, and device deprovisioning +5. Role based permissions for device management +6. Provisioning and deprovisioning applications to enrolled devices +7. Blacklisting of applications for Android +8. Supports App management +9. App approval process through a lifecycle +10. Discover mobile apps through an Enterprise App Store +11. Self-provisioning of mobile apps to devices + + +Installation & Running +---------------------- +1. extract the downloaded zip file +2. Run the wso2server.sh or wso2server.bat file in the bin directory +3. Once the server starts, point your Web browser to + https://localhost:9443/ + +For more details, see the Installation Guide + +System Requirements +------------------- + +1. Minimum memory - 2GB +2. Portal app requires full Javascript enablement of the Web browser + +For more details see +https://docs.wso2.org/display/EMM110/Prerequisites + +For known issues see +https://wso2.org/jira/issues/?filter=11791 + +WSO2 Enterprise Mobility Manager (EMM) Binary Distribution Directory Structure +----------------------------------------------------- + + EMM_HOME + . + ├── bin //executables + ├── dbscripts //DBScripts + ├── INSTALL.txt + ├── lib + ├── LICENSE.txt + ├── modules //Jaggery Modules + ├── README.txt + ├── release-notes.html + ├── repository // repository + ├── tmp + ├── webapp-mode + + + - bin + Contains various scripts .sh & .bat scripts. + + - dbscripts + Contains the database creation & seed data population SQL scripts for + various supported databases. + + - lib + Contains the basic set of libraries required to startup WSO2 Enterprise Mobility Manager + in standalone mode + + - repository + The repository where Carbon artifacts & Axis2 services and + modules deployed in WSO2 Carbon are stored. + In addition to this other custom deployers such as + dataservices and axis1services are also stored. + + - carbonapps + Carbon Application hot deployment directory. + + - components + Contains all OSGi related libraries and configurations. + + - conf + Contains server configuration files. Ex: axis2.xml, carbon.xml + + - data + Contains internal LDAP related data. + + - database + Contains the WSO2 Registry & User Manager database. + + - deployment + Contains server side and client side Axis2 repositories. + All deployment artifacts should go into this directory. + + - logs + Contains all log files created during execution. + + - resources + Contains additional resources that may be required. + + - tenants + Directory will contain relevant tenant artifacts + in the case of a multitenant deployment. + + - tmp + Used for storing temporary files, and is pointed to by the + java.io.tmpdir System property. + + - webapp-mode + The user has the option of running WSO2 Carbon in webapp mode (hosted as a web-app in an application server). + This directory contains files required to run Carbon in webapp mode. + + - LICENSE.txt + Apache License 2.0 under which WSO2 Carbon is distributed. + + - README.txt + This document. + + - INSTALL.txt + This document contains information on installing WSO2 Enterprise Mobility Manager. + + - release-notes.html + Release information for WSO2 Enterprise Mobility Manager ${product.version} + +Secure sensitive information in carbon configuration files +---------------------------------------------------------- + +There are sensitive information such as passwords in the carbon configuration. +You can secure them by using secure vault. Please go through following steps to +secure them with default mode. + +1. Configure secure vault with default configurations by running ciphertool + script from bin directory. + +> ciphertool.sh -Dconfigure (in UNIX) + +This script would do following configurations that you need to do by manually + +(i) Replaces sensitive elements in configuration files, that have been defined in + cipher-tool.properties, with alias token values. +(ii) Encrypts plain text password which is defined in cipher-text.properties file. +(iii) Updates secret-conf.properties file with default keystore and callback class. + +cipher-tool.properties, cipher-text.properties and secret-conf.properties files + can be found at repository/conf/security directory. + +2. Start server by running wso2server script from bin directory + +> wso2server.sh (in UNIX) + +By default mode, it would ask you to enter the master password +(By default, master password is the password of carbon keystore and private key) + +3. Change any password by running ciphertool script from bin directory. + +> ciphertool -Dchange (in UNIX) + +For more details see +http://docs.wso2.org/wiki/display/Carbon410/WSO2+Carbon+Secure+Vault + +Training +-------- + +WSO2 Inc. offers a variety of professional Training Programs, including +training on general Web services as well as WSO2 Enterprise Store, Apache Axis2, +Data Services and a number of other products. + +For additional support information please refer to +http://wso2.com/training/ + + +Support +------- + +We are committed to ensuring that your enterprise middleware deployment is completely supported +from evaluation to production. Our unique approach ensures that all support leverages our open +development methodology and is provided by the very same engineers who build the technology. + +For additional support information please refer to http://wso2.com/support/ + +--------------------------------------------------------------------------- +(c) Copyright 2013 WSO2 Inc. diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml new file mode 100644 index 000000000..71d516bb1 --- /dev/null +++ b/modules/distribution/pom.xml @@ -0,0 +1,272 @@ + + + + + org.wso2.carbon + wso2cdm-parent + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + wso2emm + jar + WSO2 Connected Device Manager (CDM) - Distribution + WSO2 Connected Device Manager (CDM) Distribution + + + + org.apache.shindig + shindig-server + 2.5.0-beta5 + war + + + javax.el + el-api + 2.2 + + + + + + + org.codehaus.mojo + buildnumber-maven-plugin + ${maven-buildnumber-plugin.version} + + {0,date,dd MMM yyyy} + + timestamp + + false + false + + + + validate + + create + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + false + + + 2-unpack-wso2carbon + package + + unpack + + + + + org.wso2.carbon + wso2carbon-core + ${carbon.kernal.version} + zip + true + target + + + org.apache.shindig + shindig-server + 2.5.0-beta5 + war + true + target/shindig + + + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + + 3-extract-docs-from-components + package + + run + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + og4j.logger.net.sf.ehcache=ERROR + + + + + + + + + copy_modules_apps + package + + + + + + + + + + + + + + + + + + + + + + + run + + + + clean_target + install + + + + + + + + + + + + + + + + + + + run + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + 1-pre-dist + test + + + attached + + + + ${basedir}/src/assembly/filter.properties + + + ${basedir}/src/assembly/dist.xml + + + + + + 2-dist + package + + attached + + + + ${basedir}/src/assembly/filter.properties + + + ${basedir}/src/assembly/bin.xml + + + + + + + + + org.apache.maven.plugins + maven-clean-plugin + + + auto-clean + initialize + + clean + + + + + + + + diff --git a/modules/distribution/release-notes.html b/modules/distribution/release-notes.html new file mode 100644 index 000000000..4b8a099f7 --- /dev/null +++ b/modules/distribution/release-notes.html @@ -0,0 +1,164 @@ + + + + + WSO2 Enterprise Mobility Manager ${product.version} Release Notes + + + + +

Enterprise Mobility Manager ${product.version} Release Notes

+ +

+ WSO2 Enterprise Mobility Manager (EMM) is a unique solution designed to specifically address the mobile enterprise needs. EMM includes of two key aspects: + Mobile Device Management (MDM) and Mobile Application Management (MAM). WSO2 EMM also supports single sign-on (SSO) and multi-tenancy. +

+

+ EMM enables organizations to secure, manage and monitor Android and iOS powered devices (i.e., smart phones, ipod touch devices and tablet PCs), irrespective of the mobile operator, service provider, or the organization. Users need to accept the Policy agreement, which states all the actions that can be carried out on the device when enrolling with EMM. EMM only controls the corporate data that is present on the devices, while the personal data is left untouched. +

+ +

+ What is new in this release +

+

+ First user experience +

+

+ In the previous WSO2 EMM releases it was mandatory for the users to fully configure WSO2 EMM before being able to run the product. Now, WSO2 EMM 1.1.0 + binary pack comprises of a default Android Agent. Thereby, enabling users to seamlessly download and run EMM without any prior configurations. This will + allow users to use Android devices to get a better understanding of WSO2 EMM. +

+

+ Local notification method for Android devices +

+

+ The GCM server has a limitation on the number of messages that can be sent to the GCM server. However, this new Local notification method for Android + devices does not make use of the GCM server. Thereby, the number of messages sent via the GCM will be minimized. Furthermore, the Local notification method + does not send the messages via the payload, as it did in previous EMM versions. Thereby, this will minimize the MDM command loss. +

+

+ Tenant based configuration +

+

+ The tenant admin will be able to use the Configuration Manager wizard to setup the tenant's general, Android and iOS configuration details. Thereby, this + allows each tenant to customize their settings based on their requirements. For more information, see Tenant Based Settings. +

+

+ Ability to change password +

+

+ Previously, users were not allowed to change the default password that was assigned by WSO2 EMM. However, now users are allowed to change their password. + Thereby, users will be able to change their default password to a password of their choice. +

+

+ Removal of devices from WSO2 EMM +

+

+ Previously, administrators were not allowed to remove devices from WSO2 EMM after they were enrolled. However, now the administrators can use the + Enterprise Wipe feature to remove enrolled devices from WSO2 EMM. Thereby, this will enable the administrators to maintain WSO2 EMM efficiently. +

+

+ Improved API security +

+

+ The APIs that are exposed to the devices have been secured in WSO2 EMM using OAuth. +

+

+ Improved compliance monitoring +

+

+ When the system is clustered, then using the nTask Component, only one node will be allowed to perform the compliance monitoring that will dispatch + messages to the GCM or APNS. +

+ +

Features

+ + +

+ Bug Fixes / Improvements +

+

+ For the list of fixed issues, go to WSO2 EMM 1.1.0 - Fixed Issues. +

+

+ Known Issues +

+

+ For the list of known issues, go to WSO2 EMM 1.1.0 - Known Issues. +

+

+ Reporting Problems +

+

+ Issues can be reported using the public JIRA. +

+

+ Engaging with Community +

+

+ Mailing Lists +

+

+ Join our mailing list and correspond with the developers directly. +

+

+ Developer List : dev@wso2.org | Subscribe | Mail Archive +

+

+ Reporting Issues +

+

+ WSO2 encourages you to report issues, enhancements and feature requests for WSO2 EMM. Use the issue tracker + for reporting issues. +

+

+ Discussion Forums +

+

+ We encourage to use stackoverflow to engage with developers as well as other users. +

+

+ Support +

+

+ We are committed to ensuring that your enterprise middleware deployment is completely supported from evaluation to production. Our unique approach ensures + that all support leverages our open development methodology and is provided by the very same engineers who build the technology. +

+

+ For additional support information please refer to http://wso2.com/support/ +

+

+ We welcome your feedback and would love to hear your thoughts on this release of WSO2 EMM. +

+

+ --WSO2 EMM Development Team-- +

+ + diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml new file mode 100644 index 000000000..96440fc22 --- /dev/null +++ b/modules/distribution/src/assembly/bin.xml @@ -0,0 +1,495 @@ + + + + zip + + false + + + + target/wso2carbon-core-${carbon.kernal.version} + wso2emm-${pom.version} + + **/*.sh + **/README* + **/LICENSE* + **/INSTALL* + **/release-notes.html + **/axis2services/sample01.aar + **/axis2services/echo/** + **/axis2services/version/** + **/pom.xml + **/version.txt + **/carbon.xml + **/user-mgt.xml + **/registry.xml + **/axis2/axis2.xml + + **/master-datasources.xml + **/org.wso2.carbon.identity.relyingparty.ui-3.1.0.SNAPSHOT.jar + **/org.wso2.carbon.identity.user.registration.ui-3.1.0.SNAPSHOT.jar + **/log4j.properties + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/lib/runtimes + wso2emm-${pom.version}/lib/runtimes/ + + */** + + + + target/wso2carbon-core-${carbon.kernal.version} + wso2emm-${pom.version} + + **/*.sh + + 755 + + + + ../p2-profile-gen/target/wso2carbon-core-4.3.0/dbscripts/identity/ + + wso2emm-${pom.version}/dbscripts/identity + + **/**.sql + + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/multitenancy/ + + wso2emm-${pom.version}/repository/conf/multitenancy + + **/stratos.xml + **/multitenancy-packages.xml + **/usage-throttling-agent-config.xml + **/cloud-services-desc.xml + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/multitenancy/ + + wso2emm-${pom.version}/repository/conf + + **/tenant-mgt.xml + + + + + src/repository/resources/styles/css + wso2emm-${pom.version}/resources/allthemes/Default/admin + + **/**.css + + + + src/repository/resources/styles/images + wso2emm-${pom.version}/resources/allthemes/Default/images + + **/**.gif + **/**.png + + + + + + + target/site + wso2emm-${pom.version}/docs + 755 + + + + src/repository/resources/stratos_root + wso2emm-${pom.version}/repository/deployment/server/webapps/STRATOS_ROOT + 755 + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/modules + ${pom.artifactId}-${pom.version}/modules/ + + */** + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/deployment/server/jaggeryapps + + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/ + + + */** + + + **/social/ + **/fakepublisher/ + **/fakestore/ + + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/deployment/server/webapps + + ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps + + oauth2.war + + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/deployment/server/webapps + + ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps + + authenticationendpoint.war + + + + src/repository/conf + wso2emm-${pom.version}/repository/conf + + **/api-manager.xml + **/sso-idp-config.xml + **/emm-config.xml + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/security/ + + wso2emm-${pom.version}/repository/conf/security/ + + **/entitlement.properties + **/trusted-idp-config.xml + + + + src/repository/conf/datasources + wso2emm-${pom.version}/repository/conf/datasources + + **/master-datasources.xml + + + + src/repository/resources + wso2emm-${pom.version}/repository/resources + + */** + + + + + src/repository/conf/data-bridge + wso2emm-${pom.version}/repository/conf/data-bridge + 755 + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.version}/lib/runtimes + wso2emm-${pom.version}/lib/runtimes/ + + */** + + + + src/repository/dbscripts/storage + wso2emm-${pom.version}/dbscripts/storage + + */** + + + + src/repository/dbscripts/apimgt + wso2emm-${pom.version}/dbscripts/apimgt + + */** + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/dbscripts/service-provider + + wso2emm-${pom.version}/dbscripts/service-provider + + */** + + + + + ../apps/productapipublisher/ + + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/productapipublisher + + + + ../apps/productapistore/ + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/productapistore + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/modules + wso2emm-${pom.version}/modules/ + + */** + + + + + + + src/repository/dbscripts/ + wso2emm-${pom.version}/dbscripts + + */** + + + + + + + + wso2emm-${pom.version}/lib/endorsed + + javax.el:el-api:jar + + + + wso2emm-${pom.version}/repository/deployment/client/modules + + + org.hibernate.wso2:hibernate:jar + org.apache.rampart:rampart:mar + + + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/tomcat/webapp-classloading.xml + + wso2emm-${pom.version}/repository/conf/tomcat + true + 644 + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/tomcat/webapp-classloading-environments.xml + + wso2emm-${pom.version}/repository/conf/tomcat + true + 644 + + + src/repository/conf/tomcat/context.xml + wso2emm-${pom.version}/repository/conf/tomcat + true + 644 + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/event-broker.xml + + wso2emm-${pom.version}/repository/conf/ + true + 644 + + + + INSTALL.txt + wso2emm-${pom.version} + true + 644 + + + README.txt + wso2emm-${pom.version} + true + 644 + + + LICENSE.txt + wso2emm-${pom.version} + true + 644 + + + release-notes.html + wso2emm-${pom.version} + true + 644 + + + target/wso2carbon-core-${carbon.kernal.version}/bin/README.txt + wso2emm-${pom.version}/bin/ + true + 644 + + + target/wso2carbon-core-${carbon.kernal.version}/bin/version.txt + wso2emm-${pom.version}/bin/ + true + 644 + + + src/repository/conf/carbon.xml + wso2emm-${pom.version}/repository/conf/ + true + + + src/repository/conf/registry.xml + wso2emm-${pom.version}/repository/conf/ + true + + + + src/repository/conf/wso2emm.jks + wso2emm-${pom.version}/repository/resources/security + true + + + + src/repository/conf/cipher-tool.properties + wso2emm-${pom.version}/repository/conf/security/ + true + + + + src/repository/resources/policies/xacml/default/admin.xml + wso2emm-${pom.version}/repository/resources/security/policies/xacml/default + + true + + + + src/repository/conf/log4j.properties + wso2emm-${pom.version}/repository/conf/ + true + + + src/repository/conf/multitenancy/cloud-services-desc.xml + wso2emm-${pom.version}/repository/conf/multitenancy/ + true + + + src/repository/conf/axis2/axis2.xml + wso2emm-${pom.version}/repository/conf/axis2/ + true + 644 + + + src/repository/conf/application-authenticators.xml + wso2emm-${pom.version}/repository/conf/security/ + true + 644 + + + target/wso2carbon-core-${carbon.kernal.version}/repository/conf/README + wso2emm-${pom.version}/repository/conf/ + true + 644 + + + src/repository/conf/identity.xml + wso2emm-${pom.version}/repository/conf + 644 + + + src/repository/database/WSO2EMM_DB.h2.db + wso2emm-${pom.version}/repository/database + 644 + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/user-mgt.xml + + wso2emm-${pom.version}/repository/conf/ + true + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0001/lib/org.wso2.carbon.server-${carbon.kernal.version}.jar + + ${pom.artifactId}-${pom.version}/lib/ + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0001/dbscripts/db2.sql + ${pom.artifactId}-${pom.version}/dbscripts/ + 644 + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0001/dbscripts/mysql.sql + + ${pom.artifactId}-${pom.version}/dbscripts/ + 644 + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0003/dbscripts/mysql_cluster.sql + + ${pom.artifactId}-${pom.version}/dbscripts/ + 644 + + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0002/repository/conf/security/cipher-text.properties + + ${pom.artifactId}-${pom.version}/repository/conf/security/ + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0002/repository/conf/security/cipher-tool.properties + + ${pom.artifactId}-${pom.version}/repository/conf/security/ + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0002/repository/conf/axis2/axis2.xml + + ${pom.artifactId}-${pom.version}/repository/conf/axis2/ + true + 644 + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0002/repository/conf/axis2/tenant-axis2.xml + + ${pom.artifactId}-${pom.version}/repository/conf/axis2/ + true + 644 + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0002/repository/conf/axis2/axis2_client.xml + + ${pom.artifactId}-${pom.version}/repository/conf/axis2/ + true + 644 + + + + ../p2-profile-gen/target/WSO2-CARBON-PATCH-${carbon.kernal.version}-0004/repository/conf/carbon.xml + + ${pom.artifactId}-${pom.version}/repository/conf/ + true + 644 + + + + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/conf/etc/tasks-config.xml + + wso2emm-${pom.version}/repository/conf/etc + + + + + diff --git a/modules/distribution/src/assembly/dist.xml b/modules/distribution/src/assembly/dist.xml new file mode 100644 index 000000000..d94b44651 --- /dev/null +++ b/modules/distribution/src/assembly/dist.xml @@ -0,0 +1,37 @@ + + + + zip + + + false + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernal.version}/repository/components + wso2emm-${pom.version}/repository/components + + **/eclipse.ini + **/*.lock + **/.data + **/.settings + + + + diff --git a/modules/distribution/src/assembly/docs.xml b/modules/distribution/src/assembly/docs.xml new file mode 100644 index 000000000..8f8287af6 --- /dev/null +++ b/modules/distribution/src/assembly/docs.xml @@ -0,0 +1,41 @@ + + + + docs + + zip + + false + + + target/site + wso2emm-${pom.version}-docs + + + ../../modules/documentation/src/site/xdoc/user-core + wso2mobileserver-${pom.version}-docs/user-core + 755 + + user-mgt-actdir.xml + user-mgt-jdbc.xml + user-mgt-ldap.xml + + + + diff --git a/modules/distribution/src/assembly/filter.properties b/modules/distribution/src/assembly/filter.properties new file mode 100644 index 000000000..4c1aba4b9 --- /dev/null +++ b/modules/distribution/src/assembly/filter.properties @@ -0,0 +1,7 @@ +product.name= WSO2 Enterprise Mobility Manager (EMM) +product.version=1.1.0 +product.key=EMM +hotdeployment=true +hotupdate=true +carbon.version=4.2.0 +default.server.role=MobilePlatform diff --git a/modules/distribution/src/assembly/src.xml b/modules/distribution/src/assembly/src.xml new file mode 100644 index 000000000..e69de29bb diff --git a/modules/distribution/src/repository/database/WSO2EMM_DB.h2.db b/modules/distribution/src/repository/database/WSO2EMM_DB.h2.db new file mode 100644 index 0000000000000000000000000000000000000000..dc0ac55e572f9c01a93097f300fe06a64e7ca2ae GIT binary patch literal 77824 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 RB0v$K2v7tl0>2sv{2xnVv(o?o literal 0 HcmV?d00001 diff --git a/modules/features/org.wso2.emm.feature/pom.xml b/modules/features/org.wso2.emm.feature/pom.xml new file mode 100644 index 000000000..90a71d3da --- /dev/null +++ b/modules/features/org.wso2.emm.feature/pom.xml @@ -0,0 +1,221 @@ + + + + + + + org.wso2.emm + wso2emm-features + 1.1.0 + ../pom.xml + + + 4.0.0 + org.wso2.emm.feature + pom + WSO2 Enterprise Mobility Manager (EMM) feature + http://wso2.org + + + + org.wso2.store + org.wso2.store.sso.common + ${es.version} + + + org.wso2.emm + org.wso2.emm.admin.styles + ${project.version} + + + com.googlecode.plist + dd-plist + 1.8 + + + org.bouncycastle.wso2 + bcprov-jdk15on + ${bcprov.wso2.version} + + + org.bouncycastle.wso2 + bcpkix-jdk15on + ${bcpkix.wso2.version} + + + org.bouncycastle.wso2 + bcmail-jdk15on + ${bcmail.wso2.version} + + + com.google.code.gson + gson + ${gson.version} + + + commons-httpclient.wso2 + commons-httpclient + ${apache.httpclient.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.notnoop.apns + apns + ${notnoop.apns.version} + + + com.google.code.jscep.wso2 + jscep + ${jscep.version} + + + net.jcip.wso2 + jcip-annotations + ${jcip.annotations.version} + + + commons-codec + commons-codec + ${version.commons.codec} + + + commons-io + commons-io + ${version.commons.io} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.emm + ../../../../etc/feature.properties + + + org.wso2.carbon.p2.category.type:console + org.eclipse.equinox.p2.type.group:false + + + + slf4j.wso2:slf4j:1.5.10.wso2v1 + org.wso2.emm:org.wso2.emm.admin.styles:${project.version} + org.wso2.emm:org.wso2.emm.gcm:${project.version} + org.wso2.emm:org.wso2.emm.task:${project.version} + org.wso2.emm:org.wso2.emm.core:${project.version} + com.googlecode.plist:dd-plist:1.8 + org.bouncycastle.wso2:bcprov-jdk15on:${bcprov.wso2.version} + org.bouncycastle.wso2:bcpkix-jdk15on:${bcpkix.wso2.version} + org.bouncycastle.wso2:bcmail-jdk15on:${bcmail.wso2.version} + com.google.code.gson:gson:${gson.version} + commons-httpclient.wso2:commons-httpclient:${apache.httpclient.version} + com.notnoop.apns:apns:${notnoop.apns.version} + com.google.code.jscep.wso2:jscep:${jscep.version} + com.fasterxml.jackson.core:jackson-core:${jackson.version} + com.fasterxml.jackson.core:jackson-databind:${jackson.version} + com.fasterxml.jackson.core:jackson-annotations:${jackson.version} + net.jcip.wso2:jcip-annotations:${jcip.annotations.version} + commons-codec:commons-codec:${version.commons.codec} + commons-io:commons-io:${version.commons.io} + org.slf4j:slf4j-api:${slf4j.version} + + + + + + + + + + + maven-resources-plugin + ${maven-resources-plugin.version} + + + prefilter-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + p2.inf + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + clean_target + install + + + + + + + + + run + + + + + + + diff --git a/modules/features/org.wso2.emm.feature/resources/p2.inf b/modules/features/org.wso2.emm.feature/resources/p2.inf new file mode 100644 index 000000000..bcb306a28 --- /dev/null +++ b/modules/features/org.wso2.emm.feature/resources/p2.inf @@ -0,0 +1,6 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps,overwrite:true); \ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../../deployment/server/jaggeryapps/publisher,target:${installFolder}/../../deployment/server/jaggeryapps/fakepublisher,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/publisher);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../../deployment/server/jaggeryapps/store,target:${installFolder}/../../deployment/server/jaggeryapps/fakestore,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/store);\ \ No newline at end of file diff --git a/modules/features/org.wso2.emm.styles.feature/pom.xml b/modules/features/org.wso2.emm.styles.feature/pom.xml new file mode 100644 index 000000000..9255ca900 --- /dev/null +++ b/modules/features/org.wso2.emm.styles.feature/pom.xml @@ -0,0 +1,78 @@ + + + + + + + org.wso2.emm + wso2emm-features + 1.1.0 + ../pom.xml + + + 4.0.0 + org.wso2.emm.styles.feature + pom + WSO2 Enterprise Mobility Manager (EMM) Styles Feature + http://wso2.org + + + + org.wso2.emm + org.wso2.emm.admin.styles + ${project.version} + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.emm.styles + ../../etc/feature.properties + + + + org.wso2.carbon.p2.category.type:console + + + + + + org.wso2.emm:org.wso2.emm.admin.styles + + + + + + + + + + diff --git a/modules/features/pom.xml b/modules/features/pom.xml new file mode 100644 index 000000000..42438eae6 --- /dev/null +++ b/modules/features/pom.xml @@ -0,0 +1,47 @@ + + + + + + + org.wso2.emm + wso2emm-parent + 1.1.0 + ../../pom.xml + + + 4.0.0 + org.wso2.emm + wso2emm-features + pom + WSO2 Enterprise Mobility Manager (EMM) Features + http://wso2.org + + + org.wso2.emm.feature + org.wso2.emm.styles.feature + + + + + + + + + diff --git a/modules/integration/pom.xml b/modules/integration/pom.xml new file mode 100644 index 000000000..fd7e74f49 --- /dev/null +++ b/modules/integration/pom.xml @@ -0,0 +1,36 @@ + + + + org.wso2.carbon + wso2cdm-parent + 2.0.0-SNAPSHOT + ../../pom.xml + + 4.0.0 + wso2cdm-integration + WSO2 EMM - Integration Tests + pom + + + tests-common + + + + + maven-clean-plugin + 2.4.1 + + + auto-clean + initialize + + clean + + + + + + + diff --git a/modules/integration/tests-common/admin-clients/pom.xml b/modules/integration/tests-common/admin-clients/pom.xml new file mode 100644 index 000000000..98ca67309 --- /dev/null +++ b/modules/integration/tests-common/admin-clients/pom.xml @@ -0,0 +1,18 @@ + + + + + wso2cdm-integration + org.wso2.carbon + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + org.wso2.emm + org.wso2.emm.integration.common.clients + jar + admin-clents + diff --git a/modules/integration/tests-common/integration-test-utils/pom.xml b/modules/integration/tests-common/integration-test-utils/pom.xml new file mode 100644 index 000000000..900a8f847 --- /dev/null +++ b/modules/integration/tests-common/integration-test-utils/pom.xml @@ -0,0 +1,26 @@ + + + + + wso2cdm-integration + org.wso2.carbon + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + org.wso2.emm.integration.common.utils + org.wso2.emm + jar + integration-test-utils + + + + Apache License Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + + + + diff --git a/modules/integration/tests-common/pom.xml b/modules/integration/tests-common/pom.xml new file mode 100644 index 000000000..50c190283 --- /dev/null +++ b/modules/integration/tests-common/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + org.wso2.emm + emm-integration-tests-common + pom + 1.1.0 + WSO2 EMM Integration Test Common + + + admin-clients + integration-test-utils + ui-pages + + + diff --git a/modules/integration/tests-common/ui-pages/pom.xml b/modules/integration/tests-common/ui-pages/pom.xml new file mode 100644 index 000000000..7c96be5ef --- /dev/null +++ b/modules/integration/tests-common/ui-pages/pom.xml @@ -0,0 +1,48 @@ + + + + + wso2cdm-integration + org.wso2.carbon + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + org.wso2.emm + org.wso2.emm.integration.ui.pages + jar + integration-test-ui-pages + + + + + org.wso2.carbon + org.wso2.carbon.integration.common.admin.client + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.extensions + compile + + + org.testng + testng + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.test.utils + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.engine + compile + + + + diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/EMMIntegrationUiBaseTestCase.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/EMMIntegrationUiBaseTestCase.java new file mode 100644 index 000000000..04b647026 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/EMMIntegrationUiBaseTestCase.java @@ -0,0 +1,66 @@ +/* +*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +*WSO2 Inc. licenses this file to you under the Apache License, +*Version 2.0 (the "License"); you may not use this file except +*in compliance with the License. +*You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +*Unless required by applicable law or agreed to in writing, +*software distributed under the License is distributed on an +*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +*KIND, either express or implied. See the License for the +*specific language governing permissions and limitations +*under the License. +*/ + +package org.wso2.emm.integration.ui.pages; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.authenticator.stub.LoginAuthenticationExceptionException; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.context.TestUserMode; +import org.wso2.carbon.automation.test.utils.common.HomePageGenerator; +import org.wso2.carbon.integration.common.admin.client.AuthenticatorClient; + +import javax.xml.stream.XMLStreamException; +import javax.xml.xpath.XPathExpressionException; +import java.io.IOException; +import java.rmi.RemoteException; + +public class EMMIntegrationUiBaseTestCase { + + private static final Log log = LogFactory.getLog(EMMIntegrationUiBaseTestCase.class); + protected AutomationContext automationContext; + + protected void init() throws IOException, XMLStreamException, XPathExpressionException { + automationContext = new AutomationContext("EMM", "emm001", TestUserMode.SUPER_TENANT_ADMIN); + } + + protected String getBackendURL() throws XPathExpressionException { + return automationContext.getContextUrls().getBackEndUrl(); + + } + + protected String getSessionCookie(AutomationContext context) throws RemoteException, XPathExpressionException, + LoginAuthenticationExceptionException { + AuthenticatorClient authenticationAdminClient = new AuthenticatorClient(context.getContextUrls().getBackEndUrl()); + String sessionCookie = authenticationAdminClient.login(automationContext.getSuperTenant(). + getTenantAdmin().getUserName(), automationContext.getSuperTenant(). + getTenantAdmin().getPassword(), + automationContext.getDefaultInstance().getHosts().get("default")); + + return sessionCookie; + } + + protected String getServiceURL() throws XPathExpressionException { + String serviceURL = automationContext.getContextUrls().getServiceUrl(); + return automationContext.getContextUrls().getServiceUrl(); + } + protected String getLoginURL() throws XPathExpressionException { + return HomePageGenerator.getProductHomeURL(automationContext); + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/UIElementMapper.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/UIElementMapper.java new file mode 100644 index 000000000..1c7435bc6 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/UIElementMapper.java @@ -0,0 +1,65 @@ +/* +*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +*WSO2 Inc. licenses this file to you under the Apache License, +*Version 2.0 (the "License"); you may not use this file except +*in compliance with the License. +*You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +*Unless required by applicable law or agreed to in writing, +*software distributed under the License is distributed on an +*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +*KIND, either express or implied. See the License for the +*specific language governing permissions and limitations +*under the License. +*/ + +package org.wso2.emm.integration.ui.pages; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * Read mapper.properties file and load it's uiElements into Properties object. + */ +public class UIElementMapper { + public static final Properties uiProperties = new Properties(); + private static final Log log = LogFactory.getLog(UIElementMapper.class); + private static UIElementMapper instance; + + private UIElementMapper() { + } + + public static synchronized UIElementMapper getInstance() throws IOException { + if (instance == null) { + setStream(); + instance = new UIElementMapper(); + } + return instance; + } + + public static Properties setStream() throws IOException { + + InputStream inputStream = UIElementMapper.class.getResourceAsStream("/mapper.properties"); + + if (inputStream.available() > 0) { + uiProperties.load(inputStream); + inputStream.close(); + return uiProperties; + } + return null; + } + + public String getElement(String key) { + if (uiProperties != null) { + return uiProperties.getProperty(key); + } + return null; + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/home/HomePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/home/HomePage.java new file mode 100644 index 000000000..73205f5e7 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/home/HomePage.java @@ -0,0 +1,53 @@ +/* +*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +*WSO2 Inc. licenses this file to you under the Apache License, +*Version 2.0 (the "License"); you may not use this file except +*in compliance with the License. +*You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +*Unless required by applicable law or agreed to in writing, +*software distributed under the License is distributed on an +*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +*KIND, either express or implied. See the License for the +*specific language governing permissions and limitations +*under the License. +*/ + +package org.wso2.emm.integration.ui.pages.home; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.wso2.emm.integration.ui.pages.UIElementMapper; + +import java.io.IOException; +import org.wso2.emm.integration.ui.pages.login.LoginPage; + +/** + * Home page class holds the information of product page you got once login + * It also contain sign-out method as well. + */ +public class HomePage { + + private static final Log log = LogFactory.getLog(HomePage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public HomePage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!driver.findElement(By.id(uiElementMapper.getElement("home.dashboard.middle.text"))).getText().contains("Home")) { + throw new IllegalStateException("This is not the home page"); + } + } + + public LoginPage logout() throws IOException { + driver.findElement(By.xpath(uiElementMapper.getElement("home.greg.sign.out.xpath"))).click(); + return new LoginPage(driver); + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/login/LoginPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/login/LoginPage.java new file mode 100644 index 000000000..075448919 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/emm/integration/ui/pages/login/LoginPage.java @@ -0,0 +1,67 @@ +/* +*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +*WSO2 Inc. licenses this file to you under the Apache License, +*Version 2.0 (the "License"); you may not use this file except +*in compliance with the License. +*You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +*Unless required by applicable law or agreed to in writing, +*software distributed under the License is distributed on an +*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +*KIND, either express or implied. See the License for the +*specific language governing permissions and limitations +*under the License. +*/ + +package org.wso2.emm.integration.ui.pages.login; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.wso2.emm.integration.ui.pages.UIElementMapper; + +import java.io.IOException; +import org.wso2.emm.integration.ui.pages.home.HomePage; + +/** + * Login page class - contains methods to login to wso2 products. + */ +public class LoginPage { + private static final Log log = LogFactory.getLog(LoginPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public LoginPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("login.jsp"))) { + // Alternatively, we could navigate to the login page, perhaps logging out first + throw new IllegalStateException("This is not the login page"); + } + } + + /** + * Provide facility to log into the products using user credentials + * + * @param userName login user name + * @param password login password + * @return reference to Home page + * @throws java.io.IOException if mapper.properties file not found + */ + public HomePage loginAs(String userName, String password) throws IOException { + log.info("Login as " + userName); + WebElement userNameField = driver.findElement(By.name(uiElementMapper.getElement("login.username"))); + WebElement passwordField = driver.findElement(By.name(uiElementMapper.getElement("login.password"))); + userNameField.sendKeys(userName); + passwordField.sendKeys(password); + driver.findElement(By.className(uiElementMapper.getElement("login.sign.in.button"))).click(); + return new HomePage(driver); + } + +} diff --git a/modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties b/modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties new file mode 100644 index 000000000..8c598035a --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties @@ -0,0 +1,449 @@ +app.sign.in.button=button.btn +app.redMine.login.button.name=login +app.redMine.issue.button=New issue +app.redMine.issue.subject=issue_subject +app.redMine.issue.description=issue_description +app.redMine.issue.submit=commit +app.AddNew.App.link=Add New Application +new.app.add.app.name=applicationName +new.app.add.app.key=applicationKey +new.app.add.app.icon=icon +new.app.add.app.Description=applicationDescription +new.app.add.app.edit.Description=appDescriptionEdit_textarea +new.app.add.app.type=applicationType +app.issue.version.id=issue_fixed_version_id +app.database.db.environment.id=rssInstances +app.database.db.environment.user=js_db_user +app.database.db.environment.template=js_db_template +new.app.add.repository.type=repositoryType +create.new.app.button=appcreation +app.homepage.search.textBox=search +app.first.element.of.home.page=/html/body/div/div/article/section/ul/li[2]/div/h2/a/b +app.overview.page.app.type.id=apptype +app.overview.page.app.description.id=description +app.overview.page.repository.type.id=repotype +app.overview.page.app.owner.id=appOwner +app.overview.page.app.key.xpath=/html/body/div/div/article/section[2]/div/div/div/p +app.add.member.link=Add Members +app.add.member.name=allUsersList +app.invite.users= btn_nvite_users +app.add.add.to.list.button=addToListBtn +app.add.branch.link=Create Branch +app.add.second.branch.xpath=(//a[contains(text(),'Branch')])[2] +app.add.branch.version=create_branchtrunk +app.add.branch.button.xpath=//input[@value='Create Branch'] +app.add.branch.two.button.xpath=(//input[@value='Create Branch'])[2] +app.navigate.Link=Repos & Builds +app.navigate.Governance.page.link=menu_governance +app.navigate.isue.page.link.id=menu_trackIssues +app.trunk.overview.xpath=/html/body/div/div/article/section[3]/div/ul/li/p/strong +app.trunk.build.status.xpath=/html/body/div/div/article/section[3]/div/ul/li[2]/p/span/strong +governance.page.firstElement.xpath=/html/body/div/div[2]/article/section/div[2]/ul/li/ul/li/div/strong +governance.page.firstElement.date.xpath=/html/body/div/div[2]/article/section/div[2]/ul/li/ul/li[2]/div[2]/form/div/input +governance.page.date.save.xpath=/html/body/div/div[2]/article/section/div[2]/ul/li/ul/li[2]/div[2]/form/div/button +governance.page.promote.key.xpath=/html/body/div/div[2]/article/section/div[2]/ul/li/ul/li[3]/div/ul/li[2]/a/span +code.completed.status=(//input[@id='registry.custom_lifecycle.checklist.option.0.item'])[last()] +code.review.status=(//input[@id='registry.custom_lifecycle.checklist.option.1.item'])[last()] +design.review.status=(//input[@id='registry.custom_lifecycle.checklist.option.2.item'])[last()] +app.application.overview.page=Overview +app.overview.page.team.details.id=userCountList +app.team.page.id=menu_userAdmin +app.add.member.page.id=btnAddMembers +app.issue.redMine.tab.link=Track Issues +app.testing.first.element.xpath=/html/body/div/div[2]/article/section/div[2]/ul[2]/li/ul/li/div/strong +app.testing.date.save.xpath=/html/body/div/div[2]/article/section/div[2]/ul[2]/li/ul/li[2]/div/form/div/button +app.testing.first.element.arrow.xpath=/html/body/div/div[2]/article/section/div[2]/ul[2]/li/ul/li[3]/div/ul/li[2]/a +app.factory.issue.total.count.xpath=/html/body/div/div[2]/article/section/section/div/ul/li[2] +app.factory.issue.item.header.id=item_list +app.factory.database.configure.page.link=Database Configurations +app.factory.new.database.link=Database +app.factory.database.name.id=databaseName +app.factory.database.password=databaseUserPassword +app.factory.database.confirm.password=confirmDatabaseUserPassword +app.factory.database.submit.button=div.buttonrow > input[name="Submit"] +app.factory.database.advance.Checkbox=advancecheckbox +app.factory.database.user.CheckBox=Username +app.factory.database.user.password=Password +app.factory.database.user.Repeat.password=repeatPassword +app.factory.database.environment.id=rssInstances +app.factory.database.user.submit.name=Submit +app.factory.database.template.name=templateName +app.factory.database.template.submit.name=Submit +app.factory.db.admin.id=menu_dbAdmin +app.factory.db.dbUser.link=DB User +app.factory.db.template.link=DB Template +app.factory.db.resources.id=dbSection +app.db.link=Db +app.db.user=wso2usr +app.db.template=wso2Temp@Development +app.factory.delete.user=Delete User +app.factory.del.template=Delete Template +app.factory.delete.Ok=Ok +app.factory.delete.db=Delete DB +app.data.source.name=datasource_name +app.data.source.description=datasource_description +app.data.source.password=datasource_password_dev +app.data.source.username=datasource_username_text_dev +app.data.source.add.button=Submit +app.property.name=property_name +app.property.type=property_type +app.property.description=property_description +app.property.value=property_value +app.factory.registry.page.link=Endpoints & Registry +app.factory.data.source.page.link=Datasources +app.db.details.id=dbSection +app.db.user.id=dbUsrSection +app.db.template.id=dbTempSection +app.factory.new.data.source.page.button=//button[@type='button'] +app.factory.api.panel.text=/html/body/div/div/article/section[3] +app.factory.sign.out.email=span.icon-chevron-down +app.factory.sing.out.text=Sign Out +app.factory.subscribe=Subscribe to APIs +app.factory.subscribe.api.element=li > div.thumbnail > a > img +app.api.select.app.name=application-list +app.api.subscribe.button=subscribe-button +app.api.api.manager.button=gotoApiManagerbtn +app.go.to.subscriptions.text=Go to My Subscriptions +app.api.manager.class.name.text=title-section +app.api.key.generate.text=Show Keys +app.api.sandbox.details.id=sandTable0 +app.api.production.details.id=prodTable0 +app.api.page.link.text=APIs +app.api.page.resource.list.id=keySection +app.factory.subscription.page=My Subscriptions +app.factory.list.view=a.icon-th-list.table_view +app.overview.link.css=/html/body/div/div[2]/article/nav/ul/li/a + + + + +login.username=username +login.password=password +login.sign.in.button=button +login.header.div=header-div + +home.dashboard.middle.text=middle +home.greg.sign.out.xpath=//*[@id="header-div"]/div[4]/div/ul/li[3]/a +home.logged.user.dev=logged-user + +jaggery.Main.tab=menu-panel-button1 +jaggery.Region1.tab=region1_manage_menu +jaggery.dashboard.middle.text=middle +add.jaggery.href=Jaggery +jaggery.war.file.upload.name=warFileName +jaggery.upload.button.name=upload +jaggery.upload.successful.message=messagebox-info +jaggery.upload.successful.button=ui-dialog-titlebar-close + + +carbon.Main.tab=menu-panel-button1 +carbon.Region1.tab=region1_manage_menu +carbon.add.href=Add +carbon.dashboard.middle.text=middle +carbon.file.upload.field=filename +carbon.upload.button=upload +carbon.upload.successful.message=messagebox-info +carbon.upload.successful.button=ui-dialog-titlebar-close + + +resource.Main.tab=menu-panel-button1 +resource.Region3.tab=region3_registry_menu +resource.browse.link=Browse +resource.dashboard.middle.text=middle +resource.detailed.view=stdView +resource.add.resource.link=Add Resource +resource.add.collection.link=Add Collection +resource.add.resource.input.field=uResourceFile +resource.add.Collection.input.field=collectionName +resource.add.Url.input.id=irFetchURL +resource.add.collection.description=colDesc +resource.add.resource.name=uResourceName +Resource.add.resource.description=description +resource.add.button=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/table/tbody/tr/td/div[2]/div[3]/div[3]/div[5]/table/tbody/tr[2]/td/form/table/tbody/tr[6]/td/input +resource.add.Url.button.xpath=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/table/tbody/tr/td/div[2]/div[3]/div[3]/div[5]/table/tbody/tr[3]/td/form/table/tbody/tr[6]/td/input +resource.collection.add.button=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/table/tbody/tr/td/div[2]/div[3]/div[3]/div[7]/form/table/tbody/tr[5]/td/input +resource.upload.successful.message=messagebox-info +resource.upload.successful.collection.message=messagebox-info +resource.upload.successful.button=ui-dialog-titlebar-close +resource.upload.collection.successful.close.button=/html/body/div[5]/div/div/a +resource.add.Url.Successful.close=/html/body/div[4]/div/div/a + + + +service.add.link=Service +service.dashboard.middle.text=middle +service.list.dashboard.middle.text=middle +service.add.name.id=id_Overview_Name +service.add.namespace.id=id_Overview_Namespace +service.check.save.service=Services + + +wsdl.dashboard.middle.text=middle +wsdl.list.dashboard.middle.text=middle +wsdl.add.link=WSDL +wsdl.add.url=irFetchURL +wsdl.add.name=irResourceName +wsdl.add.file.id=uResourceFile +wsdl.add.file.name.id=uResourceName + + +schema.add.link=Schema +schema.dashboard.middle.text=middle +schema.list.dashboard.middle.text=middle +schema.add.url=irFetchURL +schema.add.name=irResourceName +schema.add.schema.name.id=uResourceName + + +wsPolicy.add.link=Policy +wsPolicy.dashboard.middle.text=middle +ws.policy.list.dashboard.middle.text=middle +wsPolicy.add.url=irFetchURL +wsPolicy.add.name=irResourceName +wsPolicy.add.file.id=uResourceFile +wsPolicy.add.schema.name.id=uResourceName + + +api.add.link=API +api.dashboard.middle.text=middle +api.provider.id=id_Overview_Provider +api.name.id=id_Overview_Name +api.context.id=id_Overview_Context +api.version.id=id_Overview_Version +api.list.link=APIs + + +uri.add.link=URI +uri.add.list.id=URIs +uri.dashboard.middle.text=middle +uri.add.uri=id_Overview_URI +uri.add.uri.name=id_Overview_Name +uri.list.link=URIs + + +my.profile.region.tab.id=region5_my_identity_menu +my.profile.add.page.link=My Profiles +my.profile.dashboard.middle.text=middle +my.profile.new.profile.add.link=Add New Profile +my.profile.name.id=profile +my.profile.first.name.id=http://wso2.org/claims/givenname +my.profile.last.name.id=http://wso2.org/claims/lastname +my.profile.email.id=http://wso2.org/claims/emailaddress +my.profile.successful.save.pane=/html/body/div[3]/div/div/a + + +search.activity.link=Activities +search.activity.id=user +search.activity.name.id=path +search.activity.exists.id=activityList + + +search.page.link=Search +search.resource.name=resourcePath +search.results.id=1 +filter.search.button=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form[3]/table/tbody/tr/td[8]/table/tbody/tr/td/a + +users.add.new.user.link.id=Add New User +users.and.roles.link.text=Users and Roles +users.adn.roles.add.page.middle.text=middle +users.add.link.id=Users +users.add.new.user.name.id=username +users.add.new.user.password.name=password +users.add.new.user.password.retype.name=retype +users.admin.tick.name=userRoles +users.save=//input[contains(@value,'Finish')] +users.page.next.id=2 + + + + +roles.add.link.id=Roles +role.add.new.user.link.id=Add New Role +role.add.new.user.name.id=roleName +role.permission.id=ygtvspacer +role.add.user.to.role.name=org.wso2.carbon.role.assign.filter +role.search.button=td.buttonRow > input.button +role.add.ok.button.css=button[type="button"] +role.add.user.to.role.name.tick=selectedUsers +role.add.user.finish.button=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form[2]/table/tbody/tr[2]/td/input[2] + + +pass.word.change.link=Change My Password +pass.word.current.name=currentPassword +pass.word.new.name=newPassword +pass.word.check.name=checkPassword +pass.word.change.save.xpath=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form/table/tbody/tr[2]/td/input +password.change.dialog.xpath=/html/body/div[3]/div/div/a + + + +features.add.link=Features +repository.add.tab.text=Repository Management +repositories.table.id=_table_manage_repositories +repository.add.link.text=Add Repository +repository.url.name=_txt_repository_location_url +repository.save.id=_btn_add_repository +repository.name.id=_txt_repository_name +installed.features.tab.linkText=Installed Features +repositories.dashboard.text=middle +features.filter.id=_txt_IF_filterString +feature.checkbox.click.name=chkSelectFeaturesToUninstall +feature.uninstall.next.button.id=_btn_next_review_uninstall_features +feature.uninstall.finish.button.id=_btn_uc_finish + + + +server.shutdown.link.text=Shutdown/Restart +feature.revert.tab=Installation History +feature.find.feature.text=Available Features +feature.install.name.id=_txt_AF_filterString +feature.find.id=_btn_next_filter_repositories +feature.install.click=chkSelectFeaturesToInstall +feature.install.accept.button=_radio_af_accept_licenses + + +key.store.add.link=KeyStores +key.store.dashboard.middle.text=middle +key.store.add.new.link.text=Add New KeyStore +key.store.file.path.id=keystoreFile +key.store.password.name=ksPassword +key.store.provider.name=provider +key.store.next.button=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form/table/tbody/tr[2]/td/input +key.store.pass.key=keyPass +key.store.successful.xpath=/html/body/div[3]/div/div/a + + +logging.add.link=Logging +logging.dashboard.middle.text=middle +logging.update.button.id=globalLog4jUpdate +log4j.appender.update.id=appenderUpdate +log4j.global.success.xpath=/html/body/div[3]/div[2]/button +log4j.appender.sucess.xpath=/html/body/div[4]/div[2]/button + + +log4j.logger.search.id=filterText +log4j.logger.successful.button.xpath=/html/body/div[3]/div/div/a + + +notification.adding.link=Notifications +notification.dashboard.middle.text=middle +notification.add.edit.link.text=Add Subscription to Resource/Collection +notification.add.email.id=subscriptionInput + +registry.subscription.middle.text=middle +registry.subscription.path.id=subscriptionPath +registry.subscription.event.id=eventList +registry.subscription.notification.id=notificationMethodList +registry.subscription.email.id=subscriptionInput +registry.subscription.digest.id=subscriptionDigestTypeInput +registry.subscription.hsmethod.id=hierarchicalSubscriptionList +registry.subscription.subscribe.button.id=subscribeButton + + +uri.configure.add.link=URIs +uri.configure.dashboard.middle.text=middle + + + +api.configure.add.link=APIs +api.configure.dashboard.middle.text=middle + +service.configure.add.link=Services +service.configure.dashboard.middle.text=middle + +server.role.add.link=Server Roles +server.role.dashboard.middle.text=middle +server.role.add.link.text=Add New Server Role +server.role.name.id=_serverRoleName + + +add.new.tenant.link.text=Add New Tenant +tenant.role.dashboard.middle.text=middle +tenant.domain=domain +tenant.first.name=admin-firstname +tenant.last.name=admin-lastname +tenant.admin.user.name=admin +tenant.admin.password=admin-password +tenant.admin.password.repeat=admin-password-repeat +tenant.admin.email.id=admin-email +add.new.tenant.success.button=/html/body/div[3]/div/div/a +view.tenant.link=View Tenants + + + +add.new.extension.dashboard.middle.text=middle +extension.tab.id=menu-panel-button5 +extension.list.page.dashboard.middle.text=middle +extensions.add.link=Add +extension.add.text.box=uResourceFile + +life.cycle.tab.id=menu-panel-button5 +life.cycle.add.link=Lifecycles +add.new.lifecycle.dashboard.middle.text=middle +add.new.lifecycle.link.text=Add New Lifecycle +add.new.lifecycle.text.area=//*[@id="textarea"] +add.new.lifecycle.save.css=input.button.registryWriteOperation +resource.lifecycle.minimized=//*[@id="lifecycleIconMinimized"] +resource.lifecycle.add=//*[@id="lifecycleExpanded"]/div[2]/a +resource.lifecycle.add.select=//*[@id="aspect"] +resource.lifecycle.add.select.id=aspect +resource.lifecycle.add.button.add=//*[@id="add-lifecycle-div"]/form/table/tbody/tr[2]/td/input[1] +resource.lifecycle.add.button.cancel=//*[@id="add-lifecycle-div"]/form/table/tbody/tr[2]/td/input[2] + + + +artifact.add.tab.id=menu-panel-button5 +artifacts.add.link=Artifact Types +add.new.artifact.dashboard.middle.text=middle +add.new.artifact.type.link=Add new Artifact +add.new.artifact.text.area=textarea +add.new.artifact.save.xpath=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form/table/tbody/tr[2]/td/input + +add.new.artifact.dialog.box=button[type="button"] + + + +handler.add.tab.id=menu-panel-button5 +handler.add.link=Handlers +add.new.handler.dashboard.middle.text=middle +add.new.handler.link.text=Add New Handler +add.new.handler.text.area=textarea +add.new.handler.save.xpath=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/form/table/tbody/tr[2]/td/input +add.new.handler.dialog.box=button[type="button"] +configure.tab.id=menu-panel-button3 + + + +manage.report.page.link=Reports +manage.report.list.dashboard.middle.text=middle +add.report.list.dashboard.middle.text=middle +add.report.name=reportName +add.report.template=reportTemplate +add.report.type=reportType +add.report.class=reportClass +report.add.link=Add Report + +life.cycle.expand.id=lifecycleIconMinimized +life.cycle.add=Add Lifecycle +life.cycle.add.option=option0 +life.cycle.add.option1=option1 +life.cycle.add.option2=option2 +life.cycle.promote=Promote +life.cycle.publish=Publish +life.cycle.stage=/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[2]/td/div/div/table/tbody/tr/td[4]/div[14]/div[3]/div[2]/table/tbody/tr/td/div[2]/table/tbody/tr[2]/td +life.cycle.promote.ok.button=button[type="\button\"] + +webapp.list.xpath=.//*[@id='menu']/ul/li[7]/ul/li[2]/ul/li[1]/a + +webapp.list.page.middle=middle +webapp.add.xpath=//*[@id="menu"]/ul/li[5]/ul/li[2]/ul/li[3]/ul/li[1]/a +webapp.add.page.middle=middle + +endpoints.tab.id=//*[@id="menu"]/ul/li[5]/ul/li[4]/ul/li[4]/a +endpoints.page.middle=middle + +endpoints.tab.id=//*[@id="menu"]/ul/li[5]/ul/li[4]/ul/li[4]/a +endpoints.page.middle=middle + +bam.dashboard.tab.id=//*[@id="menu"]/ul/li[3]/ul/li/a +bam.dashboard.signin.xpath=//*[@id="wrap"]/div[2]/div/div/h1 diff --git a/modules/integration/tests-ui-integration/pom.xml b/modules/integration/tests-ui-integration/pom.xml new file mode 100644 index 000000000..bc8a8acbc --- /dev/null +++ b/modules/integration/tests-ui-integration/pom.xml @@ -0,0 +1,257 @@ + + + + org.wso2.emm + wso2emm-integration + 1.1.0 + ../pom.xml + + + 4.0.0 + WSO2 EMM - Integration Test UI Module + org.wso2.carbon.emm.integration.test.ui.integration + jar + + + + + maven-surefire-plugin + false + + + -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m + + + src/test/resources/testng-server-mgt.xml + src/test/resources/testng.xml + + + ${skipUiTests} + + + + maven.test.haltafterfailure + false + + + java.io.tmpdir + ${basedir}/target/ + + + carbon.zip + + ${basedir}/../../distribution/target/wso2emm-${project.version}.zip + + + + framework.resource.location + + ${basedir}/src/test/resources/ + + + + server.list + + EMM + + + + usedefaultlisteners + false + + ${basedir}/target/security-verifier/ + ${basedir}/target/emma + ${basedir}/src/test/resources/instrumentation.txt + ${basedir}/src/test/resources/filters.txt + ${basedir}/target/emma + + ${basedir}/target + + + + maven-dependency-plugin + + + + copy-emma-dependencies + compile + + copy-dependencies + + + ${project.build.directory}/emma + jar + emma + + + + + copy-secVerifier + compile + + copy-dependencies + + + ${basedir}/target/security-verifier + aar + SecVerifier + true + + + + + unpack-mar-jks + compile + + unpack + + + + + org.wso2.emm + wso2emm + ${project.version} + zip + true + ${basedir}/target/tobeCopied/ + **/*.jks,**/*.mar,**/axis2_client.xml + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + test-jar + + + + + + maven-resources-plugin + 2.6 + + + copy-resources-jks + compile + + copy-resources + + + ${basedir}/src/test/resources/keystores/products + + + + + ${basedir}/target/tobeCopied/wso2emm-${project.version}/repository/resources/security/ + + + **/*.jks + + + + + + + copy-stratos-jks + compile + + copy-resources + + + ${basedir}/src/test/resources/keystores/stratos + + + + + ${basedir}/target/tobeCopied/wso2emm-${project.version}/repository/resources/security/ + + + **/*.jks + + + + + + + copy-axis2files + compile + + copy-resources + + + ${basedir}/src/test/resources/axis2config + + + + + ${basedir}/target/tobeCopied/wso2emm-${project.version}/repository/conf/axis2/ + + + **/*.xml + + + + + + + copy-resources-mar + compile + + copy-resources + + + ${basedir}/src/test/resources/client/modules + + + + + ${basedir}/target/tobeCopied/wso2emm-${project.version}/repository/deployment/client/modules + + + **/*.mar + + + + + + + + + + + + + org.wso2.emm + org.wso2.emm.integration.ui.pages + + + org.wso2.carbon.automation + org.wso2.carbon.automation.engine + + + org.wso2.carbon.automation + org.wso2.carbon.automation.test.utils + + + org.wso2.carbon + org.wso2.carbon.integration.common.extensions + + + + + true + + + diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginTestCase.java new file mode 100644 index 000000000..8bd20c70f --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginTestCase.java @@ -0,0 +1,55 @@ +/* +*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +*WSO2 Inc. licenses this file to you under the Apache License, +*Version 2.0 (the "License"); you may not use this file except +*in compliance with the License. +*You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +*Unless required by applicable law or agreed to in writing, +*software distributed under the License is distributed on an +*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +*KIND, either express or implied. See the License for the +*specific language governing permissions and limitations +*under the License. +*/ + +package org.wso2.emm.ui.integration.test; + +import org.openqa.selenium.WebDriver; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +import org.wso2.carbon.automation.extensions.selenium.BrowserManager; +import org.wso2.emm.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.emm.integration.ui.pages.home.HomePage; +import org.wso2.emm.integration.ui.pages.login.LoginPage; + +public class LoginTestCase extends EMMIntegrationUiBaseTestCase { + + private WebDriver driver; + + @BeforeClass(alwaysRun = true) + public void setUp() throws Exception { + super.init(); + + driver = BrowserManager.getWebDriver(); + driver.get(getLoginURL()); + } + + @Test(groups = "wso2.emm", description = "verify login to emm server") + public void testLogin() throws Exception { + LoginPage test = new LoginPage(driver); + HomePage home = test.loginAs(automationContext.getSuperTenant().getTenantAdmin().getUserName(), + automationContext.getSuperTenant().getTenantAdmin().getPassword()); + home.logout(); + driver.close(); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/resources/automation.xml b/modules/integration/tests-ui-integration/src/test/resources/automation.xml new file mode 100644 index 000000000..338b97fc8 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/automation.xml @@ -0,0 +1,222 @@ + + + + + + + + + 60000 + + standalone + + false + + false + + + + + + + http://10.100.2.51:4444/wd/hub/ + + + + firefox + + /home/test/name/webDriver + + + + + + + jdbc:h2:testDB + wso2carbon + wso2carbon + org.h2.Driver + + + jdbc:h2:testDB + wso2carbon + wso2carbon + org.h2.Driver + + + + + + + keystores/products/wso2carbon.jks + + JKS + + wso2carbon + + wso2carbon + + wso2carbon + + + + + client-truststore.jks + + JKS + + wso2carbon + + + + + + https://wso2.org/repo + file:///home/krishantha/test + + + + + + + + + + admin + admin + + + + + testuser11 + testuser11 + + + testuser21 + testuser21 + + + + + + + + + admin + admin + + + + + testuser11 + testuser11 + + + testuser21 + testuser21 + + + + + + + + + + + + + localhost + + + 9763 + 9443 + + + + + + + + + + + + + + + org.wso2.carbon.integration.common.extensions.carbonserver.CarbonServerExtension + org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd b/modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd new file mode 100644 index 000000000..b800b2bac --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd @@ -0,0 +1,611 @@ + + + + + + + ================================================= + Parameters ================================================= + Browser type with used by framework to execute UI test, supported types + - chrome|firefox|opera|ie|htmlUnit + + + + + + + Change this to edit wait time for test + artifact deployment + + + + + + Change this to product|platform/cloud to + execute test on specific environment + + + + + + + Change this to true if you want to generate + coverage statistics + + + + + + Change this to true if you want to enable + framework dashboard + + + + + + + + + + + + + + + Change to enable remote webDriver + URL of remote webDriver server + + + + + + + + + + + + + Type of the browser selenium tests + are running" + + + + + + + + path to webDriver + executable - required only for + chrome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KeyStore which will be used for + encrypting/decrypting passwords + and other sensitive information. + + + + + + + Keystore file location + + + + + + Keystore type (JKS/PKCS12 etc.) + + + + + + Keystore password + + + + + + Private Key alias + + + + + + Private Key password + + + + + + + + + + System wide trust-store which is used to + maintain the certificates of all + the trusted parties. + + + + + + + trust-store file location + + + + + + trust-store type (JKS/PKCS12 + etc.) + + + + + + trust-store password + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml b/modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml new file mode 100644 index 000000000..db07954a4 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml @@ -0,0 +1,299 @@ + + + + + + + true + false + false + + + 500 + + 15000 + + + false + + + + true + + + + + + false + + + admin + axis2 + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6071 + + + + + + + + + + + + + + + + + + + + + + HTTP/1.1 + chunked + 60000 + 60000 + + + HTTP/1.1 + chunked + 60000 + 60000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v10.mar b/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v10.mar new file mode 100644 index 0000000000000000000000000000000000000000..57f857642523329ef13c8bf2e2f440a8b0c7480c GIT binary patch literal 31350 zcmb5V1F$GDw5Gdl+qP}nwr$%u+qP}%Y}>YN+txcX_s)HD>%E$)NmX~cDt}T*^-5>u zTWJMpU=S#P|B+lANQD3A!++i&|K+lxDuT3 z{tt4j|3A5fp`D41sgv{np&se~v7VuciIb_bv!&htJEZ@37g+vMDR4jl089Ty4F9i* z|9WL|@+y+TqBSbA_8S5S-P#BIQ;aGj3TI*AQl$BoAtFGDMNWEdqxFgF&2B5MZ?8G5 z71rV;Wp4pB$J0~Z_GWHu-eu&O(*SsEaaG5-CS2n2E1bmxSS8bdU7-FV1j%~ZzWVRd`WbuCxm@YRePUSO4@>x8~UQG>B zyE4zaeIoIIvj#L(rDm^8^r%P(vfiaQKtlW(T0yDS@-R0YWPbtuHWnxpH$9x6dfIT| zsw$;KV5O_MVLm0Bn&}82Qd>B7d~OnJDJ#iMZ0NG*dz9A+E#qxNe(Xg?kU z{CfuIwxf;ZNRrUCMC4jX!`HJx0vVvn1uB?n>8m%P?7ipnZ^rEY9wjiMP^Fc{{|dnZE!yLE>UJN7xt<9R&dPj=mKIk&Y4Hg2uM+L`F~3WUC`yYekeyy-j1UYW8q%lD-lz4`ol{nyeE!~k2!nrvg?zK3t5vDt<_&PN`x&riek9L?Y)z6S)*|I*?2`mH z)h0Jlk63U)twU;VFmkCxPH&IR ziQde4lS{|qv+$TnHm>T}*Pu6+N1>MWulMT24qkVkfKq@&yVxf<;<$=l{w@9P%66s> z&A|b&>1akmbJO-3+ay#Lur(#Fm3)doG7bYLxlV~Em4ws^z}(ZMAL#?u6Rg3phXuo} zwuBgZeCYc*Ey|GUssbKXVro4jPlRBn28t@JP(nAXq7gntXwoH)+zJ?NCOiPwOi!NB2Z8?01d~z5`1!71h(n1MmW| zX&DX`uv_~Y2b5PhT@mwh{pg)j6Cpkm9^Ge!`3)l6C5Ov;ykC1QfNS-J=Sjnno_-|gbpKbeww3; zj6{~6u@I)x48AjT0)Tly9Xa^SJha?L-`TYS+^Jm^745LY*`u*P%gZ7p#nry_Lb?M4 zF>Oh}%>bhjQ2qH=gO(;>Jdecom@M)G|6mEwJPL4qGGDUEP)LBC0hkBJ0Jb(1-inDD zCya*nn2?}0{Q(eMKA!33;7mP2KJGv^`ax1uk9z$hF^RJAOWHV;`oslz{Xr0t1p+&F zEWp-b7wp%0H%W`2f)6n+S6z`xwF7*#UpU?f)mG$INPGS6xl>voAcu7T7C?sOauAui z5lWDyPc8%~8XKDr5aQ0XC!43C#&L3x1mUIh+7wGNO1+G|D|l!2#}`T*u-tOe6a7%b zd)G5VX7{Z`R~?pGv(o67N_P_qr3E^dSXH$ZTs-(TInx$cA?RUoQcVYp+$w-bODZX9 z1W{GOd^x#PfopO_(&{cz@+X%6%Hb#{f->7CJ=Pq#PI-wUJPO-AT zpTE>Qk#r=W;%?uHY=AAh9RN3v2gr`#yl7^U7aytx@xVQ@7Gjso@y)tb0y3(I=?31R zZ&6=5Yx;rZ!-MIv-qb;cnI78eC&XmE1Z#Z23IGQBSxAfxMeGaOs;da!$c(nW0osw6 z`nZBcS$~NM;b-T;x)MqQ^)B#_G#4Pz1sFQJ0HvUo+Fv46Cvf)im16`rR(BN*A*srQ zA4oTTH9j-y1nXlldM1nv5kWKCCTxc-Cl{4t%hA-kg~hSBV2=uxicy2$b4_8M0Y#m< z$@yrw#MYD-WT8CSD+&d=~IUV|}wq zxmy9@ao6*uM&J`RC_~5!VxkgoQm3EABrX@NhzDi;w$i{aCr&ZJ?9%*Tg>|O~brMw$ zo2~b6ftnG|W5dg%7wcwZ(v3JNs49{Pm=XlR0W(7f;phOI!OB2`m&*XDko(|st18|x zIz`Oe(hprh$cLk8eO^~+*yPUf(+(b*+MszX2%X@{MDckl&bz<+p#__NP~(kxNA4jP zNI7mtVXHx@h4Nowf(7Ds17>uraD5LWM0Z+`S@?|@6ONN`XOo==(A?(mnZdWEK(>E@ zZ*}^Zmf_P4=A2*xi30z`Vi!u!KWZ}H0_uVra=+(?AA^RJ$FaG_@W4j~SONIG`vWRQ z%R7bBJt5RcE^zVGxxN+1IL5|m8J2nPg zxyotDu4`%wLUXF1SE*4$xp_j2Ln5XT~^VS&yv_zX73us z)j~Ae(WSC}@V^Mb#X}i$ahc9(s|nhX{>TuVV!uYI)DyL~jI^hjFz|?3iXF*+Ve-(6 z62ICl0pm3*YSRH3H01jnfQXmB;q)oW8Vu*yHz#E?ah@W?qJGUIDT6Y~43{QgP$*l7 z`IZKY5g(`1dj_gHy7r-n-iBx-&>^%y^}zI_*FZ1S%U5GS^<+eGr^tt%G`Uj4L$1dv zLO3XZ+cEbSnQP#+gIE&VumO!J;t&=E{<1d^$#0s`?aLErCTI~dNkG-8QNB3YVx2{_ z^?+Y_AzxgDbR8wdB3NoKp)Vi$0dH0AheK#_KF4em{^a1ODEV^Sko1%>VZCgbct7ls zDOz3?)%%|o#113;c@cESAm8Hcu<;IV!&sm|)_$eM6mG~qpD}G|R0Sr{K=g248Blfy zz{16++vKoI2P*7?kzQ`No7W|vQG@bSPDp@+nkOvD;>V67m^pKXsd!6E$1XCD7o1QH zg`iczqy{jyz$N(?_~aY zw4Nf^mm$O1K=V$GjH)FM$(M}!oKAVRq}fPBA({PXX2esD$aE)o1~Htr#)|B`Ghlu# z)epvmMT*;^{GPl+FS!mi1i|Kuyp$|BYI12(AgR)B?)t_D{wNuL?8%EO0I5r!-JjSl zi+ZQh(=c3-V!G$Go;>*qW?rp=ZwiG7aR#uiNie5Ie;*%qmIZg}JjX!Xpn#M)_lfIn z7_MJtHuEKW6sUd9aTJ6{#9B9|PMSE2eC?j&XN^IA zTRWRo@q#M6WuZP7vTuHm+8Gq;{&Y-rBq3XDh0Czr9K#3eI;WkoTxwxsK zLX(GQKJsX>Jza_fzICS5Q!+4Vvr-Z@wi?@fT%?3CmdrR~tpdjt2szA0dOEfja!-%7 zL4X|{pR2quHoFwhut>@HQyQreI+0_S1E+D!COsvlAs0uNv^0(z58f&L!uH|((SI@1 zGgH*c3~-Pry+dvPC1JI0Dj@3M8g@A?X1^3>(M|dqHx*H7Iz|C5yAnko#1PAb?jD=5 za}SVGgRwKh+o8i&n?QJ91-Y&hUtj;g3pOYMoYCkl8{o2}q z8;c%5zoGMTY4Z7CYE?EeSxgaUB}|7409m?>NGu|6s0M?n&*SgUOQ7l=uXdg8PVL$s zukXd@iyj1i-QDhQ#3r4udY|5|-wdI%?FT>C?vqt;G`*4Q12~+Q{qF<0Ex)$TZcTmX z=Htx)FnctCUp%&DmrDV5<}FmYK~NrZS$oz6XD$cW`H(n;FVdmulM)_V7dQ??Jodh3 zx8SRpWUiKRn2Vp>l+uQG(MwC_$%fZ7P9He3VbR;>t+PLVQdYt4#|7{gMuv16y}S%;S;qS@Xm1KM_DPPuSgrLgEv)j(CW- zv;(QYJ%M{?ZeKor3|?{*;BcmYCb49(KO+Fz)mogmbM_A}?xX~~IQyQVZdV#N%_S%Z zT6|IhKtjzsJP1!iz=B6Iu+L%+ttQ=1G=`09MzjwP#nP%d#iB9av9~?V&Dt{MVd!$Z zk>R!W8?XlfJ6TINF3Iw6{r(i%eCQn{BXIVIN3JTd7ad!XWO-d7wHFY1oX8?{f%ff9 zU-x5Eg9ipVhJ$>2Ae@>G8Fp0TvFIkQ{5->s0oVuMIR&B5V%}}*&`4E7T7(32wLKD{ zUeHkT-NbjuFFwEhy<5L*=@XjFVdMcVkvu*6n`2hnw`nEn0i+;~HBqbL6P`PokM|9S z;$C@ux17j=VBE+i=x)dslP82|?-^1bG?iATwa1fA-_yGQC}s_m=)CmX*goHcj2h5%lRpjI*Z1@S3Wudq`-XR1k`psm@E!m zcAyhWn;1;4VNLpu&qtcRf-D3N?(Jds@j$mV&TKJZSkp0_eKjY>g6RQ0_}i!ImylOb zu6S#8@4_LUL}j&kW~h8ZF9H?aUEtfy@$oAK(GxKQh)&Pf8_%4__B&g0KBJgQF$aU~S zuS75KJy~N-N@h92pKJ@*AsC#R%~%8n0mytBmr?tdcT35G%bO=11hrql|GqVcGcI;< z1_l72`p4#w|M#uAt-Xn>jVYantff8w^TP4p+lr zcNNh%u*2GU+0lNtnX%n`m|UoE23af-vHEzwla-MplN&P%4zRlqJgZ09Dts#S_m`WKOtSqF+Edhr}_j+iPQD5q0JL6T{*m?4rLTNu0q9a;L_>sjpH z$X1{QC`Ip)D>&phQO=uT1AOO%v;}+J#l+3S-6?u66G(G`e4h~~G4K(pW3_)C`&6$1 z7Q!-ro?{5SYqFjVBt2f$bv$FN%Uj$bi!_*C7onXc`YPiP$f?;HbV|b>-OyI%n=5jo z1vUd1M@m(Mck~R{l3SX76vXTDK{L6Wb^N(zKT<`{E?_yB%2;|p>+j0ST*|~VK!F9S zC0%5K^QtfLm6}z2&8WndJFEo9$t21UC5a`#sbgj_ahoLC?MWWG1G2vEaHFVG#=sZU z&Wt(wI8nyznI+WyRg|-D-V~i!00|c9V5gQQ9!RRTA|rlgF_XZ{=TZn0qMH%(F2*0*7Op8t3UIJBBG0&!$f|F z`(|=VF2X&m=2#JNjKjHXhiG?@$;IUf{%Op6 zMYK!jAnbHC$}DWSUDN7S>Pbm6KM%FPh5zQw{Ez7>2a7I}6iY{|hEzw_*R;yI_8&HZ zv(ST9FXS$AsBUD#yn&o_lWz5{8l51oYD)jqJAEVOzTMboe1?xavrgk56QS3_E8}O$ z{h?|AU{ujrUv=cLQwQ-U74>C+=Y-8x`T%rN#gQAZ6qZgYqJwqZuFc$(enIm9GxE0t! zN66TZ6Yn6QjZNN}WMaUabt5BDk5{ABtU6y=qtv{kRI?&PZ5c_sOl2W@sc2uNR^#4n zUvTfu+z2_{to{AX#(dlT{xkZy^ZV<6d)#1-?}H&w(nb7ffj^%3OJ?bAybo)y$4%C?Ik1Yw`J$4<>bM7m4FZBIK; zT(T=Oc~_i6eHOvM)tKRy~J{06~S zd60gEH>gX+M>fhA+gUOpFTtFr;t0=&I@C=Sdl-z9ys|>|QtX~)k4-LYGm3FaRh@iL2s7^r8mC6u8#*%@ysG_xVTjF+QGYN;%R$}=1 zNRQWcqK98&&n2U!F9o*3#a!if{!mv;<(B<=!XnL%G*N6L_98-LquzG$B6=h=>shU4 zC(Gr6XAaHFP%BIc92PWgPKkHZahp+DEz0nW7OzIk@zs=;QX|S?7|rvjkv)N1#86(h5vL6UjWho zO8UHm0DrN#H!d?~jeB&{P4U*bE2h_g1T+m!)v(+-@BGTi+6))EaFdZqbgGL)rp`&$ zlbt)N&bMTaOAD8!lB7@1w%}Ewq)MmFZK_S11=n91?2h5N>ts=%grg~3q&63tw1z2l zp`cLLF^N*Iv$F%qr`0zKDHJ!4NOTkDur;1eVT1YNK8|xfn)eqp`Y=m7_dt}46~=|< zbW@MfZIiKy>M6{2J2(5zG`^xD=V+0tu;eE#vAoe{f%46pr$IG??6w?&0Z#pytz@i7 zZCqZzdc|8uWR-q%R3EwiBD)^{TvVxkbd+qvZ$$^SesokH$$n!Noke_huVSbZwQ|Md#np>yr+)9h4x;lH+-3`@+--+d_RdIFujy9M! zkwsQm{eE@OLQcr`r}zH9{b}{%GOc!X7q@Z~v$Ym^v?Z%C=1PNyZ&>ehcdkCd{p_qf zf%cG7xg5oyW-)TDw%uk6(?_BW64WtbOoaI7%sI8;))WUdVkRY__J`a+&P2K$xR&fN z)QM~dp`K$BZD%TV$cW)*J;`~`h>MXNx?&=7lnc31I4gI$*-0|~@`JDUz+}=ZD06qh zJQe%mZw-I)EZ!*nMpRetoOx>Y(cel!_4ik!0bqL*>UR&^bst_xn9)2VhW1)Z{NZ~{SWk^eroplIY##u9PrRlc&ZE}i~~_J$B^GMDG)*; zAuNOv1eF=btvVhj7;sF>t%xMBL=qq}P+BFRc4EsG_R|AJ(xc~`DVwNbD6 zj7gMD2Ny(~8-xv1}3*s`*Bb7wZyykyDt zt!YTtH#SdJk8XtqkG}MJCb=}%d>75j+JwhpDTQm8Nsel0mJg8l;0E*5IAr2*EN zl@uijz4J`^x4tUp_5O__Q%zrY2lkSWGb9C3OO4BU)u8%c41Ellj;Gh3eQrmZ1)A5DC1Udsu! zbWJqSbgKS(pchU#^lRqo+8h~Z9Bjs{cXknETsm_oI)spaogHU*$E;P9;nsm&Ehlw9 zlxJ>}qe}uuIrqo3`o?7G)Q0PtlX#mP%oL0NxG7~x>AL`JvdA5emB7R#p=EgG3Qxi8 z`jI%wVzQB!r`z?x1hquBmhqt)(GXCwg~|5=`v?Yzu-S%Rqk-2L%p;c^k znFJ?@?aZs&W8Q?G zRl|ypDLQcTQ_oa`BcfmkC;CuCpyP;oP=>hX2X*}gC>SPJ6mpR~M|n@57?qU47C5(z zlr{G;5K}EEhf+{pSG?LMn0--|(%=l#3~D2RSM7JWgJBDU9s~`7XvBvA2WQO6FLanE zIDxcsiDecS_1{iZW0suu;pW&p`nn26Yzfana1m;)0G ztn+i(_7h;lOo?TCKiz<+U%;1<6H#uF))Jt(Kw?|#3r{fB&h!us59 zhxhdn$P<-r&nh9zdWc1b`XpbLCWwxWkkIH1rTGkLnn9Es4hnj^5I(gHkkXNP;lS=G z^7AYZW|CY%EK9UWFASkuL*kQrjejZueI7hS&#nO96=K0JVik!r+Yvc){X&?McPqq5 zOL}fp&0-0^IL%ujn)CqT#Rz{s<)2rQ?uS0t3ijd0s>wxgF+M4sP8Ro==}Y@e`Sj~0 z&us32W$Qud+umooG9Qazo+_5DubM&UM>Vbn1g2c6kSze-dy-(e2N5|-T$q0e)I!04 zii1JKSG<@1ha{|<5p)}h29y$%7fL-e?H<&#|1n*Bs8L4{)DqNf9idbxN1$o)TN2~! z!mIUk3Qq|1A&m4)p8gl=%ryK5*GXCge--bDKCZzbvjJhGCOWwcNc0!zoCG2(hccP<;}eY0sPaT)rOU((JIoGouUDxC`N+xQHl3Eziuds?N>u5tbN6Z%Y_ zDw;1+&vscaJM{J~LfdV!+q5+9<6}B@|BTzz4Rx8G(Iao!9{JE+`v+h$ev1cTGJJ-2 zL(F^CAbiGmYr7vV|3O*w`(-l!#UuOncSS#$4}A7_$o&IJcKjo}gaJat%YCAo-TPp1i*KCdExY`9rA5jg{h$T}md&Lq>HfQZS)rNo7#MdnnQ= zA7@qOOJH^(hcGpCP_d+F=Zc2@g<<_u(MF6B2kr)vCQcl&w*#^`HDX~CMn8vXVGI8O zdkPY`hLS ztda8jg11Tq5`@~>W)K1SL&l;C>fAMqK!bw_f#Mpzz~vTKQigmEv@00na$2@}ZZZ^0 zSoda7+Y_LDl`wLM9b^r^$Bz#c;|y6Nbt06P^UR=hI#EwGkQ|D zv~cvJ;#ec+DZN3faFIU^$NK_2ctZis{2fbXCN;29D&o{~JSh6R%{9cq`|}cD3lE^C z*adEI`2xCVi2`mi#BM_$BKgk?r2=JWX>4S}p;(sXNWv)t%~H@|Fvo%Fz|!6(zbKcU zDNcAdDc;&alCZSr(W2Udz0R4i)N}X}LO95aRF8mv1C%jupK737LXhu6 z$6hQ3Uz!nMTyiQbI-6=C$bbkP66`w_xzMY3|6m~gJr8tXXW!_a)pc!Xd z=fJ<_9d_A-j=l;|3gH^G98?2X%{~JP-!;NoMYEbLbt<6&@Hr)rrJ(LJuuUW*tue$; z>tzeYph^{BIf@LU0|pfHb~;Ri!L;tewu+8Xfn-=%8Oe%S3gpRTo4YL1ZCKf>j1O<* zNeik-(WU)h{2nS)Kc7YWj`uSuZ%D-wAKgQsQLP;r#MiL;lR3u1mUZ6PDP$Ru^br=V2JDl^k=UipdTE2+e+ ze39mZ&39CxO#1>x74nnc#Kdym{hU*JT177^w+ub~Vgorsu6GuFG&@$H3k@NWv-$5r zZkxTE?zWEp_5ciaz}s5JU-Q}A4PNIb37D)^_jFP5v+|Nkm1fb|xyIB=#pcil%}TlH zze_fV2jw^`(+8qfaB>3E%^sPV;C0p&?^cB+XyqX?Ww4h+v|bUh1HRhXam`B^L>#?Z zCKba<+JCTo^I|oh{-W^5AE2UGRd7XBoCs_3mp1ZMzxg<2_av*LsHJIE>gB-Nw~*u2 zFF7?26yDB9p``(Y@+d_bQ9^;H_@^A`dXiRj)3fq_uPac~HcQE}E?G&}AhKaEF$GYg z25IOFHY2nndj~HFx^F3+mOInZ9Wtg`C0EE2-I}qY<~9>?^WCej?Mn{3wM|6!a7OkH zDA59xYgNrKFL6oNq%E^S5H<_bkgPP6C`Y&77-jwz9A5+r?Cb|D;@MQh2xZx8Ftf~M z^Fk#yY<%I^u!>VBR!D-vE!nrKuf5b5c{fonfTbVjo`sVjqCOJDnM87S)1sj3&y70S zCN;Bx4ivD_vPs(-osGTuL7?r|{-vak;9ATqdT9yWu&Icvpp{wXlo)Uu5X+>=!sESTl^7Pf6(dcOdY)}@%xZKA@>*Sa8bZ785?P!X_gRH?FRR8g>HUxJfvrVd`=rgg1= z!mb=tLJYB}VnF@WtW>^cQkhb61XLDs)wF6AaP~N*X+f1MRe&?f(WTc+LoLy=ircWR z@GblaMb_2g$tBmgV6t?URI#X-boHkqP!ZZhy^x9`e@rf>y~KtdkS!hvZyqlFj3@20s4I10OXypNA5hv8%SwpyPhtmbU|NYCdc|%*2XoNK zl0~0KQ^`w}bH+s&8RN26f?gk+Mb>Ja#gq1hoNHQ14~>`?Abr!)_64#qw#cK(5HUSneSD;JtPsE z^mg4pLk+qhd>a!K7VsbbFc5NHn=kW^$kqyxSXTlE(T4qPngqrOZ0aDRADQ_Yn`F*m zoTAR*!`=)eUOb8(ubGd9(;(C5=r9hmS;ZIzkpGRsAekMUW(!C$H0P5c{vhFy2>t{+ zg!uWOHFMtpfzE?)$k(#%x7Fp&Uiom~=pbJsdnKp=3dVGGb!7ld@nu@ash<2cqUaG) z)51iQXg!BUm!t>E$q~Gka6ZQW&dff;xs}ZPT*5FZr_5}gjkbp)-N;(C*I5O4f{%{(dmRE( zDJW82Q0jwm)=hzRDmA7uKk0#C-2lEft68lL_j>}30fvqS_I!Ev5Oh#iC&0l6;Mcxp zUP)`4=3<-;x&}O(qYxae)&b`j(p8^{1TCYmUX*I`XpePbRAg-<7UO<_73CEv@Bi= zsueL;kJLyI9C>y&?1IOal(Y#S_ubF#k4MUEW=Pz}$88_6#XjnSrJYMI$l+bnJGZ^s zyl3rqDEmPPt5GxAv9F69`8&d-n+bdm?DGc`sYY0TB=c^lUZv4&9e?s;Yfvv<+MMrS z7}{r?lXq1~ixuY~(Fhy!;w*XuiSlm--Hc(+Cj(pXDQ2h+LGQ=nCxTsWswkyT;KYz?rXKiK_}j*D@#T#rIk}^wEwHt>Bx`_9PFF|;x)W}k zn>?34iwk_&8~V^)K}o#@ylC6Rbb~#Osl&F0!ghr1X_65=d^s6$a`2NVO{QTcw6fSP z21;p*S0||hV4w6vRNzf`6~2itMJ$&5OtDt)0(Uado)~Yqdw#^kH~&tEU;5Zqj-#r; zBHf@%f1$;IC>yzrGMo6FguRKS;p)O(P<{@pNOE={&8L!;c7h@4E_C=M+q<;)!olLB zT2AWb(-#xuJNgpz@L<7#Yv<&fxYW7sIa*NPUSQv6yV??sOwT>zQx-7(Vu&G8DxutR_$dZn9}c4DBH=iih1S~K4+5W(YgP}Nj8CUVNc7-?Z;~ioh-Yr1OQGnV z-Htag({|NCXho*3%pY8m78x!+`oyr3;)^*yWqzvm^GnNJoIO1U{rv~95u`-oFr~QR2)m!Xjp+N zVMl1S2Ns4&c~z(+w0;nHb}jR=ToA;(c;yw(cdLx-xlIXTQQzj`VY$aobSHH*Y`y^} z-)1<(lW`G~GvXGHm&@~6#o<}E$}2AT1=uCfeUZH=g%I^>+Tj&Aw66;*zba?FT4uJ0 z>XqUbVj3t{mc2tyLVKUP7&^Bv%^+w|ecRD6J%;O9o56c_3Q}7g-{@5uT@+l{G2D}+ z3JAxrEZOlnRI0mCuV7z=?R}N9la>b^J*Kw9Ddn`%{1Qw*q@v;!ukSb=5=;*<^?b9S zA!RrxOI7BTwrle|!p(o-Y29JK(Zu;hJ}_lQKiE+fa|349&7pLJxh(*rlz>~p^NO%9 z3_gK+1>cm|&#|9tBa9RQj2u2;@e1~qke}PT#6y>d@w$YcPUxR5D0fBnOkbXJcSYnL zs{I3*Pe9`5-dm#d563Ra{G#;twgB_9^^a~&#y2z{oN6wMkX&IuF?!&vb@QrE&;U~? z2=mxa)X^y${s2o-t2;wbo*ggNOFA7ddF98K8}VrOPpUVo)HaDct$pD}KERcx0(~jOn`bs@; zNAsJ!s~Wwv`AX$4O;Mg{QBy&X;)Jp{Cj7T;I79g$l?}U^2?(w{qkRYr=X?^^60pB~ ztiS5UjraxSFE}Bpep6Q{Pr;UOh&ZwY4X3^>K#frqw}iQ9?6f>G)LN&QR^@G~ynv8> z^-?>y+HD{Ip$oH_dt)5wlG= zv4~nCsnp77k!TsW2#vUJ$}gAN$ZU@6%joicT?~0Ce~g{em8%I`VJ+;H&|@^~-r2u+ zf{V!Jwi(;l2Z+G%-DcToY>>(d8P1iJ9Jk{WXwH>&bFMHq7JJl~9lbg^h&HP;kMafM zUu}9@Xqp<6oLtGyW`nnXc*jh7PSBqdM!zY8&Ml2<@u1_ANy91ZYaC4aXrakCJJwo+ z*hmb?$F`t~Ws8%UDRa^&DbbODy()dy5kYSd-E2#DbAr^JDRJSCD-rj=;q5=J*E=+< zAe(2*m8rW!@rt27lg*Xt-M5_kl=|SFH3{n08E@tZ^X>X`$uZ{aiB7*)wKkh~DEdW` zH$3aei+_kJnf%~vnfx&MFNc28gDNSq9D>w>O75UWlfz=RO7LE3^ECBsy7?|%2~6Xu zab*w3xO>DeWdq#M!zPEe?Fa3wSh-xc%WDmA{%hU|b5nxrxul{?ntRRA{Hi3u(6W}% zgwH43*_ji42iR|+{EV2Xv@I>s7B`2{nV7p-KtcPwUXM9cHGTj_weM_6#onL7x=5r4 zeV!*C(-q5h4+ixh7THg(GkaDhls^p<^CFB3`P@(#|Td+yw1YTD233ot!9cP17j zM@vHL|GXbwf&_*iif42uqLXJWY5p^id!i^p3!&`jzVdi7=+@D~YAwAn6@g3(OEu z`@)yX7ygpseGzkXT<198U+}z&Hzv1R76JW$9Gf#_hl*mghsD{rNxvKDtvfOD?T{t5 zu3+59c7n*bA{iHN(#`^h2?z_ehC7lrgr&(xAPE+a(2pMY;6a_Yy`rOf-ud03yaP~W z8=}$ zCB;OUg%4bmR5CIEVH2=*14WlqV)x)#$98e)AY}gQjj-bcz%#RHy&KI8-9+z|hN~8R zxwdwt;M9`sh_?llQs@?T`^alb`??+L8Qb=9V$YI^=92v5>@#QYj!xjqZtRoq?2DHr z=C*{Z2fyAoAoV_|DFHuphaafwGbXu5zQ~A9w5!YluW(Z_)4V<*aqK--LmkZP2$NTxse9%B?E8xm_6!^Ik$nfuycW=w*G@4O9lwoF0g_1QI$ ziZ;E*h@(o`ZSj`MJ>tIVq9hB&a#ItSaOLdmw+RdK#SlN+pjXCHf?UH zuN@`fMP!_|=MjLuS`r0#2R&~LMe&qv+Qt<3Z7bK4Lg%o;*@E9f9yVf zm*{o?ajJIWX*K7ncP4;8KsRiS6Hx7iKXr}PdP5C{a z#ht^PSt^jvK}7=2z7HO70rGUO_g-gCur`l(kKNaW@Ik@fOlP;*XnKI~Er_+FmP>}c z_LdgiWE|txGQ5Z8wl;-dS%vj`G!EN)!|(*|PWnc(N*$%ZV&J9BZYKzox*o|a$5k3r zC|Nrf^%eBuNtPs#tW1!tNFZ5pgy8>uX1>s!?)4pE{DW}4(dj;UwZ?COp++sCe}m}u zk(VH4H)75Xu}aRkQsmjIfI2|YDz!77OjRY|so9?^i9RZ@1na7dyp&^#`OA^K)KmT{ z;nArSwduqhQ(ED8t8%WEOJXtQ)LYQ9U^|{lDl~;qA^P@|1_iK&3+k^@PT_282jutN zu*MIwUhMcBovl8)l($0vX-_e~v*a4DkUgGm_TkC{T-uU(C5+5D_sBFgS;@&KS_^=; zh>bvgRK>!%DU1uc+C|uN-eu~WDPYr3d;k)vaZjw4cP?|1@qb&*XC-- zQWHFD>^Rq!T&{kg3AVEmv7F;6rU-l9qL~GbHuky%817aLJKKM+WeO;r*1H*~K7L55 z{8pt=XOO5o@D$loos-s2+Du8dOiZn7ELH$Dtt|=CY_%uZ9%Vlss0@otl$QDMf|AcF zhtWDGEvc*!Se}DWl}<{I>#B@Bsnl%Jm@ZYdqGK(8Pj3&PQ-G$do+Ce>4(}94maOy zC4Q2dAm|=+#(BMin-#4a@V9^D@y#P@OP3mvd>GgtxcWNx&CHh@pgwO^zD@e%2y`Iz zA3N0n|C)%1dx10a=t)VLJf=<1t|k6}BZS9|qnmF$Eiw0IHscS?U{c7QI4qZ+LiikN zT6;$Q!<8nbN~~ICR;fzMB41Nda=~Mzc$wdU%?#AgO&NH#?3PiHIwJ_-IHd?5r1A_| z%wVvR*YW8Auly)#EGVbTuDfxnRgbtXMz18bfGIAGs+Fhmu>ubWlJBQ5Z!mT>A3EFq zDlI8hh8b68yL`^!uY{ghKv&4*3Ms1&_)uZnB+$HowH&&4gcMnslR4j>zYNZ@MmV7H zk)9+WQ~DU+D21RYrtQf{KW}k1B|#!Zaa%kzER9)ui}UYy)u=R1rL_V^VV3cpDV%*B zvm5k(+(wTp`P`5fNMJe8IU-)%bwQ+AI*ENmkHi%&=?oLWD$Jjt5hbZDx0ol(FQN?F zH_Q|Eo4eu{_`k;$qjag<2XO!Z-h}`F`2O$XijsE!?G#$KHl&Y^YWr_bQpQ%+xNMSK zhwM31GTph!rPQQLfo0Z0ldMvri)jv7>-gNbOnQdPJ|xti^0vUXrbvoNQPK5cXjH(o zrPBwUJm`amJ3>1Oss|7#-{0FUZs|lxt)uUqS+CQrMxWEqpHuBw*j=CN1bXCopylJD z!LF|0n-kOr4azv^68n^KSU$aJYoD%EY~QX}daC{BEfQq5@LSK&DcuVjS0Jz{D{(xENp4rBB+k2J#_W@a*AE_HPu9WS#i6wth}sh@S7|{qE^s zjQF;v+$Fz<4{yQa?ipW_N&Kb{+hqP)>AW^~yk!0(;yFHLUH&b}wTH7AK6T@H>~GL~ z9g(+5(>G}=zx3dPyv6c!2G9=>Y$NdQx;&qG?T!OUW>>vd$z^}qYub^aP*z;o8rpR_ zBdSQ!j*LH9NaHsj68goBqqVm(PcMH`yrNyi54WGQkhUk&$y`L06Lc9nr+2o|CB?k3 zU(1pbW>`FSA$Pcu@3-e~eoRPkWrs2TllU=XT%cLuq86R?3hPdOljNaH=Wv@M6Rlsr&tww`yc^StIDODtwULEY5GYP06`~Rmpx! zMa)TBSQDcsIycWHUqzH<_V;;SL=JQrxic!`TwF=7RiujT$JnwCE^{0i_7c7`&{Sc` z7fj2zlIHmmYIbz%*;bon-e_If6DwpM_1R&`>iB?5nXh^^&DJfa|GL+mr5HG=n%Ecf zp#?fzpOb(L8fbcREwq<$E|f7cy}>(ZDYU4_7xJ$xqwHp_1*Ncpx()W1U4Nf{m>Hm) zx2$s1O`Zr*`gB*=z2;cnXwnb2)K=QMnb6F3ks+NlbG zDG+ca6@F`?m0`Tf_(%keE+ip|R*+W@OXvlKCwU0CQ_K#gvPM?_P}H^p$r0EP-htn2 zZp_GW<~Q9c+A(^j2L>5s>rvgC1rImkl@o01wH0Y4^Uf`5GD}_hI-aoF7&7jA#!0T7 z*~9RG&oZ>F;LLr4BK`swg!G%d**hatQ3Sm68C=s&Fkz^Xt5?q5Jm70lC&w3&qQISJ z)(kk%W4uH-31eUUWoMHPHALrP3~Vb%>iHYJs06^7)CEYg?X|H&G8a4W)aK43@eaR4 zX?K$RtarX^Hg;p4J!zRJSicgPo3hQP_h)+~5fji=P6LWHT7Wh?ZtBetSHD5))K+bzC}P)?gK8(86MG=5*N(y@zU0AF8Qnna z)^(yHIM!kKoeS<^V<-)->p<_~eh90``a&*xU=E{mIw&YAVWrmKBv{w3Xi-%bGB*j< z>P*O}lWEVCV$H~;O<-T$Gn89y0 z6ldvU&7!>u({c1@o;*M8{SwJD6Q%6xo}JBYuq*2{O)9?nHEyN zj%UCvrPX)(iQ}V{vWRyNd`jVJna6DOB0|={5sX}iQs`isMQvI5%5Dx-or9~Pzn+O+ z7VkKSXEG4unh-c+=L>omTjjw|v~>!Rxtbbbyo$vzo8>SOn1*!`1Fsst_U1w^{;`U~ zRF68KNPqm2EJ4Q#phqrg8pDT5_AtuI;)JWIiW-SU3qghnpD_Z2q#}r8TtKtNG&g zxqs7FQ=ne+0~?~AWdCB?8N8sjQtVGAkOpw})w24KYwZf9=*D?>wtfW^IyOmgST?M@@x^`?H1o^1wNdrD(@?sbfs+V8D)dh0#GEa{c=v-hq&yUqxTXMxiTP<#N{IcfmgS8yO zD(P}Y0CY9N(!r?sY!!=!krT8z11NMkgt6uBW!zjl?q$L5s*w*(#pn||-tk5{j0}8mkZWg6BTm|0HgeK|I#ccnsbkAz<*^0A zMl~l>+|qPNUbQ|tH96(y*3Mo0$nrx7x8zUCj#|=mF8%>g6DpWkr@d3%UIJW53Sqfu z9QqJhb`QPZ+Dh~l5#iCtFVzX@{P9dE25;z717X8lFKR>amdwtoUkyvi%gk{SG_@^* zwJgeEOtu;nEraZ5eq1mvcw@T=`k+ASzVzoeslzrFAvrp8O{${jPD|4+EG|po; zFDgZUu(iz2=od-p_z*hzgE!XV${fm@zw|ta&@^aEVG*WyxX@%QaM(F!ROcHQK>>SM z%|dLN1i~s#VR|#p0(np$3o3t#rCMcrg}B79h>YRGeOD zpp^)Ys6XBTF-}Xxq$5w-DP%83CHwL?R(X{h2B;UF2aE&C*F|#|iKIqbAb|<2 zh(PjlB!PQ9D=#m?yAmV2lCadzqc{6mT!&Su0WY=p`|!<9;Tt${bOAqn!;rl~*0ajTE`QGF$VB*t#q`r9(sqx?Fr} zBRvCVk;IVV+{c7*c4Z|u>1z>8X?m2Hq2gH#$<<~ZViD+)NlM43z8V~V#~kVDVrCk` zvR*M*M}^Yj8bl@Ow*?qyVI7O|uvKs#ymXPlnj|A{1=!n=A zGdF2|N>La36mc0hC#=MLZWt)XkrN#Oo)_w5iz!X?fWfZwI;(IYiRf1o;9~FA?5RN` z4}Y9a5cL%jA16+;Wf{6tbl$%8<(KXjZas>W+#eXx?ZG`pu%RM$ZNMz+vNQ$d@a_*I zKNGY>0QI1hqtH<8D5_!xhM8FxhK{gfBCw_#CKtySu3k8X^+WufFecv)_2zHs#c)BT0OGTyblg!Sf07O@j}WD_mpPtxHhS3#>k=3Z8ap#Sq!I<*M(_8Cci2 zxquAof*o%knXk=#_`nW_qrLwL`hb7+D;1&qR&>`1HhXiRrG?w;(~4Oi$um(I;TsR0 zWAs(GD=krKb7N)5u|toE*}ng`D3)oVZqU{A&dc;dCD)7XG;+hSJcfMD&YX`?0y!v@ zO~#t}1;$O_Gr*_(r`lDN>t6^epnW>By%rPmNj0P5FgjcD%b3JEtj3==dA9ozejb_- zLR!sUqphjmiw|u~vQ^XJ$Ocfxy;99Lc_ zVu;=vxQNu@G`7-Q& zpQyo#kSzkMprH(WOh0Xx2z9|!ulM$k!) zGT=h#f-K3oYd8uD+~qxT`#lSm{cgawl#Le@A9v^QQ%5E|3V?67aO@WAiFP$N@gseq z*VXG|*FD4L&z`RP=c`wNjpsmjU&@Q0k?y{n7e7C2#Lh9T^UK8^en+__`}s^cmTRwO zcy4sdnIpex1Nwy3yCWnXE-Z?W2z@oELW(dA>banPd7B71J?u_jimWAQWKQOT#+TBV z(j%s~v=JqW3w7T1b!7C1?bn=*^)*h4d?`g=tB=zZs~91stY^v{89Hi1YiN7{1q5 zK^AmJb~miVMUKPo{Tblj~$d@_4LGv55Kl(y9^x&^wUo3uJx$AX|1P?;S^eBnD*8agyt#CDKwyvFUFQNmUk{nS@dUEBl5@Co$U% zq<@^guR@S-F>1lByo_@RAGgINlT+Z;h*?$S$g6FSS!=1g?v z_ce7+tRrgm(DAs4rYzM}F~AkTHeb!8b@U-+_>laG=;wz4NJ_D{awg~m*^ec;`qL{K z4CWqn9Z8?1K7u|4X!}Lz6_Q7y<}0|1>W@ zxA)3rAP;B0b;hZRrYL>pkTKyL2EjU$k2?dnVWk6;g>k?9a+u!h`5}GKIng&prkqQ} zG9}UFd2)4{nKQp@RyC^J}1rZ!gJ&;4!{QvF>heYAZ6MpKsmIb-y5W#9kCX zKjK`*7o4ALv4b$Cly1RA_W29;`X_jaVz7|=r5J(mzecDziZ**w{N&&ZM3a7WeX3>$ zR(vTp&MvStf2u@fJ=8pWrD>{faP*L!-Bz%W&AFy|G(M#4HDg!trH#@@w%0?w%gP(( z@%#B`zz`bAWo^H_YY!FbgG;|xr)uCmhC&aRW@0;k{1`ie3_&kFxaWVp;|z=|68sUj zY(|QUNdcc-=+$0PUnY-slTT^_9su=r-KEH~t9L$z(>>TbfR`OKn-J$KD(bLt>GGQF z5$QwpHvTe8^Alq~Iwj-<1KXpp@@M6>SaqClGKZaWNpC-1HZCQ0xy0N1BiRU^@$zr!CgWLlZ0N<$|G&a-PaPmYiPs zt<49Gj_H$I&AC>lO+KMa_}PZ6@~l)d>PbWD4dPSxAgu=Squah@yuw8VeHpfg@29W2 zS&y+|_JdWRQ=Yk&ofTiMGL@a_Ql7Kj zl72m)>cFeHA7sp(?gRb^Rw15$OOZeFz0{29*-hc}d3Oyr>lePM4y?(2y1 zA$X1?!!_;`1w&CP=lk+0H}`P0j5igFn5fVfU3kIm7Ah@^+P`VE7cPx^4TD*h z+mYKL9EbCq%mc)rFe*SWo%mWV_Y%L5Abyy@@v%E@DpxL*^9+aGBT)B%KG7{XN={CO zsq(%c(p$m1@OM(?u3Xv7Rj#BP)uT(PFBl=<7qbbYUNA%>V|(3mUl1mnQfQ`hlWeZP zBve(gBI)mghTXlbhDS!3E=F!!bgU_r>hEN1FqD}Lws6`LC(ivhq zZ|s*MT%_!NoqUYlJUC&UuuLEu7}-s=jKR$E__gxr);ZS=F?PGs?yf-oq0U42^P*|u zf^7ZFo+t50rY);-ZYpo9RkCCI*n7 z^AImb7gpC26nTaL`D9vIiIhnP(=}lD3m`Hg2SCc`rVTeXgAGn{LfOi!A%K~p?z$$> z4@FCUyUiZy2Pst&+RKo4nypd>Kcr$KiqVczG;+mTaXZnOx>Z=q&BI@8FtgsdC=6tn znVg+|IIIrOEBOR)yFGNqB=}^x(l}m=1R^BLU$@wfRX2CRI9;pljje$)k$K#RHlyR-1kT)5w^QbVbJMVH10Hr)SdW zrBz?HCV~t6eo`zUkxIc!sXdcuJmJQXrbvBhi2nQ!!Fer11cio0+9od!*EbaA)ZfA1 zZm7(s)|(PO%JMwo6W*os!bKR*hQI$_l76Xm&P@wVvP*4?&xg$dcW_1146wAj(7$h2KCz(6u1%{ic zi}*<*=&)Ip*S3F}_rRRz4y(WmPniRRst1btZbF*(0Fn1Vp7*f$28s%B?>I5ns?)8y zQA7IXz)sv%DkkvA;oL=~+*%9kzW&uG-ndQtNQ<;By=H7~Zso-V3zFF40?>!3yE_Sw zT?qVu-im33bsmykb^{7_Lonz5%B24cwQwnK!SohIze{03@|LywNVPiN>o@Vh=5h^4 z+W$WD{E%MtydpskxupiHC8N3;{GqGWbgP>U=AybrIw1umeEbLkt^zVyDPvl+VZTpX zGH1!0sV><&oa=!ZjRB~I<$)Jtjg@@-=M+jh>n2hX?^5I42EFaQg!GPUU>>b*&*Ix+ zq4SPI2b67(hOk<0ptUK!u^oWhEz8z)d{8zbSnX{MbeNl#6Z~^?***_zwJ4XC(~Wtz z6C&Lk-Q(lHQOq~ZECe)?S3YLHk24ytB)B)Zap1h-2CpzvTOL7vy@ScUKud23#=s17 zg)h*2HM}boF7VVF>AWy~K}XfRI26PtyFL28_eE$dU6!={SSjg85<+I{t&le zg+~h&)m0TMwuC)YnUP^j(OLkDC<{jwW@}K-7PeDjIbvsvEUqAx<~66I7p7<+84yHrgz%E)xGaNKP*pXWwg;^SRZ3sQ^JIZ+*bgI3^>(1i)D9R9j|!fyO$`!A6RZkB~`r7D^AmI;ZtpMNgRE?ojTS!$MIqN#v@#t+*_wf*03C9B*O~ATyg)d zd^OsDETIM9W&)Z=6>fe~3n!k!%Fl^=fiu(VVcIn7M@1OL})X|6r z1SIzNmq*nMtSyWUoGtAB_cCd*hMV{NBHkM`!dR%x*Lp+Bp;LoX64Rh%0Y?006b5TT zf3Qyu6jK3>&JqpLfFl2|Vd!~mi2|8Cm;s#_P=!I(5xC-0Z^{Hk(qpXy??zYGB$Ui} zxT-9u0AeC0q^S-4d`8%yvJt?Xjp$Yof(6H>G5h|!=mZvE&v7}FP`pNJtgeZqGoT6= zQqJMxa=v&*w|b7L9ssAN5orUk7VdhET(J$^l2~R{iE{0;9~Z*QzzRQVL75{)(ssio zs$=F_FBy&s+s97POwB`yz%*@bmQS6PH~5hi$`_!v9i zxy-Ed(+|h82$QZtolKV|r9}CdoM}e5=K=iax=b+-5dK6r6nR{!Mzi99%M79Osz7Od_3*~Dv)Uy!w|~c={U2H;AF6KPRJn7P0p)=8GSK^ zYSPqk)u?3?K}U^7S}q20LQ7sIHPGr#EU>PxW;F8*;;eX};N@-h*&k~R5pcbBrbUy;$$l5zZln%`eOVoRBt zKl+B6ev^fnzjE8Dt&A9Ux0a+Szi6VI^iy5JTky^wiix zMMUk^2{JWvu#E>2iID~&`dNMTRKXUov`(+TUBv@>PxUs>Lru{26(i1mWd3z zYrcYQueL99N?7PT%ssW+kPrD01Y4uX`_cGqd!o9h@v3*W6KDG7T-~N^gDoeYY&HNObk;RHwV^1+*0EHF{!35ow zN-}0Hd!U<|c*u_UzJoyh8uoGQp)sO&vkQ#zB4LHvVCQWO$M{8c`1_^X;^wTT>bdJD zZJ5qiti{awZ;1))8Vnj9Z$$alFFuBtQQ_3n8EGTpL1hQD=s8!Y+9l6u=sr*rHC=g% zCuQfJblJgSmA17(qSA9bLvu2G)>F%^(0BNQD?)aMY$fK7NEeRvfgWYUI~`+72@?|7 zYFE@^GtZV$qP1;{`Xcf=338MfkzwfEc3R|9RZ&Yt1}l5m^)t~$>*G)t1mFWB^xgXc zyrw~L9E&{AEUSF+8m0PEvbaf%e4vl;g0(7a95&^4t6C%m3vaG2ig2Z}t(`8NlZZ?0 zw{a6`ur8jo^p2%LPc02W$1$0!*0S^Sa_i38teHN^!H(Jm!nFj`skTHy7Kr_w&Q8(Kc2YN}V^*VMzt z+OIfGmzcJj`IVWRsJec{__Ac6XT9IZ>G-DY;z>``22gIrHXZNE)16bCNv^fyG{tJEjie-i?ofcoZ|gQ$Qf zCFJrY^q5>qY6hyzl*sExucAPC>nr3$9N7*#7LUnzf04m*GeteX`&8}&08)W9V#`S! zn_nJt1CoRDqrU*2px#XAidntAm;I~-tt~bE(I_$#Egd{PjsO!>%6&dH3osJ{e~4)R z99ZiLDf|y84G%|fy_z4o63xWHSMV|i%TVCxC4^Icjp50In~vd17)VF?>5%p`p7~qw z&YN;d--Z_gx4+xA;oNWXe~S#|;*WTC07KZ8X&-j3c7#< zm!F9Y{Hze~1XVoLZT-sXf_b?`dYSl`)ZSRhsWB488=4&5uL`BmC{Mn92~rU@b$op) zRI;AI#szSMo-a)MD*mbn_K^0#xu0;`@wtj_n(k}2-^=EY;PyZyO@3P9i88dAQD<(U zCj3DaTv4L;UHX{^J5(VP09u|=O%^%Ef}DOi-jjR*mI3%r9>2b%yER)2~WIJq9 zQRc$Pu{!+t!0+ihTZ$6&5O+#2AB7kUsN+4rCyY;bL^^`7yk8=tlmw{4$WAtRYs>24 zWdw(T7Ww4eyS7uPKSxrP0BFL~*Z@q!6@99a{BStipH+CYnVXRPlG5sPgbY=# z$v*m}HVGxH7RVVrfD~4nBNm?-bO~xgt|Lj`BZQxso}Ar{TGB1eOz@?PSG?!n+G8&^ z(%YYNI|*J<1Q7VGg^;JkW`hrmy{RG?cB+EjNr=JuX!hGFuQwI5gau_V3O@*24S0Mq z4~Z!NBZ;tam#a!QR7tq%I;5+&p0GD=GyJSLqJ(;;k>a34+fBGr8Su)+^w<%F5ge3i z+(o;CgRC2WIY|k>nPA?t5QO5cI$)*fjZ-V_Eg#iwQyBzeXZ=6z#<-H6?TGDjB9gWC=K9s7eu(p9OH#c*b$(OH9)qY6bTD_ zeEn@oQ)_HihQvk5-eI)S*-N)Ec!y0K6LY2SYqP$*+4N1;Oufm7q7w$Q<=CL~fC0bHaCgWmsJ6lQ$OAbgH#QEX5=A z$e9i{W>bhxg~cQRCCk~ySafV_qiHpC-7+Pn5s@(hF0>W z0N7`qgnNGZ>-wy7g4n~TBP}le5-89eLF`UZ5K0N6>O72CmeXqKR3-rN=a2fRFBdcq zz@H_;RVT8E5(yRH3~XF71Kx*9&>JK2q%SJ{)AphRJkXzG+|XV?dQ~oIJ|$mTf%o>u z1%0P}c<(KFn_h1b+B4+bDIfS=^EUZj;`134S?KdupuTT=yBUrqj8MOf7% zSJ{I5A{)L&^)j9k)-9DH2;W!eV9*Q&ooOa;ink|I)<}Na87Q)XJrW(I`cbUJ9$Z|u zx;`Pg&c2}3`e894`&hEnOZkXGsdDy_=Cx$=B4@ha<8Z8}W;2AbrJJ72Y%-(x6(0Ds z6P8C_mAT0_JKtoiX2pJdVlCxI7>mrycVrFH1zGTm9S3lNO#)c?jaG9g6Yy61%=`m@ z39KoVn&njbo@hYdmWMBkaD}aMUQcppNF8@uJB=$`K(cg_ZCpop;CxJZ&ACJy%I*MP zEl-FzhezgIqSoe=nzQx~QA-!|IA^81RU6dE#v`dehw@ZsWF zZvAFm(hf9RH)<11~gz({fDQD0mAeBK~kwLtTJES%(~f1gyNUwvGpb0|o1q z$J~V(Czn~n&Y>epH=_rX0v5E5MzLTffS;3-k)4)N=-GMyN?i+zb1;m#-d`fhg;#D2 zIvBqY=1BncGqcR(czRZAr!JO1sY3vq6T412iRo6S876kN6|KC;0hIW5cu2%X_)M_? zH$O*_;Jhn11P6cOpe$Mm;g%$5!aYDtD)@ad0sPc^pen$giE2BBLWswRD!0F@f_zQ zIpQcOJhAYJ{0>ao@Q3|F4g?&t&27!;=8cHQ9xFpm6&(I=I98jioDo&V6L7ZZZQ5{>QL4s{?%ZY`10Eu5YEHM zCZ{~uM-gWj-ScQ(K~Ya&XFk{Boc1M+mDOx>)XgC~*L1k2RuLS@SBJ9BpK3wYL#yXa ziHJh8Z}~ohffpR@cKMs>3zD?y4l{2INUL1*1XQ+(EKFIo1upURO{?~mfxOlua3-^+ z5!>U0eTD+yZ|;0X6e3OEA)Or{<&fRNEl~N4gU2aK67Jk&5TYbNE-Q&|XJ)&(hDUgi^KH2h3Iugp&DTU-yTX8wDQ z?CorRF+oqNE84BGBYvK)-HhUE5+vo;RD{i`7_hm#nzV65$$ReG^(`L(=Cza;$Y+C za+ma>|3(h+2~wvq%~2Gk2z<^dA_P2qt5@RdZGuEZjmQ{EK|hWsdsIyh$wLt`lw5Ut z93=)&B=}N-tTbG}*LD%op{BG>cTmbx@WdL-e2|FB=2W{F ztf1RE^2}f2QCWDfa=t`rPjS(BiW|MK(~bom1aji7F4F8V}pczxh6IW8lCEr zviFIIgNX!Kq^~jyS=+Vw-ox?Y<#AY#zg# zE>lvd`6x}EKMsHtfexc4R}Nz%ksi!19=`(;sZUaH%E{4mQsofJEHANkiHh^W0SYFG zDcN8YDl7}#fGt#X4&jd>@7?$&J2SdNQA(dECeoQDcIKf4n3(A>(TxOzxVRl^oiE7PRTl& z{glqPp)KuksmU|S9O$T@tDh?%07kWM1S=itVe-N5`Bu4IY?(?e@SvMlG z5akz9p~eb;@Ck7r4l^W;pKr~2C|Z$H(l8}dznc%NCX)-&rWQayeBN5j5KbuaDytQ! z6&0>y_0v}S+uXh9Xc)xz`P;x7Go7sVJh9Pj z2}8H&O(V7{ao#V%MR_nz#L=-&fO4)e3k|y1{4oR%^W|%^AMhCpXwqt!%!9G6b=nqXF&mi>?mFa5b^M~O{{ z&?sz!B~5p^Fy8X$V59af+vP#=xr2B7Z!dE)dQi{Ut=bJP3Z2d{8G^{yHg1^5YooI+ z#wZF@jdeV4;Dr;SFUg_Ut!N}C*N}h&le6l45h^23sC#W#gt$VV~0E7<5V@m0u|8^lsbLy%QIO9!M zYG;aLsZ*!tIaG9+l%yG>$0!@&&gD%|e{7DzL_&r`MXy`^D5;M-Q45i4%LVHMzIK#L z_uU3~=(4*dSMI}g6FX0>yt}1WOcY6~Ur4S+3mPsIUH?+O0^RV$9Z6jWMW@P}jiej* zE&liop6#gD4d~I^w5PFU2Zeo8wvB&Jwd@ZH7oW2Df^j+Jl5Q;aD z-%a>0J>HR3p1bd9ao^HI4JqGzQQPCj0pY2EFG~w=LF)H-M>UNA@b`k75@%yn(R4Gza zuC0IQuC0qloGg}o+0&6XpvPrX`=nQNl{rMUo08Mka>fWo9-mbB^qxls41x;!-xWaL z|C{%M2y`a+>;0cy;Ut#a6%YWX6zobEb$Mc`%Ab%U5zbjGv z)A)bHA^)`gQ?cT=b@=;DP(CmHK+Kz*XW z4fy+6(SN39{S*ApjLqNRZG3+l{Ez(2Ke7H?{``%#r1iJ4{>x(MpO}9>di#wzZTz<} ze_!0c9>o0y`_IGvzrcP~=sxRz{qFtGB;X%)=HHD8{}JZ@+v1)5yYYXR6#RE@zorF$ zm0zLI*!){4|K{z#RPFyXP56iFB7f(<=lFjn4ZpA9U$y_wKJ2%D4yV5r_%Hvzdo%@U TaEM>7P~U&_e|>WPb@cxLBN-UW literal 0 HcmV?d00001 diff --git a/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v11-20140908.185829-596.mar b/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v11-20140908.185829-596.mar new file mode 100644 index 0000000000000000000000000000000000000000..4ca7737a6e76fee83b452384465db57ea1e3d981 GIT binary patch literal 31367 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 X+7zTg!G2Mpd^`+3z9G8&`t^SR2-5-g literal 0 HcmV?d00001 diff --git a/modules/integration/tests-ui-integration/src/test/resources/client/modules/rampart-1.6.1-wso2v8.mar b/modules/integration/tests-ui-integration/src/test/resources/client/modules/rampart-1.6.1-wso2v8.mar new file mode 100644 index 0000000000000000000000000000000000000000..60cd6cdf8894a651e7c3c0083bedb6b53a1e56d8 GIT binary patch literal 9708 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' command line option, +# +# (3) 'emma.properties' resource placed somewhere in the classpath +# (e.g., in \classes directory -- note that it does +# not exist by default), +# +# (4) '-Demma.*' JVM options, e.g. +# -Demma.report.txt.out.file=coverage.txt +# +# (5) 'emma.properties' JVM option pointing to a properties file +# -Demma.properties=./myproperties.txt +# ------------------------------------------------------------- + +# ------------------------------------------------------------- +# logging properties: + +verbosity.level: none + +# classloading properties: + +#clsload.forced_delegation_filter: +#clsload.through_delegation_filter: -* + +# ------------------------------------------------------------- + +# instrumentation properties: + +instr.exclude_empty_classes: true +instr.exclude_synthetic_methods: true +instr.exclude_bridge_methods: true +instr.do_suid_compensation: true + +# ------------------------------------------------------------- + +# runtime properties: + +rt.control: false +rt.control.host: localhost +#rt.control.port: 44444 + +rt.filelock: true +#rt.filelock.portbase: 59141 +rt.filelock.maxtime: 120000 +rt.filelock.retries: 11 + +# ------------------------------------------------------------- + +# apprunner session data output properties: + +session.out.file: coverage.es +session.out.merge: true + +# ------------------------------------------------------------- + +# runtime coverage data output properties: + +coverage.out.file: coverage.ec +coverage.out.merge: true + +# ------------------------------------------------------------- + +# instr metadata output properties: + +metadata.out.file: coverage.em +metadata.out.merge: true + +# ------------------------------------------------------------- + +# common report defaults: + +report.units: instr +report.depth: method +report.columns: name, line, block, method, class +report.sort: -line,-block,-method,-class,+name +report.metrics: method:40,block:80,line:40,class:100 + +# ------------------------------------------------------------- +# txt report properties: + +report.txt.depth: all +report.txt.columns: class,method,block,line,name +report.txt.out.file: coverage.txt + +# ------------------------------------------------------------- +# html report properties: + +#report.html.out.dir: coverage +#report.html.out.file: /Users/azeez/Desktop/coverage/index.html +report.html.out.encoding: ISO-8859-1 + +# ------------------------------------------------------------- +# xml report properties: + +#report.xml.out.file: coverage.xml +report.xml.out.encoding: UTF-8 +# ------------------------------------------------------------- +# end of file + diff --git a/modules/integration/tests-ui-integration/src/test/resources/filters.txt b/modules/integration/tests-ui-integration/src/test/resources/filters.txt new file mode 100644 index 000000000..54913a22e --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/filters.txt @@ -0,0 +1,17 @@ +-*.stub* +-*.stub_ +-*.stub_4.0.0 +-*.stub- +-org.eclipse.* +-*.equinox.* +-org.wso2.carbon.user.core.* +-samples.* +-*.log4j* +-*.axis2* +-*.ui* +-*.tenant* +-*.stratos* +-*.eventing* +-*transports* +-org.wso2.carbon.mediation.statistics* +-*startup* \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt b/modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt new file mode 100644 index 000000000..917b2bb77 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt @@ -0,0 +1,11 @@ +org.wso2.carbon.datasource_ +org.wso2.carbon.dataservices.core_ +org.wso2.carbon.transaction.manager_ +org.wso2.carbon.dataservices.sql.driver_ +org.wso2.carbon.dataservices.task_ +org.wso2.carbon.ndatasource.common_ +org.wso2.carbon.ndatasource.core_ +org.wso2.carbon.ndatasource.rdbms_ +org.wso2.carbon.ntask.common_ +org.wso2.carbon.ntask.core_ +org.wso2.carbon.ntask.solutions_ diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/products/client-truststore.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/products/client-truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..9e3a51db3e8329a40eebef8e585a4bcbed7f97fe GIT binary patch literal 36522 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 literal 0 HcmV?d00001 diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks new file mode 100644 index 0000000000000000000000000000000000000000..ae5670b037e576e9555ec42c10e2bf6bd97b50f4 GIT binary patch literal 4993 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 literal 0 HcmV?d00001 diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2emm.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2emm.jks new file mode 100644 index 0000000000000000000000000000000000000000..ae5670b037e576e9555ec42c10e2bf6bd97b50f4 GIT binary patch literal 4993 zcmeHK`%jzK8TJhmF6L%z=8%95go}anvkf+vFvl?kVuHCD0|v+V5{EzogkT2(1XbPE zU#hliHMQ%cXxiE?nzTq$RZZG7RmzrDTC+}SlPc}j?Wb1SPu-ue=i!_hlx$KbP5Wh) zp7(j*bI#}Qd(V40-{&vi`R$iqL8Ve@q^MQ;^?35a`i4rS9&q_;a19p03S?iG=nGr* zYMt7yDOaoWR604|I}_T0xdpjc96SNl21x`>U`-Shgyg?>+kK_?w674hfOQ=@4DsfJ z2L5;pTwVv-h5*NAK|{h8{P0z1-c`V`oHL!Ux*=*v`x?FBa~2>4)pTe%69VfsdiNl- zKzvObIwwqXhtOxQLoeMhFEv1Whx)-8?gilPRKf(?>ioe@GmN#tBHIlv^^eotBM>d5 zb|KpZH3c~dDWs>y8^9H+*k%u+zIMQ zU$oJ|zGEPI4p@Z(m-L<;g<`P&{2as12z>Ta5D@BU0hdC${e$MM`!`{I_8f>2H!KwD zp(1jquj4Pd2|x1^Itv1pWYXqgXIWZ+orxa`&!$@1n3a_>(0k9e+MwK_3*hRmkyB6r z9j}Wgz?NCw;z&f zr^u?dwqXDy*k+ge>B(W-|1m}+V<;bEz=@WpQbrsGrAV)x(iIl#f~zYR9H*2X4zG3$hnz5|cDj8j-E)>QHurXFDT#UhKJzwrFM*RxDY;*;;5 zf>Ic4C!`tzFu&u>|HGewK7GZ~&Q{|jgt=q2tfk7XKnWO3vr~)09A)_kG}`sYSqV%q ze_|EWu~?GF;_uo0OtH={=BKQc7S=1h*oAm_C$^wK=cMoc%_eWOwSsjrc9gpbmrQH4 zY84y3Ua={q2-9(+nnPWlqTM%?5>A$iNu5@chsDQZhBSW_Gpw@#4UoV`zXJ2n8-qmY zEL)8GU^Uu4f95+bb_|P5K=y;`N~o`Gy`{3A;RR$Kmf7TN6d#1UX7}ECgACle)qnIx zV$}#!Hq)ppJ9xUeYQ5irxuUZ>d=}6W?hZrACNo{%)RvuKG~RzfMskSv0D22S+>9z$ z_#V2VagiA&K$O1vU&iErUHbp!P7@n^d}sf@L+(9~-`u$kI+q4bi95)?z+krg;Or7> zy&MI8377-uKusC)D!vEpy`b|&Pl8(@z$(PYF#%ahVsPR=?H1O^~1CV*h`!^rF1f}(lxczf_I>U3Nik^hJyt_~nW>AyO z_{GgzFrxnIWnJ6yB23wjtqd7=Kwp7@OG`mv)g+(;j%F|&EHk%)>&x@6H@0Nce%``t zlr^AXfe3h5y|R#Dofoqc<*v+5eP0wKR@BF@v($K82*k!?3tY=#I%gd=Sloa-z+y}F zUX1*GV%8+oq)_1FC7?AiR4VD|x7Mc_4b7$v9Hh^4?VDg9WP*jw{L4eFGGUH0jK{8l zI^>2tuz@~ymvp9xHNX#^z|edF<0!ulqA-Cy2t##cmOGYfJTD)-=>`Mb4WG%nSW3^! zBEn!%zupv6u_P5z?kzz2lPRjAXa+K z4gT$wKm8DD7a|~g<5vux!+wJA+_;m>dRQt_|xf5Z8xqMa2rel^%0n{2BZG@8A11n3p~U0cwSkZ{=p^ zRbCC0Klo(>n@S~yf?Mfr+Z>1;$a@MLWclEO$IWZiVx7^|j|=-URE(LKhNK7R$|E>P z5EfXB%@;w}9GAd}$XXv%x%Bt^9*ZM~4}Vl!cj@kH7-xEi=t?2WR+C$YVVQH@eS`JM z$Ir0UWr4%`({)za_r^Mm^ i2j6^3eBBRkcFX_krv$bhh5#9!F9K + + + + + + UsernameToken + Provides Authentication. Clients have Username Tokens + ut + + rampart + + UTOverTransport + basic + + + Non-repudiation + Provides Authentication and Integrity. Clients have X509 certificates + keystore + + rampart + + SigOnly + basic + + + Integrity + Provides Integrity. Clients do not have X509 certificates + keystore + + rampart + + SgnOnlyAnonymous + basic + + + Confidentiality + Provides Confidentiality. Clients do not have X509 certificates + keystore + + rampart + + EncrOnlyAnonymous + basic + + + + + Sign and encrypt - X509 Authentication + Provides Authentication, Integrity and Confidentiality. Clients have X509 certificates + + keystore + + rampart + + SigEncr + advanced + + + Sign and Encrypt - Anonymous clients + Provides Integrity and Confidentiality. + keystore + + rampart + + SgnEncrAnonymous + advanced + + + Encrypt only - Username Token Authentication + Provides Authentication and Confidentiality. Clients have Username Tokens + ut-keystore + + rampart + + EncrOnlyUsername + advanced + + + Sign and Encrypt - Username Token Authentication + Provides Authentication, Integrity and Confidentiality. Clients have Username Tokens + ut-keystore + + rampart + + SgnEncrUsername + advanced + + + SecureConversation - Sign only - Service as STS - Bootstrap policy - Sign and Encrypt , X509 + Authentication + + Provides Authentication and Integrity. Multiple message exchange.Clients have X509 certificates. + + keystore + + rampart + rahas + + SecConSignOnly + advanced + + + SecureConversation - Encrypt only - Service as STS - Bootstrap policy - + Sign and Encrypt , X509 Authentication + + Provides Confidentiality. Multiple message exchange.Clients have X509 certificates. + keystore + + rampart + rahas + + SecConEncrOnly + advanced + + + SecureConversation - Sign and Encrypt - Service as STS - Bootstrap policy - Sign and Encrypt , X509 + Authentication + + Provides Authentication, Integrity and Confidentiality. Multiple message exchange.Clients have X509 + certificates. + + keystore + + rampart + rahas + + SecConSgnEncr + advanced + + + SecureConversation - Sign Only - Service as STS - Bootstrap policy - Sign and Encrypt , Anonymous + clients + + Provides Integrity. Multiple message exchange. + keystore + + rampart + rahas + + SecConSignOnlyAnonymous + advanced + + + SecureConversation - Encrypt Only - Service as STS - Bootstrap policy - Sign and Encrypt , Anonymous + clients + + Provides Confidentiality. Multiple message exchange. + keystore + + rampart + rahas + + SecConEncrOnlyAnonymous + advanced + + + SecureConversation - Encrypt Only - Service as STS - Bootstrap policy - Sign and Encrypt , Username + Token Authentication + + Provides Authentication and Confidentiality. Multiple message exchange. Clients have Username + Tokens. + + ut-keystore + + rampart + rahas + + SecConEncrUsername + advanced + + + SecureConversation - Sign and Encrypt - Service as STS - Bootstrap policy - Sign and Encrypt , Username + Token Authentication + + Provides Authentication Integrity and Confidentiality. Multiple message exchange. Clients have + Username Tokens. + + ut-keystore + + rampart + rahas + + SecConSgnEncrUsername + advanced + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml new file mode 100644 index 000000000..4a232f732 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml new file mode 100644 index 000000000..2d076e061 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml new file mode 100644 index 000000000..794d52ee7 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml new file mode 100644 index 000000000..6ac14ecd6 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml new file mode 100644 index 000000000..dbefeda82 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml new file mode 100644 index 000000000..bafd72636 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml new file mode 100644 index 000000000..47fb6711e --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml new file mode 100644 index 000000000..dc383d795 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ https://kirillgdev04/Security_Federation_SecurityTokenService_Indigo/Symmetric.svc/Scenario_1_IssuedTokenOverTransport_UsernameOverTransport +
+
+ + + urn:oasis:names:tc:SAML:1.0:assertion + + + http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey + + + 256 + + + + + +
+ + + +
+
+ + + + + + + + + + + + + +
+
+
\ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml new file mode 100644 index 000000000..637cf81d5 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + +
+ http://foo.bar/we/don/t/process/this/yet +
+
+ + + urn:oasis:names:tc:SAML:1.0:assertion + + + http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey + + 256 + + + + +
+
+
+ + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml new file mode 100644 index 000000000..08a45d55a --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml new file mode 100644 index 000000000..0bfd14eb8 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml new file mode 100644 index 000000000..9ee47cc24 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml new file mode 100644 index 000000000..9454c745f --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml new file mode 100644 index 000000000..7de147466 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml new file mode 100644 index 000000000..db95d371d --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml new file mode 100644 index 000000000..1fdfd9402 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml new file mode 100644 index 000000000..73fa833b7 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml b/modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml new file mode 100644 index 000000000..e4791f980 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-ui-integration/src/test/resources/testng.xml b/modules/integration/tests-ui-integration/src/test/resources/testng.xml new file mode 100644 index 000000000..08a0267b3 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/testng.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/modules/p2-profile-gen/pom.xml b/modules/p2-profile-gen/pom.xml new file mode 100644 index 000000000..7d71fefad --- /dev/null +++ b/modules/p2-profile-gen/pom.xml @@ -0,0 +1,147 @@ + + + + org.wso2.carbon + wso2cdm-parent + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + wso2cdm-profile-gen + pom + + + + + org.apache.maven.plugins + maven-dependency-plugin + false + + + 1-unpack-p2-agent-distribution + test + + unpack + + + + + org.wso2.carbon + wso2carbon-core + ${carbon.kernal.version} + zip + true + target + + + + + + + unpack-equinox-executable + test + + unpack + + + + + org.eclipse.equinox + org.eclipse.equinox.executable + 3.5.0.v20110530-7P7NFUFFLWUl76mart + zip + true + target + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + + 2-p2-repo-generation + package + + + p2-repo-gen + + + + file:${basedir}/target/p2-repo + file:${basedir}/target/p2-repo + true + true + + + + + org.wso2.carbon:org.wso2.carbon.ndatasource.feature:${carbon.kernal.version} + + + + + + + + 3-p2-profile-generation + package + + p2-profile-gen + + + + default + file:${basedir}/target/p2-repo + file:${basedir}/target/p2-repo + + ${basedir}/target/wso2carbon-core-${carbon.kernal.version}/repository/components + + true + + + org.wso2.carbon.ndatasource.feature.group + ${carbon.kernal.version} + + + + org.wso2.carbon.ndatasource.ui.feature.group + ${carbon.kernal.version} + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.1 + + + package + + + + + + + + + run + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..2f1b5fe83 --- /dev/null +++ b/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + org.wso2.carbon + wso2cdm-parent + pom + 2.0.0-SNAPSHOT + WSO2 CDM - Parent + http://wso2.org + WSO2 Connected Device Manager + + + + org.wso2 + wso2 + 1 + + + + modules/features + modules/p2-profile-gen + modules/distribution + + + + + 4.2.0 + 1.5.4 + 1.3 + + + +