From 46b738900022161c167836263f9e68991508205c Mon Sep 17 00:00:00 2001 From: sinthuja Date: Tue, 17 Jan 2017 00:35:41 +0530 Subject: [PATCH 01/47] Updating the /portal version to 2.0.6-SNAPSHOT to get the GLOBAL state redirection with sso. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e4a61e2c..5988444b 100644 --- a/pom.xml +++ b/pom.xml @@ -1634,7 +1634,7 @@ 1.2.140.wso2v3 2.8.2.wso2v1 2.0.0.wso2v1 - 2.0.5 + 2.0.6-SNAPSHOT 2.1.4 [2.6.0,3.0.0) 2.3.4-spark From dbf3de7f40977b15113e08202e625f3df693c994 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Tue, 17 Jan 2017 09:54:58 +0530 Subject: [PATCH 02/47] Updating cdmf version into [2.0.8-SNAPSHOT] cdmf-plugins into [3.0.7-SNAPSHOT] --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5988444b..906caba9 100644 --- a/pom.xml +++ b/pom.xml @@ -1529,14 +1529,14 @@ 4.7.0 - 2.0.7 + 2.0.8-SNAPSHOT [2.0.0, 3.0.0) 3.0.0-SNAPSHOT - 3.0.6 + 3.0.7-SNAPSHOT 6.1.35 From 819f3c9a239391c2e25052d47ab294f89ad1f773 Mon Sep 17 00:00:00 2001 From: Maninda Date: Tue, 17 Jan 2017 17:41:24 +0530 Subject: [PATCH 03/47] Made web apps to be extracted and replace the web.xml files and pack again for fixing security issues --- modules/core/distribution/pom.xml | 117 +++++ .../core/distribution/src/assembly/bin.xml | 27 +- .../web-xml/api#certificate-mgt#v1.0/web.xml | 118 +++++ .../web-xml/api#identity#entitlement/web.xml | 127 ++++++ .../web-xml/api#scep-mgt#v1.0/web.xml | 92 ++++ .../api-application-registration/web.xml | 103 +++++ .../web-xml/authenticationendpoint/web.xml | 280 ++++++++++++ .../web-xml/client-registration#v0.11/web.xml | 87 ++++ .../resources/web-apps/web-xml/oauth2/web.xml | 100 +++++ .../web-xml/secured-websocket/web.xml | 61 +++ .../web-apps/web-xml/shindig/web.xml | 423 ++++++++++++++++++ 11 files changed, 1518 insertions(+), 17 deletions(-) create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/authenticationendpoint/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml create mode 100644 modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml diff --git a/modules/core/distribution/pom.xml b/modules/core/distribution/pom.xml index 18aebbd8..4e5ada12 100644 --- a/modules/core/distribution/pom.xml +++ b/modules/core/distribution/pom.xml @@ -527,6 +527,9 @@ run + + + clean_target install @@ -566,6 +569,120 @@ run + + + + replace-web-xmls-in-war-files + prepare-package + + run + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/core/distribution/src/assembly/bin.xml b/modules/core/distribution/src/assembly/bin.xml index 989a06b8..2b382f33 100644 --- a/modules/core/distribution/src/assembly/bin.xml +++ b/modules/core/distribution/src/assembly/bin.xml @@ -1348,75 +1348,68 @@ 755 - diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml new file mode 100644 index 00000000..7a8a130a --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml @@ -0,0 +1,118 @@ + + + + Certificate-Webapp + + JAX-WS/JAX-RS Certificate Management Endpoint + JAX-WS/JAX-RS Servlet + CXFServlet + + org.apache.cxf.transport.servlet.CXFServlet + + + swagger.security.filter + ApiAuthorizationFilterImpl + + 1 + + + CXFServlet + /* + + + 60 + + + + isAdminService + false + + + doAuthentication + true + + + + + managed-api-enabled + true + + + managed-api-owner + admin + + + + + CertificateMgt-Admin + /* + + + CONFIDENTIAL + + + + + ApiOriginFilter + org.wso2.carbon.certificate.mgt.cert.jaxrs.api.util.ApiOriginFilter + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + + ApiOriginFilter + /* + + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml new file mode 100644 index 00000000..86c22b52 --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml @@ -0,0 +1,127 @@ + + + + + + Entitlement-Service-Provider + + + + ApiOriginFilter + org.wso2.carbon.identity.entitlement.endpoint.filter.ApiOriginFilter + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + + ApiOriginFilter + /* + + + + EntitlementServlet + EntitlementServlet + Entitlement Endpoints + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + + swagger.api.basepath + https://localhost:9443/entitlement + + + + + EntitlementServlet + /* + + + + 60 + + true + + + + + + secured services + /decision/* + + + + + + CONFIDENTIAL + + + + + org.wso2.carbon.identity.entitlement.endpoint.impl.ApplicationInitializer + + + + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml new file mode 100644 index 00000000..36b8b98e --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml @@ -0,0 +1,92 @@ + + + + Certificate-Webapp + + JAX-WS/JAX-RS Certificate Management Endpoint + JAX-WS/JAX-RS Servlet + CXFServlet + + org.apache.cxf.transport.servlet.CXFServlet + + + + CXFServlet + /* + + + 60 + + + + isAdminService + false + + + doAuthentication + true + + + + + managed-api-enabled + true + + + managed-api-owner + admin + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml new file mode 100644 index 00000000..c4a51a4a --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml @@ -0,0 +1,103 @@ + + + + + WSO2 IoT Server + WSO2 IoT Server + + + CXFServlet + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + + CXFServlet + /* + + + isAdminService + false + + + doAuthentication + true + + + + + managed-api-enabled + true + + + managed-api-owner + admin + + + + ApiPermissionFilter + org.wso2.carbon.apimgt.application.extension.api.filter.ApiPermissionFilter + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + + ApiPermissionFilter + /* + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/authenticationendpoint/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/authenticationendpoint/web.xml new file mode 100644 index 00000000..466e8313 --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/authenticationendpoint/web.xml @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + AccountRecoveryRESTEndpointURL + https://localhost:9443/t/tenant-domain/api/identity/user/v0.9/ + + + + + + displayScopes + true + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + HttpHeaderSecurityFilter + * + + + + AuthenticationEndpointFilter + + org.wso2.carbon.identity.application.authentication.endpoint.util.filter.AuthenticationEndpointFilter + + + + + AuthenticationEndpointFilter + /* + + + + + org.wso2.carbon.identity.application.authentication.endpoint.util.listener.AuthenticationEndpointContextListener + + + + + retry.do + /retry.jsp + + + + claims.do + /requested-claims.jsp + + + + oauth2_login.do + /login.jsp + + + + oauth2_authz.do + /oauth2_authz.jsp + + + + oauth2_consent.do + /oauth2_consent.jsp + + + + oauth2_logout_consent.do + /oauth2_logout_consent.jsp + + + + oauth2_logout.do + /logout.jsp + + + + oauth2_error.do + /oauth2_error.jsp + + + + samlsso_login.do + /login.jsp + + + + samlsso_logout.do + /logout.jsp + + + + samlsso_redirect.do + /login.jsp + + + + samlsso_notification.do + /samlsso_notification.jsp + + + + openid_login.do + /login.jsp + + + + openid_profile.do + /openid_profile.jsp + + + + passivests_login.do + /login.jsp + + + + tenantlistrefresher.do + /tenant_refresh_endpoint.jsp + + + + registration.do + /registration.jsp + + + + retry.do + /retry.do + + + + oauth2_login.do + /oauth2_login.do + + + + oauth2_authz.do + /oauth2_authz.do + + + + oauth2_consent.do + /oauth2_consent.do + + + + oauth2_logout_consent.do + /oauth2_logout_consent.do + + + + oauth2_logout.do + /oauth2_logout.do + + + + oauth2_error.do + /oauth2_error.do + + + + samlsso_login.do + /samlsso_login.do + + + + samlsso_logout.do + /samlsso_logout.do + + + + samlsso_redirect.do + /samlsso_redirect.do + + + + samlsso_notification.do + /samlsso_notification.do + + + + openid_login.do + /openid_login.do + + + + openid_profile.do + /openid_profile.do + + + + passivests_login.do + /passivests_login.do + + + + tenantlistrefresher.do + /tenantlistrefresher.do + + + + registration.do + /registration.do + + + + claims.do + /claims.do + + + + java.lang.Throwable + /generic-exception-response.jsp + + + + + true + + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml new file mode 100644 index 00000000..0befeb9c --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml @@ -0,0 +1,87 @@ + + + + +JAX-WS/JAX-RS Device Registration Agent Endpoint +JAX-WS/JAX-RS Servlet + + contextConfigLocation + WEB-INF/beans.xml + + + + org.springframework.web.context.ContextLoaderListener + + + + JAX-WS/JAX-RS Device Registration Agent Endpoint + JAX-WS/JAX-RS Servlet + CXFServlet + + org.apache.cxf.transport.servlet.CXFServlet + + 1 + + + CXFServlet + /* + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml new file mode 100644 index 00000000..d7d02a3d --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml @@ -0,0 +1,100 @@ + + + + + + OAuth2 Endpoints + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + + + OAuth2Endpoints + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + + + + + + + + + OAuth2Endpoints + /* + + + + + true + + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml new file mode 100644 index 00000000..4e114231 --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml @@ -0,0 +1,61 @@ + + + + + Output WebSocket + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml new file mode 100644 index 00000000..ead0c0d4 --- /dev/null +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml @@ -0,0 +1,423 @@ + + + + Shindig + + + + + guice-modules + + org.apache.shindig.common.PropertiesModule: + org.apache.shindig.gadgets.DefaultGuiceModule: + org.apache.shindig.social.core.config.SocialApiGuiceModule: + org.apache.shindig.social.sample.SampleModule: + org.apache.shindig.gadgets.oauth.OAuthModule: + org.apache.shindig.gadgets.oauth2.OAuth2Module: + org.apache.shindig.gadgets.oauth2.OAuth2MessageModule: + org.apache.shindig.gadgets.oauth2.handler.OAuth2HandlerModule: + org.apache.shindig.gadgets.oauth2.persistence.sample.OAuth2PersistenceModule: + org.apache.shindig.common.cache.ehcache.EhCacheModule: + org.apache.shindig.sample.shiro.ShiroGuiceModule: + org.apache.shindig.sample.container.SampleContainerGuiceModule: + org.apache.shindig.extras.ShindigExtrasGuiceModule: + org.apache.shindig.gadgets.admin.GadgetAdminModule: + org.wso2.carbon.dashboard.shindig.features.WSO2ShindigFeaturesModule + + + + + + system.properties + + + + + + + HttpHeaderSecurityFilter + org.apache.catalina.filters.HttpHeaderSecurityFilter + + hstsEnabled + false + + + antiClickJackingOption + SAMEORIGIN + + + + + + ContentTypeBasedCachePreventionFilter + org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter + + patterns + "text/html*","application/json*","text/plain*" + + + filterAction + enforce + + + httpHeaders + Cache-Control: no-store, no-cache, must-revalidate, private + + + + + HttpHeaderSecurityFilter + /* + + + + ContentTypeBasedCachePreventionFilter + /* + + + + HttpHeaderSecurityFilter + * + + + + hostFilter + org.apache.shindig.common.servlet.HostFilter + + + hostFilter + /gadgets/ifr + /gadgets/js/* + /gadgets/proxy/* + /gadgets/concat + /gadgets/makeRequest + /rpc/* + /rest/* + + + + ShiroFilter + org.apache.shiro.web.servlet.IniShiroFilter + + config + + + + + + + + authFilter + org.apache.shindig.auth.AuthenticationServletFilter + + + + etagFilter + org.apache.shindig.gadgets.servlet.ETagFilter + + + + + ShiroFilter + /oauth/authorize + + + + ShiroFilter + /oauth2/authorize + + + + ShiroFilter + *.jsp + + + + authFilter + /social/* + /gadgets/ifr + /gadgets/makeRequest + /gadgets/proxy + /gadgets/api/rpc/* + /gadgets/api/rest/* + /rpc/* + /rest/* + + + + etagFilter + * + + + + org.apache.shindig.common.servlet.GuiceServletContextListener + + + + + xml-to-html + + org.wso2.carbon.dashboard.shindig.extensions.WSO2GadgetRenderingServlet + + + + + accel + + org.apache.shindig.gadgets.servlet.HtmlAccelServlet + + + + + + proxy + + org.apache.shindig.gadgets.servlet.ProxyServlet + + + + + + makeRequest + + org.apache.shindig.gadgets.servlet.MakeRequestServlet + + + + + + concat + + org.apache.shindig.gadgets.servlet.ConcatProxyServlet + + + + + + oauthCallback + + org.apache.shindig.gadgets.servlet.OAuthCallbackServlet + + + + + + oauth2callback + + org.apache.shindig.gadgets.servlet.OAuth2CallbackServlet + + + + + + metadata + + org.apache.shindig.gadgets.servlet.RpcServlet + + + + + + js + org.apache.shindig.gadgets.servlet.JsServlet + + + + restapiServlet + + org.apache.shindig.protocol.DataServiceServlet + + + handlers + org.apache.shindig.handlers + + + + + + jsonRpcServlet + + org.apache.shindig.protocol.JsonRpcServlet + + + handlers + org.apache.shindig.handlers + + + + + + sampleOAuth + + org.apache.shindig.social.sample.oauth.SampleOAuthServlet + + + + + + OAuth2Servlet + + org.apache.shindig.social.core.oauth2.OAuth2Servlet + + + + + rpcSwf + + org.apache.shindig.gadgets.servlet.RpcSwfServlet + + + + + js + /gadgets/js/* + + + + proxy + /gadgets/proxy/* + + + + makeRequest + /gadgets/makeRequest + + + + jsonRpcServlet + /rpc/* + /gadgets/api/rpc/* + /social/rpc/* + + + + restapiServlet + /rest/* + /gadgets/api/rest/* + /social/rest/* + + + + concat + /gadgets/concat + + + + oauthCallback + /gadgets/oauthcallback + + + + oauth2callback + /gadgets/oauth2callback + + + + xml-to-html + /gadgets/ifr + + + + accel + /gadgets/accel + + + + metadata + /gadgets/metadata + + + + sampleOAuth + /oauth/* + + + + OAuth2Servlet + /oauth2/* + + + + rpcSwf + /xpc* + + + + 404 + /error-pages/error404.html + + + + 401 + /error-pages/error401.html + + + + 403 + /error-pages/error403.html + + + + 405 + /error-pages/error405.html + + + + 500 + /error-pages/error500.html + + From 127575a961b655c683cb95f1fb0a83488f306a82 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Wed, 18 Jan 2017 11:57:45 +0530 Subject: [PATCH 04/47] Changed connected cup plugin version [org.coffeeking.version] --- .../samples/connectedcup/feature/connectedcup-feature/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/distribution/src/resources/samples/connectedcup/feature/connectedcup-feature/pom.xml b/modules/distribution/src/resources/samples/connectedcup/feature/connectedcup-feature/pom.xml index c5792c9c..9829ece0 100644 --- a/modules/distribution/src/resources/samples/connectedcup/feature/connectedcup-feature/pom.xml +++ b/modules/distribution/src/resources/samples/connectedcup/feature/connectedcup-feature/pom.xml @@ -219,7 +219,7 @@ - org.coffeeking:org.coffeeking.connectedcup.plugin:${wso2.iot.version} + org.coffeeking:org.coffeeking.connectedcup.plugin:${org.coffeeking.version} From c90bf7f9aec8b256562af87a3c61b7cf32d04f3a Mon Sep 17 00:00:00 2001 From: Maninda Date: Wed, 18 Jan 2017 12:43:55 +0530 Subject: [PATCH 05/47] Corrected cache filters in web.xml files --- .../resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml | 2 +- .../resources/web-apps/web-xml/api#identity#entitlement/web.xml | 2 +- .../resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml | 2 +- .../web-apps/web-xml/api-application-registration/web.xml | 2 +- .../web-apps/web-xml/client-registration#v0.11/web.xml | 2 +- .../src/repository/resources/web-apps/web-xml/oauth2/web.xml | 2 +- .../resources/web-apps/web-xml/secured-websocket/web.xml | 2 +- .../src/repository/resources/web-apps/web-xml/shindig/web.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml index 7a8a130a..8facd4b1 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml @@ -87,7 +87,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml index 86c22b52..ef693381 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#identity#entitlement/web.xml @@ -43,7 +43,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml index 36b8b98e..0dfb469c 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml @@ -67,7 +67,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml index c4a51a4a..0e2a3b23 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/api-application-registration/web.xml @@ -73,7 +73,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml index 0befeb9c..19b51c7a 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/client-registration#v0.11/web.xml @@ -62,7 +62,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml index d7d02a3d..02b4a9e4 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/oauth2/web.xml @@ -36,7 +36,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml index 4e114231..ce51b848 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/secured-websocket/web.xml @@ -36,7 +36,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction diff --git a/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml b/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml index ead0c0d4..857a8334 100644 --- a/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml +++ b/modules/core/distribution/src/repository/resources/web-apps/web-xml/shindig/web.xml @@ -88,7 +88,7 @@ org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter patterns - "text/html*","application/json*","text/plain*" + text/html" ,application/json" ,text/plain filterAction From ae92479ac7965fdd5a33712d0a6b8ce7400e750b Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Wed, 18 Jan 2017 12:57:28 +0530 Subject: [PATCH 06/47] Fixing connected cup issue --- .../src/resources/samples/samples-deployer.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/distribution/src/resources/samples/samples-deployer.xml b/modules/distribution/src/resources/samples/samples-deployer.xml index 5010a1bd..72b03a17 100644 --- a/modules/distribution/src/resources/samples/samples-deployer.xml +++ b/modules/distribution/src/resources/samples/samples-deployer.xml @@ -50,8 +50,8 @@ p2-repo-gen - file:${basedir}/p2-repo - file:${basedir}/p2-repo + file:\${basedir}/p2-repo + file:\${basedir}/p2-repo true true @@ -69,9 +69,9 @@ default - file:${basedir}/p2-repo - file:${basedir}/p2-repo - ${basedir}/../core/repository/components + file:\${basedir}/p2-repo + file:\${basedir}/p2-repo + \${basedir}/../core/repository/components false From df7d612176dc223cda3c18a8aa44c01490331d04 Mon Sep 17 00:00:00 2001 From: Chatura Dilan Date: Wed, 18 Jan 2017 12:59:45 +0530 Subject: [PATCH 07/47] Added Owasp security configurations --- .../conf/security/Owasp.CsrfGuard.Carbon.properties | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index bf300027..408d7dfd 100644 --- a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -465,6 +465,11 @@ org.owasp.csrfguard.unprotected.dcrRestApi=%servletContext%/dynamic-client-web/* org.owasp.csrfguard.unprotected.deviceMgtSSOAcs=%servletContext%/devicemgt/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtAcs=%servletContext%/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/invoker/execute/* +org.owasp.csrfguard.unprotected.storeEventPublisher=%servletContext%/store/apis/eventpublish/* +org.owasp.csrfguard.unprotected.publisherAcs=%servletContext%/publisher/acs +org.owasp.csrfguard.unprotected.storeAcs=%servletContext%/store/acs +org.owasp.csrfguard.unprotected.apiStoreAcs=%servletContext%/api-store/acs +org.owasp.csrfguard.unprotected.portalAcs=%servletContext%/portal/acs #carbon org.owasp.csrfguard.unprotected.Services=%servletContext%/services/* From 6c02e9f947ba8ecb5159e7e3420a72cf099ee70f Mon Sep 17 00:00:00 2001 From: Chatura Dilan Date: Wed, 18 Jan 2017 13:01:45 +0530 Subject: [PATCH 08/47] Added Owasp security configurations --- .../repository/conf/security/Owasp.CsrfGuard.Carbon.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index 408d7dfd..44ec06da 100644 --- a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -470,6 +470,8 @@ org.owasp.csrfguard.unprotected.publisherAcs=%servletContext%/publisher/acs org.owasp.csrfguard.unprotected.storeAcs=%servletContext%/store/acs org.owasp.csrfguard.unprotected.apiStoreAcs=%servletContext%/api-store/acs org.owasp.csrfguard.unprotected.portalAcs=%servletContext%/portal/acs +org.owasp.csrfguard.unprotected.socialAcs=%servletContext%/social/acs + #carbon org.owasp.csrfguard.unprotected.Services=%servletContext%/services/* From 07869a218a6be2a1f63ec0dfec4484819591a1b1 Mon Sep 17 00:00:00 2001 From: sinthuja Date: Wed, 18 Jan 2017 13:24:45 +0530 Subject: [PATCH 09/47] Updating the analytics feature used in iot-core to 1.3.3-SNAPSHOT to resolve the dependancy conflict issue in JSServiceConnector. --- modules/core/p2-profile-gen/pom.xml | 7 +++++++ pom.xml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/core/p2-profile-gen/pom.xml b/modules/core/p2-profile-gen/pom.xml index 8856f6a6..e38839e3 100644 --- a/modules/core/p2-profile-gen/pom.xml +++ b/modules/core/p2-profile-gen/pom.xml @@ -699,6 +699,9 @@ org.wso2.carbon.analytics:org.wso2.carbon.analytics.api.client.feature:${carbon.analytics.version} + + org.wso2.carbon.analytics:org.wso2.carbon.analytics.jsservice.feature:${carbon.analytics.version} + @@ -1497,6 +1500,10 @@ org.wso2.carbon.analytics.api.client.feature.group ${carbon.analytics.version} + + org.wso2.carbon.analytics.jsservice.feature.group + ${carbon.analytics.version} + diff --git a/pom.xml b/pom.xml index 5988444b..e0479d31 100644 --- a/pom.xml +++ b/pom.xml @@ -1547,7 +1547,7 @@ 5.1.5 - 1.3.0 + 1.3.3-SNAPSHOT 1.3.0 ${product.iot.version} 3.1.0 From 0bf780643d1a8f461da72d7a0ee9752c0480cfce Mon Sep 17 00:00:00 2001 From: Chatura Dilan Date: Wed, 18 Jan 2017 15:25:03 +0530 Subject: [PATCH 10/47] Added rule for installation --- .../repository/conf/security/Owasp.CsrfGuard.Carbon.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index 44ec06da..171e8094 100644 --- a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -471,6 +471,7 @@ org.owasp.csrfguard.unprotected.storeAcs=%servletContext%/store/acs org.owasp.csrfguard.unprotected.apiStoreAcs=%servletContext%/api-store/acs org.owasp.csrfguard.unprotected.portalAcs=%servletContext%/portal/acs org.owasp.csrfguard.unprotected.socialAcs=%servletContext%/social/acs +org.owasp.csrfguard.unprotected.appStoreDevices=%servletContext%/store/apps/devices/* #carbon From 93a4a9d4943853b863be269249ca871af7d31ef9 Mon Sep 17 00:00:00 2001 From: Maninda Date: Wed, 18 Jan 2017 16:33:42 +0530 Subject: [PATCH 11/47] Added security configs to that were missing --- .../distribution/src/assembly/bin.xml | 7 + .../jaggeryapps/portal/jaggery.conf | 187 ++++++++++++++++++ .../core/distribution/src/assembly/bin.xml | 14 ++ .../android-web-agent/jaggery.conf | 58 ++++++ .../jaggeryapps/api-store/jaggery.conf | 2 +- .../windows-web-agent/jaggery.conf | 125 ++++++++++++ 6 files changed, 392 insertions(+), 1 deletion(-) create mode 100644 modules/analytics/distribution/src/repository/jaggeryapps/portal/jaggery.conf create mode 100644 modules/core/distribution/src/repository/jaggeryapps/android-web-agent/jaggery.conf create mode 100644 modules/core/distribution/src/repository/jaggeryapps/windows-web-agent/jaggery.conf diff --git a/modules/analytics/distribution/src/assembly/bin.xml b/modules/analytics/distribution/src/assembly/bin.xml index 2055b087..6153fc43 100644 --- a/modules/analytics/distribution/src/assembly/bin.xml +++ b/modules/analytics/distribution/src/assembly/bin.xml @@ -833,5 +833,12 @@ true 644 + + src/repository/jaggeryapps/portal/jaggery.conf + + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/ + + 755 + diff --git a/modules/analytics/distribution/src/repository/jaggeryapps/portal/jaggery.conf b/modules/analytics/distribution/src/repository/jaggeryapps/portal/jaggery.conf new file mode 100644 index 00000000..77030553 --- /dev/null +++ b/modules/analytics/distribution/src/repository/jaggeryapps/portal/jaggery.conf @@ -0,0 +1,187 @@ +{ + "initScripts": [ + "js/dashboard-deployer.js" + ], + "welcomeFiles": [ + "routers/tenant.jag" + ], + "errorPages": { + "500": "/controllers/error-pages/error500.html", + "404": "/controllers/error-pages/error404.html", + "401": "/controllers/error-pages/error401.html", + "405": "/controllers/error-pages/error405.html", + "403": "/controllers/error-pages/error403.html", + "400": "/controllers/error-pages/error400.html" + }, + "urlMappings": [ + { + "url": "/login-controller", + "path": "/routers/tenant.jag" + }, + { + "url": "/login", + "path": "/routers/tenant.jag" + }, + { + "url": "/logout", + "path": "/routers/tenant.jag" + }, + { + "url": "/t/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/apis/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/dashboards/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/gadget/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/layout/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/assets/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/create-dashboard", + "path": "/routers/tenant.jag" + }, + { + "url": "/dashboard-settings/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/select-layout", + "path": "/routers/tenant.jag" + }, + { + "url": "/create-gadget", + "path": "/routers/tenant.jag" + }, + { + "url": "/upload-gadget", + "path": "/routers/tenant.jag" + }, + { + "url": "/upload-layout", + "path": "/routers/tenant.jag" + }, + { + "url": "/geojson/world/*", + "path": "/templates/geojson/world.json" + }, + { + "url": "/geojson/europe/*", + "path": "/templates/geojson/europe.json" + }, + { + "url": "/geojson/usa/*", + "path": "/templates/geojson/usa.json" + }, + { + "url": "/geojson/countryInfo/*", + "path": "/templates/geojson/countryInfo.json" + }, + { + "url": "/geojson/usaInfo/*", + "path": "/templates/geojson/usaInfo.json" + }, + { + "url": "/acs", + "path": "/controllers/acs.jag" + }, + { + "url": "/banners/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/gadgets/*", + "path": "/routers/tenant.jag" + }, + { + "url": "/configs/designer.json", + "path": "/controllers/error-pages/error404.html" + } + ], + "listeners": [ + { + "class": "org.owasp.csrfguard.CsrfGuardServletContextListener" + }, + { + "class": "org.owasp.csrfguard.CsrfGuardHttpSessionListener" + } + ], + "servlets": [ + { + "name": "JavaScriptServlet", + "class": "org.owasp.csrfguard.servlet.JavaScriptServlet" + } + ], + "servletMappings": [ + { + "name": "JavaScriptServlet", + "url": "/csrf.js" + } + ], + "contextParams": [ + { + "name": "Owasp.CsrfGuard.Config", + "value": "repository/conf/security/Owasp.CsrfGuard.dashboard.properties" + } + ], + "filters": [ + { + "name": "ContentTypeBasedCachePreventionFilter", + "class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter", + "params" : [ + {"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"}, + {"name" : "filterAction", "value" : "enforce"}, + {"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"} + ] + }, + { + "name": "HttpHeaderSecurityFilter", + "class": "org.apache.catalina.filters.HttpHeaderSecurityFilter", + "params": [ + { + "name": "hstsEnabled", + "value": "false" + }, + { + "name": "antiClickJackingOption", + "value": "SAMEORIGIN" + } + ] + }, + { + "name": "TenantStoresFilter", + "class": "org.wso2.carbon.dashboard.store.filter.TenantStoreFilter" + } + ], + "filterMappings": [ + { + "name": "HttpHeaderSecurityFilter", + "url": "*" + }, + { + "name": "TenantStoresFilter", + "url": "/store/*" + }, + { + "name": "TenantStoresFilter", + "url": "/temp/*" + }, + { + "name":"ContentTypeBasedCachePreventionFilter", + "url":"*" + } + ] +} diff --git a/modules/core/distribution/src/assembly/bin.xml b/modules/core/distribution/src/assembly/bin.xml index 2b382f33..edbc77f8 100644 --- a/modules/core/distribution/src/assembly/bin.xml +++ b/modules/core/distribution/src/assembly/bin.xml @@ -1312,6 +1312,13 @@ true 644 + + src/repository/jaggeryapps/android-web-agent/jaggery.conf + + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/android-web-agent/ + + 755 + src/repository/jaggeryapps/api-store/jaggery.conf @@ -1347,6 +1354,13 @@ 755 + + src/repository/jaggeryapps/windows-web-agent/jaggery.conf + + ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/windows-web-agent/ + + 755 + target/webapp-temp/api-application-registration.war diff --git a/modules/core/distribution/src/repository/jaggeryapps/android-web-agent/jaggery.conf b/modules/core/distribution/src/repository/jaggeryapps/android-web-agent/jaggery.conf new file mode 100644 index 00000000..7c33479a --- /dev/null +++ b/modules/core/distribution/src/repository/jaggeryapps/android-web-agent/jaggery.conf @@ -0,0 +1,58 @@ +{ + "displayName": "UUF Template App", + "logLevel": "warn", + "urlMappings": [ + { + "url": "/uuf/login", + "path": "/lib/modules/auth/login.jag" + }, + { + "url": "/uuf/logout", + "path": "/lib/modules/auth/logout.jag" + }, + { + "url": "/uuf/sso/acs", + "path": "/lib/modules/auth/acs.jag" + }, + { + "url": "/public/*", + "path": "/lib/static-files.jag" + }, + { + "url": "/unit/*", + "path": "/lib/units.jag" + }, + { + "url": "/*", + "path": "/lib/pages.jag" + } + ], + "filters": [ + { + "name": "ContentTypeBasedCachePreventionFilter", + "class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter", + "params" : [ + {"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"}, + {"name" : "filterAction", "value" : "enforce"}, + {"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"} + ] + }, + { + "name":"HttpHeaderSecurityFilter", + "class":"org.apache.catalina.filters.HttpHeaderSecurityFilter", + "params" : [{"name" : "hstsEnabled", "value" : "false"}] + } + + ], + "filterMappings": [ + { + "name":"HttpHeaderSecurityFilter", + "url":"*" + }, + { + "name":"ContentTypeBasedCachePreventionFilter", + "url":"*" + } + + ] +} diff --git a/modules/core/distribution/src/repository/jaggeryapps/api-store/jaggery.conf b/modules/core/distribution/src/repository/jaggeryapps/api-store/jaggery.conf index cd51e91f..520acab5 100644 --- a/modules/core/distribution/src/repository/jaggeryapps/api-store/jaggery.conf +++ b/modules/core/distribution/src/repository/jaggeryapps/api-store/jaggery.conf @@ -66,7 +66,7 @@ "name": "ContentTypeBasedCachePreventionFilter", "class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter", "params" : [ - {"name" : "patterns", "value" : "text/html"}, + {"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"}, {"name" : "filterAction", "value" : "enforce"}, {"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"} ] diff --git a/modules/core/distribution/src/repository/jaggeryapps/windows-web-agent/jaggery.conf b/modules/core/distribution/src/repository/jaggeryapps/windows-web-agent/jaggery.conf new file mode 100644 index 00000000..00514b3a --- /dev/null +++ b/modules/core/distribution/src/repository/jaggeryapps/windows-web-agent/jaggery.conf @@ -0,0 +1,125 @@ +{ + "displayName": "EMM Web Agent", + "logLevel": "error", + "initScripts": ["/app/modules/init.js"], + "urlMappings": [ + { + "url": "/enrollment", + "path": "/lib/pages.jag" + }, + { + "url": "/enrollment/windows/login", + "path": "/app/modules/enrollments/windows/agent-controller.jag" + }, + { + "url": "/enrollment/windows/enroll", + "path": "/app/modules/enrollments/windows/agent-enroll.jag" + }, + { + "url": "/enrollment/ios/download-certificate", + "path": "/app/modules/enrollments/ios/certificate.jag" + }, + { + "url": "/enrollment/ios/download-agent", + "path": "/app/modules/enrollments/ios/agent.jag" + }, + { + "url": "/enrollment/ios/login", + "path": "/app/modules/enrollments/ios/agent-controller.jag" + }, + { + "url": "/enrollment/ios/enroll", + "path": "/app/modules/enrollments/ios/agent-enroll.jag" + }, + { + "url": "/enrollment/ios/check", + "path": "/app/modules/enrollments/ios/agent-check.jag" + }, + { + "url": "/api/invoker/*", + "path": "/api/invoker-api.jag" + }, + { + "url": "/uuf/login", + "path": "/lib/modules/auth/login.jag" + }, + { + "url": "/uuf/logout", + "path": "/lib/modules/auth/logout.jag" + }, + { + "url": "/uuf/sso/acs", + "path": "/lib/modules/auth/acs.jag" + }, + { + "url": "/public/*", + "path": "/lib/static-files.jag" + }, + { + "url": "/unit/*", + "path": "/lib/units.jag" + }, + { + "url": "/*", + "path": "/lib/pages.jag" + } + ], + "securityConstraints": [ + { + "securityConstraint": { + "webResourceCollection": { + "name": "WINDOWS-WEB-AGENT", + "urlPatterns": [ + "/*" + ] + }, + "userDataConstraint": { + "transportGuarantee": "CONFIDENTIAL" + } + } + }, + { + "securityConstraint": { + "webResourceCollection": { + "name": "WINDOWS-WEB-AGENT-http", + "urlPatterns": [ + "/public/*", + "/enrollments/windows/*", + "/enrollment/windows/*" + ] + }, + "userDataConstraint": { + "transportGuarantee": "NONE" + } + } + } + ], + "filters": [ + { + "name": "ContentTypeBasedCachePreventionFilter", + "class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter", + "params" : [ + {"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"}, + {"name" : "filterAction", "value" : "enforce"}, + {"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"} + ] + }, + { + "name":"HttpHeaderSecurityFilter", + "class":"org.apache.catalina.filters.HttpHeaderSecurityFilter", + "params" : [{"name" : "hstsEnabled", "value" : "false"}] + } + + ], + "filterMappings": [ + { + "name":"HttpHeaderSecurityFilter", + "url":"*" + }, + { + "name":"ContentTypeBasedCachePreventionFilter", + "url":"*" + } + + ] +} From 6d5bb848d7c04e4b0ae135986f08445c0b539cd3 Mon Sep 17 00:00:00 2001 From: Hasunie Date: Wed, 18 Jan 2017 19:17:54 +0530 Subject: [PATCH 12/47] fixing localhost,port binding in synapse file --- .../default/api/_API_Application_Registration_.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml index 12ac0f19..7e25c013 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml @@ -1,8 +1,8 @@ - - + + @@ -20,8 +20,8 @@ - - + + @@ -39,8 +39,8 @@ - - + + From d0e3ae5106b6953d526604610b560e17f8e26323 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Wed, 18 Jan 2017 16:14:20 +0530 Subject: [PATCH 13/47] Adding DAS env variables into shell script --- modules/core/distribution/src/repository/bin/wso2server.bat | 2 +- modules/core/distribution/src/repository/bin/wso2server.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/core/distribution/src/repository/bin/wso2server.bat b/modules/core/distribution/src/repository/bin/wso2server.bat index 1f88be5b..f94993ca 100644 --- a/modules/core/distribution/src/repository/bin/wso2server.bat +++ b/modules/core/distribution/src/repository/bin/wso2server.bat @@ -162,7 +162,7 @@ set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% set JAVA_ENDORSED=".\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" -set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Core" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Core" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.host="9445" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" :runJava echo JAVA_HOME environment variable is set to %JAVA_HOME% diff --git a/modules/core/distribution/src/repository/bin/wso2server.sh b/modules/core/distribution/src/repository/bin/wso2server.sh index 9357a282..7c551065 100755 --- a/modules/core/distribution/src/repository/bin/wso2server.sh +++ b/modules/core/distribution/src/repository/bin/wso2server.sh @@ -307,6 +307,8 @@ do -DworkerNode=false \ -Dorg.wso2.ignoreHostnameVerification=true \ -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ + -Diot.analytics.host="localhost" \ + -Diot.analytics.https.host="9445" \ -Dmqtt.broker.host="localhost" \ -Dmqtt.broker.port="1886" \ -Diot.core.host="localhost" \ From 618ee3d01a392db4a5d9024837572acf3e2ed9a6 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Wed, 18 Jan 2017 20:58:49 +0530 Subject: [PATCH 14/47] CSRF fixed for /devicemgt/api --- .../repository/conf/security/Owasp.CsrfGuard.Carbon.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index bf41e0ee..d3049ce3 100644 --- a/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -456,4 +456,4 @@ org.owasp.csrfguard.unprotected.ml=%servletContext%/api/login* org.owasp.csrfguard.unprotected.passivests=%servletContext%/acs/* org.owasp.csrfguard.unprotected.deviceMgtSSOAcs=%servletContext%/devicemgt/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtAcs=%servletContext%/uuf/sso/acs -org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/invoker/execute/* +org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/* From 54609d6f0a89b930c9dbbb4af7c1a3cdd5412e10 Mon Sep 17 00:00:00 2001 From: Chatura Dilan Date: Thu, 19 Jan 2017 10:53:58 +0530 Subject: [PATCH 15/47] Bumping appm version up --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d2b3d001..85eef884 100644 --- a/pom.xml +++ b/pom.xml @@ -1643,7 +1643,7 @@ 1.0.1 - 1.2.10 + 1.2.12 1.4.4 From 5114d19a073c1ff9af9e760e3389a7e7bd5352b1 Mon Sep 17 00:00:00 2001 From: Menaka Jayawardena Date: Thu, 19 Jan 2017 13:13:56 +0530 Subject: [PATCH 16/47] Modified csrf property for devicemgt api --- .../repository/conf/security/Owasp.CsrfGuard.Carbon.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index 171e8094..f6daa5c3 100644 --- a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -447,7 +447,6 @@ org.owasp.csrfguard.configOverlay.secondsBetweenUpdateChecks = 60 # please remove the below entry to enable protection for services. -org.owasp.csrfguard.unprotected.Services=%servletContext%/services/* org.owasp.csrfguard.unprotected.oauth=%servletContext%/commonauth/* org.owasp.csrfguard.unprotected.samlsso=%servletContext%/samlsso/* org.owasp.csrfguard.unprotected.authenticationEndpoint=%servletContext%/authenticationendpoint/* @@ -464,7 +463,7 @@ org.owasp.csrfguard.unprotected.deviceMgtRestApi=%servletContext%/api/device-mgt org.owasp.csrfguard.unprotected.dcrRestApi=%servletContext%/dynamic-client-web/* org.owasp.csrfguard.unprotected.deviceMgtSSOAcs=%servletContext%/devicemgt/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtAcs=%servletContext%/uuf/sso/acs -org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/invoker/execute/* +org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/* org.owasp.csrfguard.unprotected.storeEventPublisher=%servletContext%/store/apis/eventpublish/* org.owasp.csrfguard.unprotected.publisherAcs=%servletContext%/publisher/acs org.owasp.csrfguard.unprotected.storeAcs=%servletContext%/store/acs From c76427edc8f38c492e3fb9f947150201e5081504 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Thu, 19 Jan 2017 14:18:53 +0530 Subject: [PATCH 17/47] Temporary disable throttling info not found warnings on APIM --- modules/core/distribution/src/repository/conf/log4j.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/core/distribution/src/repository/conf/log4j.properties b/modules/core/distribution/src/repository/conf/log4j.properties index 2a47e957..a8a589ac 100644 --- a/modules/core/distribution/src/repository/conf/log4j.properties +++ b/modules/core/distribution/src/repository/conf/log4j.properties @@ -241,4 +241,5 @@ log4j.logger.org.wso2.carbon.analytics.spark.core.SparkScriptCAppDeployer=WARN log4j.logger.org.wso2.carbon.analytics.eventsink.AnalyticsEventStoreDeployer=WARN log4j.logger.org.wso2.carbon.event.processor.core.EventProcessorDeployer=WARN log4j.logger.org.wso2.carbon.core.services.util.CarbonAuthenticationUtil=WARN -log4j.logger.net.sf.ehcache=ERROR \ No newline at end of file +log4j.logger.net.sf.ehcache=ERROR +log4j.logger.org.wso2.carbon.apimgt.gateway.handlers.throttling=ERROR \ No newline at end of file From cba0499a80eeef15b373e935adeb8ee209d8cf4b Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Thu, 19 Jan 2017 15:15:33 +0530 Subject: [PATCH 18/47] Updated install.txt and readme.txt --- modules/core/distribution/INSTALL.txt | 26 ++++++++++++++------------ modules/core/distribution/README.txt | 25 +++++++++++++++---------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/modules/core/distribution/INSTALL.txt b/modules/core/distribution/INSTALL.txt index a533f459..959609b2 100644 --- a/modules/core/distribution/INSTALL.txt +++ b/modules/core/distribution/INSTALL.txt @@ -1,18 +1,20 @@ -(1) Installing WSO2 Mobile Device Manager 2.0.0-SNAPSHOT +(1) Installing WSO2 IoT Server 3.0.0 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. +1. The directory containing this INSTALL file will be the root and it will be treated as IoT home directory and let it be IoT_HOME. -2. All the shell scripts and .bat files are available in CARBON_HOME/bin folder. +2. WSO2 IoT Server comes as a composition of three components namely broker, core and analytics. -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. +3. Starting order of IoT components shuld be broker, core, analytics. +To start/stop/restart the IoT components one can use wso2server.sh for *nix systems & wso2server.bat for Windows systems which can be found in following locations. + IoT_HOME/broker/bin + IoT_HOME/core/bin + IoT_HOME/analytics/bin + +4. The wso2server.sh and wso2server.bat has following commands -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] @@ -20,9 +22,9 @@ Running the server --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 + --start Start the server as a Unix daemon in the background + --console Start the server as a Unix daemon in the foreground + --stop Stop the server 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 @@ -33,7 +35,7 @@ Running the server System Requirements ------------------- -1. Minimum memory - 2GB +1. Minimum memory - 4GB 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 diff --git a/modules/core/distribution/README.txt b/modules/core/distribution/README.txt index adf903cc..0420ee50 100644 --- a/modules/core/distribution/README.txt +++ b/modules/core/distribution/README.txt @@ -1,6 +1,6 @@ WSO2 IoT Server ---------------------- -Welcome to the WSO2 IoT Server (IoTS) 1.0.0-ALPHA release +Welcome to the WSO2 IoT Server (IoTS) 3.0.0 release ======= Key Features @@ -11,13 +11,10 @@ Key Features 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/ -4. After publishing these APIs, subscribe to these APIs with default app/any app. - In API store, go to my subscriptions and find client ID and secret. - -5. Please find the maven-archetype in repository/tools to generate the mdm-android-agent project & follow the README file. +2. Follow the INSTALL.txt file for install instructions +3. Once the server starts, point your Web browser to https://localhost:9443/devicemgt to see available device types and operations +4. Navigate to https://localhost:9443/api-store to see the available device APIs, You can subscribe to these APIs with default application (or by creating new application). + In API store, go to my subscriptions and find client ID and secret. Which can be used to invoke these apis. System Requirements ------------------- @@ -28,8 +25,16 @@ System Requirements WSO2 IoT Server (IoTS) Binary Distribution Directory Structure ----------------------------------------------------- + IoT_HOME + . + ├── core //core component + ├── analytics //analytics component + ├── broker //message broker component + ├── samples //sample device types eg. connectedcup + ├── plugins //pre-built device types - EMM_HOME +IoT core, analytics and broker has similar directory sctructure. As for example core has following structure + IoT_HOME/core . ├── bin //executables ├── dbscripts //DBScripts @@ -167,4 +172,4 @@ development methodology and is provided by the very same engineers who build the For additional support information please refer to http://wso2.com/support/ --------------------------------------------------------------------------- -(c) Copyright 2016 WSO2 Inc. +(c) Copyright 2017 WSO2 Inc. \ No newline at end of file From 1add362b76aed35863944b5b0f064d0dea1c406a Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Thu, 19 Jan 2017 15:17:22 +0530 Subject: [PATCH 19/47] Updated distribution filter.properties --- .../analytics/distribution/src/assembly/filter.properties | 4 ++-- .../broker/distribution/src/main/assembly/filter.properties | 6 +++--- modules/core/distribution/src/assembly/filter.properties | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/analytics/distribution/src/assembly/filter.properties b/modules/analytics/distribution/src/assembly/filter.properties index 3a658fef..885085a4 100644 --- a/modules/analytics/distribution/src/assembly/filter.properties +++ b/modules/analytics/distribution/src/assembly/filter.properties @@ -1,7 +1,7 @@ product.name=WSO2 IoT - Analytics -product.version=1.0.0 +product.version=3.0.0 product.key=wso2iot-analytics -carbon.product.version=4.4.10 +carbon.product.version=4.4.11 default.server.role=IoTServer cep.server.role=ComplexEventProcessor das.server.role=DataAnalyticsServer diff --git a/modules/broker/distribution/src/main/assembly/filter.properties b/modules/broker/distribution/src/main/assembly/filter.properties index 76211331..cadf9342 100644 --- a/modules/broker/distribution/src/main/assembly/filter.properties +++ b/modules/broker/distribution/src/main/assembly/filter.properties @@ -1,6 +1,6 @@ product.name=WSO2 Message Broker product.key=MB -product.version=1.0.0.SNAPSHOT -carbon.version=4.9.0 -mb.version=1.0.0.SNAPSHOT +product.version=3.1.0 +carbon.version=4.4.11 +mb.version=3.1.0 default.server.role=MessageBroker diff --git a/modules/core/distribution/src/assembly/filter.properties b/modules/core/distribution/src/assembly/filter.properties index 308db67f..671e9558 100644 --- a/modules/core/distribution/src/assembly/filter.properties +++ b/modules/core/distribution/src/assembly/filter.properties @@ -17,11 +17,11 @@ # product.name=WSO2 IoT Server -product.version=1.0.0-SNAPSHOT +product.version=3.0.0 product.key=IOT hotdeployment=true hotupdate=true -carbon.version=4.4.9 +carbon.version=4.4.11 default.server.role=IoTServer cep.server.role=ComplexEventProcessor das.server.role=DataAnalyticsServer From 91d9a43199c36a00e4449489af31d0be53761e43 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Thu, 19 Jan 2017 19:35:21 +0530 Subject: [PATCH 20/47] Fixing [iot.analytics.https.port] variable not picking up --- modules/core/distribution/src/repository/bin/wso2server.bat | 2 +- modules/core/distribution/src/repository/bin/wso2server.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/distribution/src/repository/bin/wso2server.bat b/modules/core/distribution/src/repository/bin/wso2server.bat index f94993ca..17b473c3 100644 --- a/modules/core/distribution/src/repository/bin/wso2server.bat +++ b/modules/core/distribution/src/repository/bin/wso2server.bat @@ -162,7 +162,7 @@ set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% set JAVA_ENDORSED=".\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" -set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Core" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.host="9445" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Core" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.port="9445" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" :runJava echo JAVA_HOME environment variable is set to %JAVA_HOME% diff --git a/modules/core/distribution/src/repository/bin/wso2server.sh b/modules/core/distribution/src/repository/bin/wso2server.sh index 7c551065..656b52a2 100755 --- a/modules/core/distribution/src/repository/bin/wso2server.sh +++ b/modules/core/distribution/src/repository/bin/wso2server.sh @@ -308,7 +308,7 @@ do -Dorg.wso2.ignoreHostnameVerification=true \ -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ -Diot.analytics.host="localhost" \ - -Diot.analytics.https.host="9445" \ + -Diot.analytics.https.port="9445" \ -Dmqtt.broker.host="localhost" \ -Dmqtt.broker.port="1886" \ -Diot.core.host="localhost" \ From 1acc33d00b813a214f42de84b40900fc7ba5863e Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Thu, 19 Jan 2017 19:47:28 +0530 Subject: [PATCH 21/47] Version bump on carbon.analytics.version into [1.3.3] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 85eef884..dd368425 100644 --- a/pom.xml +++ b/pom.xml @@ -1547,7 +1547,7 @@ 5.1.5 - 1.3.3-SNAPSHOT + 1.3.3 1.3.0 ${product.iot.version} 3.1.0 From 190f97cd208cec7a1360b6487b0e3b12e677a303 Mon Sep 17 00:00:00 2001 From: madhawap Date: Fri, 20 Jan 2017 00:29:16 +0530 Subject: [PATCH 22/47] fixes for synapse configs --- .../default/api/_API_Application_Registration_.xml | 12 ++++++------ .../synapse-configs/default/api/_AuthorizeAPI_.xml | 4 ++-- .../synapse-configs/default/api/_RevokeAPI_.xml | 4 ++-- .../synapse-configs/default/api/_TokenAPI_.xml | 4 ++-- .../synapse-configs/default/api/_UserInfoAPI_.xml | 4 ++-- .../synapse-configs/default/api/_AuthorizeAPI_.xml | 4 ++-- .../synapse-configs/default/api/_RevokeAPI_.xml | 4 ++-- .../synapse-configs/default/api/_TokenAPI_.xml | 4 ++-- .../synapse-configs/default/api/_UserInfoAPI_.xml | 4 ++-- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml index 7e25c013..42d6c1cb 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml @@ -1,8 +1,8 @@ - - + + @@ -20,8 +20,8 @@ - - + + @@ -39,8 +39,8 @@ - - + + diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_AuthorizeAPI_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_AuthorizeAPI_.xml index 4221f0c2..571c5b61 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_AuthorizeAPI_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_AuthorizeAPI_.xml @@ -1,8 +1,8 @@ - - + + /> diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_RevokeAPI_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_RevokeAPI_.xml index 8c5fc818..f227eecf 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_RevokeAPI_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_RevokeAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_TokenAPI_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_TokenAPI_.xml index 43268da1..74a0315b 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_TokenAPI_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_TokenAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_UserInfoAPI_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_UserInfoAPI_.xml index e8c32195..3e649879 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_UserInfoAPI_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_UserInfoAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_AuthorizeAPI_.xml b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_AuthorizeAPI_.xml index 4221f0c2..458007b8 100644 --- a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_AuthorizeAPI_.xml +++ b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_AuthorizeAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_RevokeAPI_.xml b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_RevokeAPI_.xml index 8c5fc818..f227eecf 100644 --- a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_RevokeAPI_.xml +++ b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_RevokeAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_TokenAPI_.xml b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_TokenAPI_.xml index 43268da1..eb85c584 100644 --- a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_TokenAPI_.xml +++ b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_TokenAPI_.xml @@ -1,8 +1,8 @@ - - + + diff --git a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_UserInfoAPI_.xml b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_UserInfoAPI_.xml index e8c32195..3e649879 100644 --- a/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_UserInfoAPI_.xml +++ b/modules/core/distribution/src/repository/resources/synapse-configs/default/api/_UserInfoAPI_.xml @@ -1,8 +1,8 @@ - - + + From 68c46d10b3345ddbe651e8106d4143345f9b0b43 Mon Sep 17 00:00:00 2001 From: madhawap Date: Fri, 20 Jan 2017 01:03:34 +0530 Subject: [PATCH 23/47] fixes for synapse configs --- .../default/api/_API_Application_Registration_.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml index 42d6c1cb..7e25c013 100644 --- a/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml +++ b/modules/core/distribution/src/api-resources/synapse-configs/default/api/_API_Application_Registration_.xml @@ -1,8 +1,8 @@ - - + + @@ -20,8 +20,8 @@ - - + + @@ -39,8 +39,8 @@ - - + + From bf61a210f8df169a784b07148d1b0cafe1934402 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 08:41:05 +0530 Subject: [PATCH 24/47] Release note updated for 3.0.0 --- modules/core/distribution/release-notes.html | 345 +++++++++++++------ 1 file changed, 235 insertions(+), 110 deletions(-) diff --git a/modules/core/distribution/release-notes.html b/modules/core/distribution/release-notes.html index 67c39923..f4b4e774 100644 --- a/modules/core/distribution/release-notes.html +++ b/modules/core/distribution/release-notes.html @@ -1,119 +1,244 @@ +Release Notes - WSO2 IOT Server - Version 3.0.0 - Release Notes - WSO2 IOT Server - Version 1.0.0 - Alpha -

Bug

    -
  • [IOTS-17] - MQTT endpoints are not secured for agent communication -
  • -
  • [IOTS-19] - XMPP sessions not closed before server shutdown -
  • -
  • [IOTS-21] - Jaggery API calls are not secured -
  • -
  • [IOTS-34] - Backend Service Invoker Fails Intermittently with Unexpected token: < -
  • -
  • [IOTS-37] - Could not generate a new access token (using refresh token) by using the current token endpoint -
  • -
  • [IOTS-47] - Update the release note in the release packs as it is about EMM -
  • -
  • [IOTS-50] - users whos iot-admin role is removed is shown all options for enrol devices as users with iot-admin role -
  • -
  • [IOTS-55] - Considerable delay in server startup -
  • -
  • [IOTS-57] - Error when starting the IOT pack after pointing to the mysql database -
  • -
  • [IOTS-64] - The wso2carbon log file is growing rapidly -
  • -
  • [IOTS-68] - when a tenant is created with the same user name as super tenant seems the super tenant data are shown -
  • -
  • [IOTS-69] - until device admin was disabled the camera policy was in effect preventing the use of camera on android device -
  • -
  • [IOTS-75] - view API throws a Caused by: java.lang.NullPointerException: Tenant domain has not been set in CarbonContext -
  • -
  • [IOTS-81] - IOT devices are allways in active status -
  • -
  • [IOTS-92] - Error in executing task: Table Not Found: X1234_DeviceBatterySummaryData java.lang.RuntimeException: Table Not Found: X1234_DeviceBatterySummaryData is thown when pointing to mysql -
  • -
  • [IOTS-93] - XMPP server details are hardcoded in virtual fire alarm and devicemgt-config.xml file -
  • -
  • [IOTS-94] - Virtual firealarms that were downloaded before xmpp was enabled can not connect to xmpp protocol after enabling. -
  • -
  • [IOTS-100] - When integrating ActiveMQ as an external message broker IOTS fails to start -
  • -
  • [IOTS-102] - Device analytic line graph does not get generated when the device type has a capital letter -
  • -
  • [IOTS-104] - Remove the device type configs that is used for UI from conf directory -
  • -
  • [IOTS-105] - clean unnecessary jaggery apis -
  • -
  • [IOTS-106] - A emm console url is shown in carbon log at server startup -
  • -
  • [IOTS-110] - No email confirmation is sent to user when administrator creates a user -
  • -
  • [IOTS-112] - A prefix as " Device " is set to the devices that is been created -
  • -
  • [IOTS-114] - Change Role permissions: the user is unable to deselect a child node -
  • -
  • [IOTS-117] - Edit/ create Role: Domain needs to be marked as a mandatory field -
  • -
  • [IOTS-122] - Tenant - admin cannot enroll to virtual fire alarm, raspberry pi & arduino -
  • -
  • [IOTS-124] - Group: View analytics loads an error -
  • -
  • [IOTS-127] - Admin cannot reset user passwords -
  • -
  • [IOTS-129] - If devicemgt-user role is deleted users cannot register -
  • -
  • [IOTS-130] - The line graph is not generated correctly for virtual firealarm -
  • -
  • [IOTS-131] - Publishing stats via MQTT protocol to iot server fails -
  • -
  • [IOTS-134] - Server startup fails when configured to use MySQL -
  • -
  • [IOTS-136] - User signup for tenant is not supported -
  • -
  • [IOTS-150] - Arduino sample is not getting proper responses -
  • -
  • [IOTS-151] - Server startup fails when configured to use Oracle -
  • -
  • [IOTS-152] - Platform Configuration display android, iOS and windows Configuration -
  • -
  • [IOTS-153] - Error is thrown when accessing device API details page -
  • -
  • [IOTS-154] - Typo /enrollmentdevicesg/download for raspberypi (g) -
  • -
  • [IOTS-155] - When browsing analytics error 500 shown to user from a group which has no devices assigned -
  • -
  • [IOTS-156] - 404 page when cancel clicked in "Add New Group" page -
  • -
  • [IOTS-157] - Signed up users shown an error page when navigated to policy page -
  • -
  • [IOTS-158] - Signed up users cannot create policies -
  • -
  • [IOTS-159] - Meaningful message to be shown when On / Off issued to virtual fire alarm -
  • -
  • [IOTS-161] - Remove the phrase "Below QR code can also be used to enroll a device" -
  • -
  • [IOTS-163] - Android sensor: only admin can login to the app -
  • -
  • [IOTS-164] - When an existing user name is used by admin no proper validation message shown -
  • -
  • [IOTS-165] - Server startup throws "The following exception occurred when fetching http://www.google-analytics.com/urchin" -
  • -
  • [IOTS-166] - Connected cup device analytics is failing to load -
  • -
  • [IOTS-167] - Considerable delay is taken to initialize transports for device types -
  • +
  • [IOTS-181] - The Graphs are rendered incorrectly +
  • +
  • [IOTS-182] - The units are missing from Y axis +
  • +
  • [IOTS-222] - INSTALL.txt needs to be updated +
  • +
  • [IOTS-262] - APIThrottleHandler Unable to find throttling info continuously printed. +
  • +
  • [IOTS-4] - Fresh Pack - Table Not Found: X1234_DeviceGRAVITYSummaryData +
  • +
  • [IOTS-115] - Edit Role: The domain name can be typed +
  • +
  • [IOTS-116] - Edit Role: The user is unable to change name +
  • +
  • [IOTS-119] - When existing role name is used to create a role no validation message is shown +
  • +
  • [IOTS-128] - Previously selected permission tree is shown for another admin user +
  • +
  • [IOTS-138] - Remove the admin-device-access role permission +
  • +
  • [IOTS-144] - Operations Log: the data doesn't load +
  • +
  • [IOTS-170] - Proper validation is not fired when an invalid domain is used to login +
  • +
  • [IOTS-179] - Users who register from APIM Store can login to IOTS and enroll devices +
  • +
  • [IOTS-190] - Multi Tenancy: error 500 loads on logging for the first time. +
  • +
  • [IOTS-198] - wso2.anonymous.user in API-Store does not have permission to access custom device types API +
  • +
  • [IOTS-202] - OAuth2BasedMQTTAuthenticator errors thrown if server is bounced while MQTT clients are publishing +
  • +
  • [IOTS-226] - MqttException thrown when a device is pushing erroneous events +
  • +
  • [IOTS-227] - When a device is publishing erroneous events at a high rate over MQTT other device events are dropped +
  • +
  • [IOTS-244] - MQTT clients can authenticate/authorize using tokens generated with credentials not belonging to them +
  • +
  • [IOTS-255] - [External APIM] https-ep in deviceConfig.properties is not populated with APIM details +
  • +
  • [IOTS-256] - Errors thrown at HTTP Gateway profile startup +
  • +
  • [IOTS-257] - transports not bound for HTTP Gateway profile node +
  • +
  • [IOTS-259] - ERROR - js {} thrown from devicemgt +
  • +
  • [IOTS-260] - Error loading properties from a file printed due to missing properties files +
  • +
  • [IOTS-269] - [Intermittent] Force shutdown fails with errors +
  • +
  • [IOTS-270] - Arduino device type control events are lost if the server is restarted +
  • +
  • [IOTS-274] - [IOT] /oauth2/token cannot be called directly +
  • +
  • [IOTS-277] - Accessing swagger definition failed with CNF +
  • +
  • [IOTS-315] - Missing the start-all.bat and stop-all.bat files +
  • +
  • [IOTS-339] - Error occurred while registering device management plugin 'android' +
  • +
  • [IOTS-369] - Add missing grant types in identity.xml +
  • +
  • [IOTS-378] - Windows Device location is not showing in Device view page +
  • +
  • [IOTS-391] - Notification Pane position issue +
  • +
  • [IOTS-18] - Need to add refresh token generation in Android Sense agent. +
  • +
  • [IOTS-103] - Grouping: need a mechanisam to add devices to a group from the grouping page +
  • +
  • [IOTS-108] - When user shares device policies fails with 401 +
  • +
  • [IOTS-118] - Change Role permissions: Selecting the rights need to be synced correctly +
  • +
  • [IOTS-120] - Last name should allow space in-between when creating / editing the name +
  • +
  • [IOTS-151] - Server startup fails when configured to use Oracle +
  • +
  • [IOTS-168] - A role with permission assigned to a user is not functioning +
  • +
  • [IOTS-173] - Same device can be added multiple times to the same group +
  • +
  • [IOTS-178] - User cannot login to APIM store with IOT credentials +
  • +
  • [IOTS-183] - Some buttons are not visible +
  • +
  • [IOTS-193] - Policies: User is unable to add a policy +
  • +
  • [IOTS-200] - IllegalTransactionStateException when trying to add a new policy +
  • +
  • [IOTS-204] - Duplicate log4j.properties file in CARBON_HOME/repository +
  • +
  • [IOTS-212] - [External APIM] NPE thrown when downloading virtual fire alarm, rasp pi and arduino agents +
  • +
  • [IOTS-218] - Group: when a device is removed from the group the device is completely removed from the devices list +
  • +
  • [IOTS-232] - Multi Tenancy: error 500 loads when user access the system +
  • +
  • [IOTS-236] - Sharing a group fails silently if there is group with the same name and no roles are selected +
  • +
  • [IOTS-239] - SSO failing due to getting the access token from APIM +
  • +
  • [IOTS-254] - samples-deployer build fails with missing dependency +
  • +
  • [IOTS-263] - [UI] Same device can be added to a group multiple times +
  • +
  • [IOTS-344] - Need to remove Android IOT gadget from IoT Core Dashboard +
  • +
  • [IOTS-346] - Cannot view devices when registered as a new user +
  • +
  • [IOTS-356] - When UI is configured to use Gateway, Cannot Login +
  • +
  • [IOTS-365] - Make Policy Management to be part of device management +
  • +
  • [IOTS-366] - Dynamic values for push notification needs to have default values +
  • +
  • [IOTS-137] - -Detup fails, logging exceptions +
  • +
  • [IOTS-151] - Server startup fails when configured to use Oracle +
  • +
  • [IOTS-160] - Although two roles are shown in roles section several roles are shown when assigning to users +
  • +
  • [IOTS-172] - The db scripts are not executed with -Dsetup +
  • +
  • [IOTS-176] - Creating a New Device Type - device-deployer build failed +
  • +
  • [IOTS-177] - Device types fail to register to IOTS when configured with Oracle db +
  • +
  • [IOTS-184] - Windows startup error on hadoop +
  • +
  • [IOTS-195] - Single sign-on(SSO) cannot enable Between devicemgt and DS +
  • +
  • [IOTS-201] - DashboardDeployer Gadget directory copying to Wrong path +
  • +
  • [IOTS-316] - Publisher and store apps are not working +
  • +
  • [IOTS-319] - Implement enrolment functionality for AndroidSens +
  • +
  • [IOTS-325] - Unable to delete policies associated with a group +
  • +
  • [IOTS-330] - Policy not added for Virtual firealarm +
  • +
  • [IOTS-332] - Devices listing page doesn't honor analyticsEnabled and groupingEnabled configs +
  • +
  • [IOTS-333] - Devices listing page doesn't honor analyticsEnabled and groupingEnabled configs +
  • +
  • [IOTS-335] - View Dashboard Permissions missing in the role permission tree +
  • +
  • [IOTS-337] - Permissions (except device-mgt permissions) added through carbon console gets removed when adding permissions through deviceMgt UI +
  • +
  • [IOTS-340] - NPE for username thrown on Broker +
- + +

Task +

+
    +
  • [IOTS-292] - Migrating to synapse gateway +
  • +
  • [IOTS-381] - device type listing fails when only windows and android features are installed +
  • +
  • [IOTS-363] - Windows and IOS enrollment related UI page Logos (Wso2 EMM) should be changed into wso2 IOT +
  • +
  • [IOTS-307] - Stabilize Android Sense + Integrating with new dashboard +
  • +
+

Improvement

    -
  • [IOTS-87] - not able to compare two event streams in current IOT server -
  • -
  • [IOTS-145] - Remove the second confirmation message to remove a user or role -
  • -
  • [IOTS-149] - Remove Windows device type from IOTS -
  • +
  • [IOTS-145] - Remove the second confirmation message to remove a user or role +
  • +
  • [IOTS-282] - Distributed setup - device-key-manager node gives 405 when try to access /devicemgt +
  • +
  • [IOTS-370] - Move adapter configs as global configs +
  • +
  • [IOTS-374] - Updating font wso2 to newest version +
  • +
  • [IOTS-379] - Modal markup fixes +
  • +
  • [IOTS-382] - Windows 10 Reboot operation support +
  • +
  • [IOTS-383] - Modal opening for multiple times +
  • +
  • [IOTS-390] - Missing action buttons on details views +
  • +
  • [IOTS-392] - Inconsistent notification pane messege +
  • +
  • [IOTS-394] - Data table selection issue +
  • +
  • [IOTS-397] - Advance Search for devices view +
  • +
  • [IOTS-171] - Register User Form: username message +
  • +
  • [IOTS-187] - The UI for Role creation should have an option for the user to tick if he wants to have the group name prefix added +
  • +
  • [IOTS-271] - Viewing Group Details +
  • +
  • [IOTS-273] - about.html is for UES +
  • +
  • [IOTS-283] - Distributed Setup - mqtt profile - Class not found error +
  • +
  • [IOTS-306] - Refactoring permission to scope mapping +
  • +
  • [IOTS-348] - OOTB H2 needs to be shared with DAS and Core +
  • +
  • [IOTS-351] - Windows 10 Device Location support +
  • +
  • [IOTS-352] - CDMF Android agent must use the new gateway DCR endpoints +
  • +
  • [IOTS-362] - UI configurations need to refactor +
  • +
  • [IOTS-368] - Federated login page should be compatible with Windows 10 Laptop +
  • +
  • [IOTS-334] - Add three buttons to improve device enrollment screens +
  • +
  • [IOTS-336] - The UI to download the Android Agent uses the old EMM UI +
  • +
  • [IOTS-338] - Windows 10 MDM support +
  • +
  • [IOTS-341] - Re-word message when selecting roles for group sharing +
  • +
  • [IOTS-342] - Re-word the message for adding users to the role when sharing a group with users +
- + + +

Sub-task +

+
    +
  • [IOTS-354] - Test Android with Gateway +
  • +
  • [IOTS-355] - Test Windows with Gateway +
  • +
  • [IOTS-359] - Re-Enable Integration tests for the new IOT pack. +
  • +
  • [IOTS-360] - Modify the existing tests and make them working for the current IOT pack. +
  • +
\ No newline at end of file From 00cb7108db2eb2e22ec5d1413b1890bdcba71cf9 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 08:45:26 +0530 Subject: [PATCH 25/47] Version bump on cdmf into [2.0.8] and cdmf-plugins into [3.0.7] --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index dd368425..c40b727f 100644 --- a/pom.xml +++ b/pom.xml @@ -1529,14 +1529,14 @@ 4.7.0 - 2.0.8-SNAPSHOT + 2.0.8 [2.0.0, 3.0.0) 3.0.0-SNAPSHOT - 3.0.7-SNAPSHOT + 3.0.7 6.1.35 From 2db9f661acfe351efb82bb2edc24cb60e20a0def Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 09:08:09 +0530 Subject: [PATCH 26/47] Updated MB user-agent params and server name --- modules/broker/distribution/src/main/conf/axis2.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/broker/distribution/src/main/conf/axis2.xml b/modules/broker/distribution/src/main/conf/axis2.xml index 7ea7b6ef..6d7d1067 100644 --- a/modules/broker/distribution/src/main/conf/axis2.xml +++ b/modules/broker/distribution/src/main/conf/axis2.xml @@ -75,10 +75,10 @@ axis2modules - WSO2 Message Broker-3.0.0-SNAPSHOT + WSO2 Message Broker-3.0.0 - WSO2 Message Broker-3.0.0-SNAPSHOT + WSO2 Message Broker-3.0.0 From 5a2a6e73ec1afd93a16492fd1b9819615cfb791c Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 09:57:53 +0530 Subject: [PATCH 27/47] Updated LICENSE.txt for iot-core --- modules/core/distribution/LICENSE.txt | 1595 ++++++++++++------------- 1 file changed, 738 insertions(+), 857 deletions(-) diff --git a/modules/core/distribution/LICENSE.txt b/modules/core/distribution/LICENSE.txt index 52077cf6..a2606304 100644 --- a/modules/core/distribution/LICENSE.txt +++ b/modules/core/distribution/LICENSE.txt @@ -14,860 +14,744 @@ 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 -addressing-1.6.1-wso2v16.mar bundle apache2 6272 -ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 -andes_3.1.2.jar bundle apache2 1770 -annogen_0.1.0.wso2v1.jar bundle apache2 942 -ant-contrib-1.0b3.jar jar apache2 549 -antlr-runtime_3.2.0.wso2v1.jar bundle bsd 817 -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 -apache-zookeeper_3.4.5.wso2v1.jar bundle apache2 3232 -asm-3.3.1.jar jar bsd 1268 -authenticator_0.7.0.wso2v1.jar bundle apache2 700 -axiom_1.2.11.wso2v10.jar bundle apache2 6271 -axiom_1.2.11.wso2v9.jar bundle apache2 5426 -axis2-json_1.6.1.wso2v16.jar bundle apache2 6270 -axis2-transport-jms_1.1.0.wso2v14.jar bundle apache2 5915 -axis2-transport-jms_1.1.1.wso2v2.jar bundle apache2 7554 -axis2-transport-mail_1.1.0.wso2v17.jar bundle apache2 5260 -axis2-transport-mail_1.1.1.wso2v2.jar bundle apache2 8140 -axis2-transport-rabbitmq-amqp_1.1.0.wso2v14.jar bundle apache2 5914 -axis2-transport-sms_1.1.1.wso2v2.jar bundle apache2 8139 -axis2-transport-tcp_1.1.0.wso2v17.jar bundle apache2 5257 -axis2_1.6.1.wso2v16.jar bundle apache2 6269 -backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 -bcmail-jdk15on_1.49.0.wso2v1.jar bundle bouncy 3473 -bcpkix-jdk15on-1.52.jar jarinbundle bouncy 1343 -bcpkix-jdk15on_1.49.0.wso2v1.jar bundle bouncy 3472 -bcprov-jdk15-132.jar jar apache2 285 -bcprov-jdk15on-1.49.jar jarinbundle bouncy 1069 -bcprov-jdk15on_1.49.0.wso2v2.jar bundle bouncy 3640 -com.google.guava_13.0.1.jar apache2 -bigqueue_0.7.0.wso2v1.jar bundle apache2 7036 -bsf-all_3.0.0.wso2v5.jar bundle apache2 5254 -cassandra-thrift_1.2.13.wso2v4.jar bundle apache2 4379 -chill_2.10_0.5.0.wso2v1.jar bundle apache2 4700 -com.datastax.driver.core_2.1.5.jar bundle apache2 1314 -com.fasterxml.jackson.core.jackson-annotations_2.4.4.jar bundle apache2 1313 -com.fasterxml.jackson.core.jackson-core_2.4.4.jar bundle apache2 1312 -com.fasterxml.jackson.core.jackson-databind_2.4.4.jar bundle apache2 1311 -com.fasterxml.jackson.module.jackson.module.scala_2.4.4.jar bundle apache2 1310 -com.google.gson_2.5.0.jar bundle bsd 1621 -com.google.guava_15.0.0.jar bundle apache2 792 -com.google.guava_19.0.0.jar bundle apache2 1627 -com.google.protobuf_2.5.0.jar bundle bsd 1309 -com.googlecode.plist.dd-plist_1.8.0.jar bundle mit 913 -com.jayway.jsonpath.json-path_0.9.1.jar bundle apache2 798 -com.ning.compress-lzf_1.0.3.jar bundle cddl+gpl 1308 -com.sun.jersey.jersey-core_1.9.0.jar bundle cddl+gpl 1307 -com.sun.jersey.jersey-server_1.9.0.jar bundle cddl+gpl 1306 -commons-beanutils-1.7.0.jar jarinbundle apache2 383 -commons-beanutils-1.8.0.jar jarinbundle apache2 292 -commons-beanutils_1.8.0.wso2v1.jar bundle apache2 688 -commons-cli_1.2.0.wso2v1.jar bundle apache2 922 -commons-codec_1.4.0.wso2v1.jar bundle apache2 980 -commons-collections-3.2.1.jar bundle apache2 514 -commons-collections_3.2.2.wso2v1.jar bundle apache2 6268 -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-io_2.4.0.wso2v1.jar bundle apache2 4217 -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 -config_1.2.1.wso2v1.jar bundle apache2 4699 -cors-filter_1.7.0.wso2v1.jar bundle apache2 2106 -cxf-bundle-2.7.16.jar bundle apache2 1154 -cxf-xjc-boolean-3.0.2.jar jar apache2 1153 -cxf-xjc-bug671-3.0.2.jar jar apache2 1152 -cxf-xjc-dv-3.0.2.jar jar apache2 1151 -cxf-xjc-runtime-3.0.2.jar bundle apache2 1150 -cxf-xjc-ts-3.0.2.jar jar apache2 1149 -disruptor_3.3.2.wso2v2.jar bundle apache2 4377 -dom4j-1.6.1.jar jarinbundle bsd 1177 -ehcache-core-2.5.1.jar jar apache2 267 -ehcache_1.5.0.wso2v3.jar bundle apache2 852 -encoder_1.2.0.wso2v1.jar bundle apache2 4030 -fontbox_1.8.10.wso2v2.jar bundle bsd 6702 -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-jta_1.1_spec-1.1.jar jar apache2 1066 -geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 +addressing-1.6.1-wso2v20.mar bundle apache2 9597 +ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 +annogen_0.1.0.wso2v1.jar bundle apache2 942 +ant-contrib-1.0b3.jar jar apache2 549 +antlr-runtime_3.2.0.wso2v1.jar bundle bsd 817 +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 +apache-zookeeper_3.3.4.wso2v1.jar bundle apache2 4219 +asm-3.3.1.jar jar bsd 1268 +axiom_1.2.11.wso2v11.jar bundle apache2 8489 +axis2-json_1.6.1.wso2v20.jar bundle apache2 9596 +axis2-transport-mail_1.1.0.wso2v17.jar bundle apache2 5260 +axis2-transport-tcp_1.1.0.wso2v17.jar bundle apache2 5257 +axis2_1.6.1.wso2v20.jar bundle apache2 9595 +backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 +bcpkix-jdk15on-1.52.jar jarinbundle bouncy 1343 +bcpkix-jdk15on_1.52.0.wso2v2.jar bundle bouncy 10221 +bcprov-jdk15on-1.52.jar jarinbundle bouncy 1819 +bcprov-jdk15on_1.52.0.wso2v1.jar bundle bouncy 8485 +bcprov-jdk15-132.jar jar bouncy 285 +bsf-all_3.0.0.wso2v5.jar bundle apache2 5254 +com.fasterxml.jackson.core.jackson-annotations_2.8.2.jar bundle apache2 2057 +com.fasterxml.jackson.core.jackson-core_2.8.2.jar bundle apache2 2056 +com.fasterxml.jackson.core.jackson-databind_2.8.2.jar bundle apache2 2055 +com.fasterxml.jackson.dataformat.jackson-dataformat-yaml_2.8.2.jar bundle apache2 2054 +com.google.gson_2.7.0.jar bundle apache2 1853 +com.google.guava_18.0.0.jar bundle apache2 1511 +com.google.guava_19.0.0.jar bundle apache2 1627 +com.googlecode.plist.dd-plist_1.8.0.jar bundle mit 913 +com.jayway.jsonpath.json-path_0.9.1.jar bundle apache2 798 +com.samskivert.jmustache_1.13.0.jar bundle bsd 2053 +com.sun.jersey.jersey-core_1.9.0.jar bundle cddl+gpl 1307 +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.2.jar bundle apache2 2042 +commons-collections_3.2.2.wso2v1.jar bundle apache2 6268 +commons-dbcp_1.4.0.wso2v1.jar bundle apache2 962 +commons-digester-1.8.jar jarinbundle apache2 384 +commons-fileupload_1.3.2.wso2v1.jar bundle apache2 9594 +commons-httpclient_3.1.0.wso2v3.jar bundle apache2 8483 +commons-io_2.4.0.wso2v1.jar bundle apache2 4217 +commons-lang-2.6.0.wso2v1.jar bundle apache2 664 +commons-lang-2.6.jar bundle apache2 506 +commons-lang3_3.4.0.wso2v1.jar bundle apache2 8739 +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 +csrfguard_3.1.0.wso2v2.jar bundle bsd 8482 +cxf-bundle-2.7.16.jar bundle apache2 1154 +cxf-xjc-boolean-3.0.2.jar jar apache2 1153 +cxf-xjc-bug671-3.0.2.jar jar apache2 1152 +cxf-xjc-dv-3.0.2.jar jar apache2 1151 +cxf-xjc-runtime-3.0.2.jar bundle apache2 1150 +cxf-xjc-ts-3.0.2.jar jar apache2 1149 +disruptor_3.3.2.wso2v2.jar bundle apache2 4377 +ehcache-core-2.5.1.jar jar apache2 267 +ehcache_1.5.0.wso2v3.jar bundle apache2 852 +encoder_1.2.0.wso2v1.jar bundle apache2 4030 +feign-jaxrs-9.3.1.jar jarinbundle apache2 2058 +fontbox_1.8.10.wso2v2.jar bundle bsd 6702 +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-jta_1.1_spec-1.1.jar jar apache2 1066 +geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 guava_12.0.0.wso2v1.jar apache2 -guice_3.0.0.wso2v1.jar bundle apache2 1505 -h2-database-engine_1.2.140.wso2v3.jar bundle epl1 697 -h2-1.2.140-wso2v3.jar bundle epl1 -hadoop-client_2.6.0.wso2v2.jar bundle apache2 5706 -hadoop-client_2.6.0.wso2v3.jar bundle apache2 7306 -handy-uri-templates_1.1.7.wso2v1.jar bundle apache2 1989 -hapi_2.1.0.wso2v1.jar bundle mpl10 5251 -hazelcast_3.5.2.wso2v1.jar bundle apache2 5423 -hbase-client_1.1.2.wso2v1.jar bundle apache2 5705 -hector-core_1.1.4.wso2v1.jar bundle apache2 2878 -high-scale-lib_1.0.0.wso2v1.jar bundle apache2 4216 -htrace-core-apache_3.1.0.incubating_wso2v1.jar bundle apache2 4696 -htrace-core_3.0.4.wso2v1.jar bundle apache2 4695 -httpasyncclient-4.0-beta3.jar jar apache2 280 -httpclient-4.2.5.jar jar apache2 548 -httpclient_4.3.1.wso2v2.jar bundle apache2 4214 -httpcore-4.2.4.jar jar apache2 533 -httpcore-nio-4.2.4.jar jar apache2 534 -httpcore-nio_4.3.3.wso2v1.jar bundle apache2 5250 -httpcore_4.3.3.wso2v1.jar bundle apache2 3638 -httpmime-4.3.6.jar jarinbundle apache2 1139 -httpmime_4.3.1.wso2v2.jar bundle apache2 4375 -icu4j-3.8.jar jarinbundle icu 321 -io.dropwizard.metrics.core_3.1.2.jar bundle apache2 1305 -io.dropwizard.metrics.graphite_3.1.2.jar bundle apache2 1304 -io.dropwizard.metrics.json_3.1.2.jar bundle apache2 1303 -io.dropwizard.metrics.jvm_3.1.2.jar bundle apache2 1302 -javassist-3.12.1.GA.jar jarinbundle lgpl2 1768 -javasysmon_0.3.3.wso2v1.jar bundle bsd 721 -javax.cache.wso2_4.4.3.jar bundle apache2 1583 -javax.servlet.jsp-api_2.2.1.jar bundle cddl+gpl 1301 -javax.ws.rs-api-2.0-m10.jar bundle cddl+gpl 263 -jaxb-impl-2.2.6.jar jar cddl1 1148 -jaxb-xjc-2.2.6.jar jar cddl1 1147 -jdbc-pool_7.0.34.wso2v2.jar bundle apache2 3637 -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 -jscep_2.0.2.wso2v2.jar bundle mit 6504 -json-simple_1.1.0.wso2v1.jar bundle apache2 828 -json4s-jackson_2.10_3.2.10.wso2v1.jar bundle apache2 4693 -json_3.0.0.wso2v1.jar bundle apache2 6503 -jsoup-1.8.1.jar jarinbundle mit 1138 -jsr311-api-1.1.1.jar jarinbundle cddl1 553 -jstl_1.2.1.wso2v2.jar bundle cddl1 2204 -js_1.6.0.R7-wso2v1.jar bundle mpl10 5248 -js_1.7.0.R4wso2v1.jar bundle mpl10 2199 -kaptcha_2.3.0.wso2v1.jar bundle apache2 854 -kryo_2.24.0.wso2v1.jar bundle bsd 4692 -libthrift_0.8.0.wso2v1.jar bundle apache2 1117 -libthrift_0.9.2.wso2v1.jar bundle apache2 5912 -localizer-1.0.jar jarinbundle apache2 551 -lucene_5.2.1.wso2v1.jar bundle apache2 4502 -maven-scm_1.7.0.wso2v2.jar bundle apache2 1331 -mesos_0.18.1.wso2v1.jar bundle apache2 4691 -minlog_1.2.0.wso2v1.jar bundle bsd 4690 -neethi-3.0.3.jar bundle apache2 1146 -neethi_2.0.4.wso2v5.jar bundle apache2 6267 -nekohtml-1.9.10.jar jarinbundle apache2 1576 -net.minidev.json-smart_1.3.0.jar bundle apache2 1337 -netty-all_4.0.23.wso2v1.jar bundle apache2 4689 -nimbus-jose-jwt_2.26.1.wso2v3.jar bundle apache2 4885 -noggit_0.6.0.wso2v1.jar bundle apache2 4211 -objenesis_2.1.0.wso2v1.jar bundle mit 4688 -oltu_1.0.0.wso2v3.jar bundle apache2 6502 -opencsv-1.8.jar jarinbundle apache2 368 -opencsv_1.8.0.wso2v1.jar bundle apache2 928 -openid4java_1.0.0.wso2v2.jar bundle apache2 6216 -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.antlr.antlr4-runtime-osgi_4.5.0.jar bundle bsd3 1228 -org.apache.aries.blueprint_1.1.0.jar bundle apache2 1346 -org.apache.aries.proxy_1.0.1.jar bundle apache2 1345 -org.apache.aries.util_1.1.0.jar bundle apache2 1344 -org.apache.commons.lang3_3.3.2.jar bundle apache2 1201 -org.apache.commons.math3_3.2.0.jar bundle apache2 1227 -org.apache.felix.gogo.command_0.10.0.v201209301215.jar bundle apache2 1134 -org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar bundle apache2 1133 -org.apache.felix.gogo.shell_0.10.0.v201212101605.jar bundle apache2 1132 -org.apache.servicemix.bundles.geocoder-java_0.16.0.1.jar bundle apache2 1361 -org.apache.servicemix.bundles.jaxb-api-2.0_4.0.0.m1.jar bundle apache2 1226 -org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar bundle epl1 1131 -org.eclipse.core.expressions_3.4.500.v20130515-1343.jar bundle epl1 1130 -org.eclipse.core.jobs_3.5.300.v20130429-1813.jar bundle epl1 1129 -org.eclipse.core.runtime_3.9.0.v20130326-1255.jar bundle epl1 1128 -org.eclipse.ecf.filetransfer_5.0.0.v20130604-1622.jar bundle epl1 1127 -org.eclipse.ecf.identity_3.2.0.v20130604-1622.jar bundle epl1 1126 -org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 -org.eclipse.ecf.provider.filetransfer_3.2.0.v20130604-1622.jar bundle epl1 1125 -org.eclipse.ecf_3.2.0.v20130604-1622.jar bundle epl1 1124 -org.eclipse.equinox.app_1.3.100.v20130327-1442.jar bundle epl1 1123 -org.eclipse.equinox.common_3.6.200.v20130402-1505.jar bundle epl1 1122 -org.eclipse.equinox.concurrent_1.1.0.v20130327-1442.jar bundle epl1 1121 -org.eclipse.equinox.console_1.0.100.v20130429-0953.jar bundle epl1 1120 -org.eclipse.equinox.ds_1.4.101.v20130813-1853.jar bundle epl1 1119 -org.eclipse.equinox.frameworkadmin.equinox_1.0.500.v20130327-2119.jar bundle epl1 1118 -org.eclipse.equinox.frameworkadmin_2.0.100.v20130327-2119.jar bundle epl1 1117 -org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 -org.eclipse.equinox.http.servlet_1.1.400.v20130418-1354.jar bundle epl1 1116 -org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 -org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar bundle epl1 1115 -org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 -org.eclipse.equinox.p2.console_1.0.300.v20130327-2119.jar bundle epl1 1114 -org.eclipse.equinox.p2.core_2.3.0.v20130327-2119.jar bundle epl1 1113 -org.eclipse.equinox.p2.director.app_1.0.300.v20130819-1621.jar bundle epl1 1112 -org.eclipse.equinox.p2.directorywatcher_1.0.300.v20130327-2119.jar bundle epl1 1110 -org.eclipse.equinox.p2.director_2.3.0.v20130526-0335.jar bundle epl1 1111 -org.eclipse.equinox.p2.engine_2.3.0.v20130526-2122-wso2v1.jar bundle epl1 3873 -org.eclipse.equinox.p2.extensionlocation_1.2.100.v20130327-2119.jar bundle epl1 1109 -org.eclipse.equinox.p2.garbagecollector_1.0.200.v20130327-2119.jar bundle epl1 1108 -org.eclipse.equinox.p2.jarprocessor_1.0.300.v20130327-2119.jar bundle epl1 1107 -org.eclipse.equinox.p2.metadata.repository_1.2.100.v20130327-2119.jar bundle epl1 1106 -org.eclipse.equinox.p2.metadata_2.2.0.v20130523-1557.jar bundle epl1 1105 -org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 -org.eclipse.equinox.p2.repository.tools_2.1.0.v20130327-2119.jar bundle epl1 1104 -org.eclipse.equinox.p2.repository_2.3.0.v20130412-2032.jar bundle epl1 1103 -org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 -org.eclipse.equinox.p2.touchpoint.natives_1.1.100.v20130327-2119.jar bundle epl1 1102 -org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 -org.eclipse.equinox.p2.updatechecker_1.1.200.v20130327-2119.jar bundle epl1 1101 -org.eclipse.equinox.p2.updatesite_1.0.400.v20130515-2028.jar bundle epl1 1100 -org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar bundle epl1 1099 -org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar bundle epl1 1098 -org.eclipse.equinox.security_1.2.0.v20130424-1801.jar bundle epl1 1097 -org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20130327-2119.jar bundle epl1 1096 -org.eclipse.equinox.simpleconfigurator_1.0.400.v20130327-2119.jar bundle epl1 1095 -org.eclipse.equinox.util_1.0.500.v20130404-1337.jar bundle epl1 1094 -org.eclipse.jdt.core.compiler.batch_3.10.2.v20150120-1634.jar bundle epl1 1141 -org.eclipse.osgi.services_3.3.100.v20130513-1956.jar bundle epl1 1093 -org.eclipse.osgi_3.9.1.v20130814-1242.jar bundle epl1 1092 -org.eclipse.paho.client.mqttv3_1.0.2.jar bundle epl1 1769 -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.12.0.jar bundle apache2 1575 -org.jaggeryjs.hostobjects.feed_0.12.0.jar bundle apache2 1574 -org.jaggeryjs.hostobjects.file_0.12.0.jar bundle apache2 1573 -org.jaggeryjs.hostobjects.jaggeryparser_0.12.0.jar bundle apache2 1572 -org.jaggeryjs.hostobjects.log_0.12.0.jar bundle apache2 1571 -org.jaggeryjs.hostobjects.registry_0.12.0.jar bundle apache2 1570 -org.jaggeryjs.hostobjects.stream_0.12.0.jar bundle apache2 1569 -org.jaggeryjs.hostobjects.uri_0.12.0.jar bundle apache2 1568 -org.jaggeryjs.hostobjects.web_0.12.0.jar bundle apache2 1567 -org.jaggeryjs.hostobjects.xhr_0.12.0.jar bundle apache2 1566 -org.jaggeryjs.hostobjects.xslt_0.12.0.jar bundle apache2 1565 -org.jaggeryjs.jaggery.app.mgt.stub_0.12.0.jar bundle apache2 1582 -org.jaggeryjs.jaggery.app.mgt.ui_0.12.0.jar bundle apache2 1581 -org.jaggeryjs.jaggery.app.mgt_0.12.0.jar bundle apache2 1564 -org.jaggeryjs.jaggery.core_0.12.0.jar bundle apache2 1563 -org.jaggeryjs.jaggery.deployer_0.12.0.jar bundle apache2 1562 -org.jaggeryjs.jaggery.tools_0.12.0.jar bundle apache2 1561 -org.jaggeryjs.modules.process_1.5.2.jar bundle apache2 1651 -org.jaggeryjs.modules.sso_1.5.2.jar bundle apache2 1650 -org.jaggeryjs.modules.uuid_1.5.2.jar bundle apache2 1649 -org.jaggeryjs.modules.ws_1.5.2.jar bundle apache2 1648 -org.jaggeryjs.scriptengine_0.12.0.jar bundle apache2 1554 -org.jboss.netty_3.9.0.Final.jar bundle apache2 1298 -org.restlet_2.3.0.wso2v1.jar bundle apache2 4501 -org.roaringbitmap.RoaringBitmap_0.4.5.jar bundle apache2 1297 -org.sat4j.core_2.3.5.v201308161310.jar bundle epl1+lgpl21091 -org.sat4j.pb_2.3.5.v201308161310.jar bundle epl1+lgpl21090 -org.scala-lang.scala-library_2.10.4.v20140209-180020-VFINAL-b66a39653b.jar bundle bsd 1296 -org.scala-lang.scala-reflect_2.10.4.v20140209-180020-VFINAL-b66a39653b.jar bundle bsd 1295 -org.spark-project.protobuf.java_2.5.0.spark.jar bundle apache2 1294 -org.spark.project.akka.actor_2.3.4.spark.jar bundle apache2 1293 -org.spark.project.akka.remote_2.3.4.spark.jar bundle apache2 1292 -org.spark.project.akka.slf4j_2.3.4.spark.jar bundle apache2 1291 -org.wso2.balana_1.0.2.jar bundle apache2 6501 -org.wso2.caching_4.0.3.jar bundle apache2 2919 -org.wso2.carbon.addressing_4.4.3.jar bundle apache2 6699 -org.wso2.carbon.analytics.activitydashboard.admin_1.0.6.ALPHA.jar bundle apache2 8138 -org.wso2.carbon.analytics.activitydashboard.commons_1.0.6.ALPHA.jar bundle apache2 8137 -org.wso2.carbon.analytics.activitydashboard.stub_1.0.6.ALPHA.jar bundle apache2 8136 -org.wso2.carbon.analytics.activitydashboard.ui_1.0.6.ALPHA.jar bundle apache2 8135 -org.wso2.carbon.analytics.api_1.0.6.ALPHA.jar bundle apache2 8134 -org.wso2.carbon.analytics.dashboard.ui_1.0.6.ALPHA.jar bundle apache2 8133 -org.wso2.carbon.analytics.dashboard_1.0.6.ALPHA.jar bundle apache2 8132 -org.wso2.carbon.analytics.dataservice.commons_1.0.6.ALPHA.jar bundle apache2 8131 -org.wso2.carbon.analytics.dataservice.core_1.0.6.ALPHA.jar bundle apache2 8130 -org.wso2.carbon.analytics.datasource.cassandra_1.0.6.ALPHA.jar bundle apache2 8129 -org.wso2.carbon.analytics.datasource.commons_1.0.6.ALPHA.jar bundle apache2 8128 -org.wso2.carbon.analytics.datasource.core_1.0.6.ALPHA.jar bundle apache2 8127 -org.wso2.carbon.analytics.datasource.hbase_1.0.6.ALPHA.jar bundle apache2 8126 -org.wso2.carbon.analytics.datasource.rdbms_1.0.6.ALPHA.jar bundle apache2 8125 -org.wso2.carbon.analytics.eventsink_1.0.6.ALPHA.jar bundle apache2 8124 -org.wso2.carbon.analytics.eventtable_1.0.6.ALPHA.jar bundle apache2 8123 -org.wso2.carbon.analytics.io.commons_1.0.6.ALPHA.jar bundle apache2 8122 -org.wso2.carbon.analytics.jsservice_1.0.6.ALPHA.jar bundle apache2 8121 -org.wso2.carbon.analytics.messageconsole.stub_1.0.6.ALPHA.jar bundle apache2 8120 -org.wso2.carbon.analytics.messageconsole.ui_1.0.6.ALPHA.jar bundle apache2 8119 -org.wso2.carbon.analytics.messageconsole_1.0.6.ALPHA.jar bundle apache2 8118 -org.wso2.carbon.analytics.servlet_1.0.6.ALPHA.jar bundle apache2 8117 -org.wso2.carbon.analytics.spark.admin_1.0.6.ALPHA.jar bundle apache2 8116 -org.wso2.carbon.analytics.spark.core_1.0.6.ALPHA.jar bundle apache2 8115 -org.wso2.carbon.analytics.spark.event_1.0.6.ALPHA.jar bundle apache2 8114 -org.wso2.carbon.analytics.spark.stub_1.0.6.ALPHA.jar bundle apache2 8113 -org.wso2.carbon.analytics.spark.template.deployer_1.0.6.ALPHA.jar bundle apache2 8112 -org.wso2.carbon.analytics.spark.ui_1.0.6.ALPHA.jar bundle apache2 8111 -org.wso2.carbon.analytics.spark.utils_1.0.6.ALPHA.jar bundle apache2 8110 -org.wso2.carbon.analytics.stream.persistence_1.0.6.ALPHA.jar bundle apache2 8109 -org.wso2.carbon.analytics.tools.backup_1.0.6.ALPHA.jar bundle apache2 8108 -org.wso2.carbon.analytics.tools.migration_1.0.6.ALPHA.jar bundle apache2 8107 -org.wso2.carbon.analytics.webservice.stub_1.0.6.ALPHA.jar bundle apache2 8106 -org.wso2.carbon.analytics.webservice_1.0.6.ALPHA.jar bundle apache2 8105 -org.wso2.carbon.andes.admin_3.1.2.jar bundle apache2 8104 -org.wso2.carbon.andes.authentication_3.1.2.jar bundle apache2 8103 -org.wso2.carbon.andes.authorization_3.1.2.jar bundle apache2 8102 -org.wso2.carbon.andes.cluster.mgt_3.1.2.jar bundle apache2 8101 -org.wso2.carbon.andes.commons_3.1.2.jar bundle apache2 8100 -org.wso2.carbon.andes.core_3.1.2.jar bundle apache2 8099 -org.wso2.carbon.andes.event.admin_3.1.2.jar bundle apache2 8098 -org.wso2.carbon.andes.event.core_3.1.2.jar bundle apache2 8097 -org.wso2.carbon.andes_3.1.2.jar bundle apache2 8096 -org.wso2.carbon.apimgt.annotations_1.1.0.SNAPSHOT.jar bundle apache2 8095 -org.wso2.carbon.apimgt.api_5.0.3.jar bundle apache2 8094 -org.wso2.carbon.apimgt.application.extension_1.1.0.SNAPSHOT.jar bundle apache2 8093 -org.wso2.carbon.apimgt.authenticator.oidc.stub_5.0.3.jar bundle apache2 8092 -org.wso2.carbon.apimgt.authenticator.oidc.ui_5.0.3.jar bundle apache2 8091 -org.wso2.carbon.apimgt.authenticator.oidc_5.0.3.jar bundle apache2 8090 -org.wso2.carbon.apimgt.core_5.0.3.jar bundle apache2 8089 -org.wso2.carbon.apimgt.gateway.stub_5.0.3.jar bundle apache2 8088 -org.wso2.carbon.apimgt.gateway_5.0.3.jar bundle apache2 8087 -org.wso2.carbon.apimgt.handlers.security.stub_5.0.3.jar bundle apache2 8086 -org.wso2.carbon.apimgt.hostobjects.oidc_5.0.3.jar bundle apache2 8085 -org.wso2.carbon.apimgt.hostobjects_5.0.3.jar bundle apache2 8084 -org.wso2.carbon.apimgt.impl_5.0.3.jar bundle apache2 8083 -org.wso2.carbon.apimgt.keymgt.client_5.0.3.jar bundle apache2 8082 -org.wso2.carbon.apimgt.keymgt.stub_5.0.3.jar bundle apache2 8081 -org.wso2.carbon.apimgt.keymgt_5.0.3.jar bundle apache2 8080 -org.wso2.carbon.apimgt.registry.cache.stub_5.0.3.jar bundle apache2 8079 -org.wso2.carbon.apimgt.startup.publisher_5.0.3.jar bundle apache2 8078 -org.wso2.carbon.apimgt.statsupdate.stub_5.0.3.jar bundle apache2 8077 -org.wso2.carbon.apimgt.tier.cache.stub_5.0.3.jar bundle apache2 8076 -org.wso2.carbon.apimgt.usage.client_5.0.3.jar bundle apache2 8075 -org.wso2.carbon.apimgt.usage.publisher_5.0.3.jar bundle apache2 8074 -org.wso2.carbon.apimgt.webapp.publisher_1.1.0.SNAPSHOT.jar bundle apache2 8073 -org.wso2.carbon.application.deployer.synapse_4.5.1.jar bundle apache2 8072 -org.wso2.carbon.application.deployer_4.4.3.jar bundle apache2 6677 -org.wso2.carbon.application.mgt.synapse_4.5.1.jar bundle apache2 8071 -org.wso2.carbon.application.upload_4.4.9.jar bundle apache2 7701 -org.wso2.carbon.appmgt.api_1.1.1.jar bundle apache2 6485 -org.wso2.carbon.appmgt.core_1.1.1.jar bundle apache2 6484 -org.wso2.carbon.appmgt.hostobjects_1.1.1.jar bundle apache2 6483 -org.wso2.carbon.appmgt.impl_1.1.1.jar bundle apache2 6482 -org.wso2.carbon.appmgt.mdm.wso2emm_1.1.0.jar bundle apache2 6481 -org.wso2.carbon.appmgt.mdm.wso2mdm_1.1.1.jar bundle apache2 6480 -org.wso2.carbon.appmgt.mobile_1.1.1.jar bundle apache2 6479 -org.wso2.carbon.appmgt.sample.deployer_1.1.1.jar bundle apache2 6478 -org.wso2.carbon.appmgt.usage.client_1.1.1.jar bundle apache2 6477 -org.wso2.carbon.appmgt.usage.publisher_1.1.1.jar bundle apache2 6476 -org.wso2.carbon.authenticator.proxy_4.4.3.jar bundle apache2 6675 -org.wso2.carbon.authenticator.stub_4.4.3.jar bundle apache2 6674 -org.wso2.carbon.bam.presentation.stub_4.2.0.jar bundle apache2 2165 -org.wso2.carbon.bam.service.data.publisher_4.6.0.jar bundle apache2 6475 -org.wso2.carbon.base_4.4.3.jar bundle apache2 6671 -org.wso2.carbon.bootstrap-4.4.3.jar bundle apache2 6505 -org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 -org.wso2.carbon.certificate.mgt.core_1.1.0.SNAPSHOT.jar bundle apache2 8070 -org.wso2.carbon.claim.mgt.stub_5.0.7.jar bundle apache2 7338 -org.wso2.carbon.claim.mgt.ui_5.0.7.jar bundle apache2 7337 -org.wso2.carbon.claim.mgt_5.0.7.jar bundle apache2 7336 -org.wso2.carbon.cluster.mgt.core_4.4.3.jar bundle apache2 6667 -org.wso2.carbon.connector.core_4.5.1.jar bundle apache2 8069 -org.wso2.carbon.core.bootup.validator_4.4.3.jar bundle apache2 6665 -org.wso2.carbon.core.commons.stub_4.4.3.jar bundle apache2 6663 -org.wso2.carbon.core.common_4.4.3.jar bundle apache2 6664 -org.wso2.carbon.core.services_4.4.3.jar bundle apache2 6662 -org.wso2.carbon.core_4.4.3.jar bundle apache2 6661 -org.wso2.carbon.cxf.ext-4.6.0.jar bundle apache2 6275 -org.wso2.carbon.databridge.agent_5.0.12.alpha.jar bundle apache2 8068 -org.wso2.carbon.databridge.commons.binary_5.0.12.alpha.jar bundle apache2 8067 -org.wso2.carbon.databridge.commons.thrift_5.0.12.alpha.jar bundle apache2 8066 -org.wso2.carbon.databridge.commons_5.0.12.alpha.jar bundle apache2 8065 -org.wso2.carbon.databridge.core_5.0.12.alpha.jar bundle apache2 8064 -org.wso2.carbon.databridge.receiver.binary_5.0.12.alpha.jar bundle apache2 8063 -org.wso2.carbon.databridge.receiver.thrift_5.0.12.alpha.jar bundle apache2 8062 -org.wso2.carbon.databridge.streamdefn.filesystem_5.0.12.alpha.jar bundle apache2 8061 -org.wso2.carbon.datasource.reader.hadoop_4.3.4.jar bundle apache2 6990 -org.wso2.carbon.device.mgt.analytics.data.publisher_1.1.0.SNAPSHOT.jar bundle apache2 8060 -org.wso2.carbon.device.mgt.common_1.1.0.SNAPSHOT.jar bundle apache2 8059 -org.wso2.carbon.device.mgt.core_1.1.0.SNAPSHOT.jar bundle apache2 8058 -org.wso2.carbon.device.mgt.extensions_1.1.0.SNAPSHOT.jar bundle apache2 8057 -org.wso2.carbon.device.mgt.iot.androidsense.plugin_2.1.0.SNAPSHOT.jar bundle apache2 8056 -org.wso2.carbon.device.mgt.iot.arduino.plugin_2.1.0.SNAPSHOT.jar bundle apache2 8055 -org.wso2.carbon.device.mgt.iot.raspberrypi.plugin_2.1.0.SNAPSHOT.jar bundle apache2 8054 -org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin_2.1.0.SNAPSHOT.jar bundle apache2 8053 -org.wso2.carbon.device.mgt.iot_2.1.0.SNAPSHOT.jar bundle apache2 8052 -org.wso2.carbon.device.mgt.mobile.android_2.1.0.SNAPSHOT.jar bundle apache2 8051 -org.wso2.carbon.device.mgt.mobile.url.printer_2.1.0.SNAPSHOT.jar bundle apache2 8050 -org.wso2.carbon.device.mgt.mobile.windows_2.1.0.SNAPSHOT.jar bundle apache2 8049 -org.wso2.carbon.device.mgt.mobile_2.1.0.SNAPSHOT.jar bundle apache2 8048 -org.wso2.carbon.device.mgt.oauth.extensions_1.1.0.SNAPSHOT.jar bundle apache2 8047 -org.wso2.carbon.directory.server.manager.common_5.0.7.jar bundle apache2 7334 -org.wso2.carbon.directory.server.manager.stub_5.0.7.jar bundle apache2 8046 -org.wso2.carbon.directory.server.manager.ui_5.0.7.jar bundle apache2 8045 -org.wso2.carbon.directory.server.manager_5.0.7.jar bundle apache2 7333 -org.wso2.carbon.discovery.cxf_4.6.0.jar bundle apache2 6461 -org.wso2.carbon.dynamic.client.registration_1.1.0.SNAPSHOT.jar bundle apache2 8044 -org.wso2.carbon.dynamic.client.web.app.registration_1.1.0.SNAPSHOT.jar bundle apache2 8043 -org.wso2.carbon.ec2-client_4.2.0.jar bundle apache2 2226 -org.wso2.carbon.email.sender.core_1.1.0.SNAPSHOT.jar bundle apache2 8042 -org.wso2.carbon.email.verification.stub_4.4.4.jar bundle apache2 4492 -org.wso2.carbon.email.verification.ui_4.4.4.jar bundle apache2 4491 -org.wso2.carbon.email.verification_4.4.8.jar bundle apache2 6018 -org.wso2.carbon.endpoint.stub_4.5.1.jar bundle apache2 8041 -org.wso2.carbon.endpoint_4.5.1.jar bundle apache2 8040 -org.wso2.carbon.event.admin_4.4.9.jar bundle apache2 8039 -org.wso2.carbon.event.application.deployer_5.0.12.alpha.jar bundle apache2 8038 -org.wso2.carbon.event.client.stub_4.4.9.jar bundle apache2 8037 -org.wso2.carbon.event.client_4.4.9.jar bundle apache2 8036 -org.wso2.carbon.event.common_4.4.9.jar bundle apache2 8035 -org.wso2.carbon.event.core_4.4.9.jar bundle apache2 8034 -org.wso2.carbon.event.execution.manager.admin_5.0.12.alpha.jar bundle apache2 8033 -org.wso2.carbon.event.execution.manager.core_5.0.12.alpha.jar bundle apache2 8032 -org.wso2.carbon.event.execution.manager.stub_5.0.12.alpha.jar bundle apache2 8031 -org.wso2.carbon.event.execution.manager.ui_5.0.12.alpha.jar bundle apache2 8030 -org.wso2.carbon.event.flow.stub_2.0.13.alpha.jar bundle apache2 8029 -org.wso2.carbon.event.flow.ui_2.0.13.alpha.jar bundle apache2 8028 -org.wso2.carbon.event.flow_2.0.13.alpha.jar bundle apache2 8027 -org.wso2.carbon.event.input.adapter.core_5.0.12.alpha.jar bundle apache2 8026 -org.wso2.carbon.event.input.adapter.email_5.0.12.alpha.jar bundle apache2 8025 -org.wso2.carbon.event.input.adapter.extensions_1.0.0.SNAPSHOT.jar bundle apache2 8024 -org.wso2.carbon.event.input.adapter.filetail_5.0.12.alpha.jar bundle apache2 8023 -org.wso2.carbon.event.input.adapter.http_5.0.12.alpha.jar bundle apache2 8022 -org.wso2.carbon.event.input.adapter.jms_5.0.12.alpha.jar bundle apache2 8021 -org.wso2.carbon.event.input.adapter.kafka_5.0.12.alpha.jar bundle apache2 8020 -org.wso2.carbon.event.input.adapter.mqtt_5.0.12.alpha.jar bundle apache2 8019 -org.wso2.carbon.event.input.adapter.soap_5.0.12.alpha.jar bundle apache2 8018 -org.wso2.carbon.event.input.adapter.websocket.local_5.0.12.alpha.jar bundle apache2 8017 -org.wso2.carbon.event.input.adapter.websocket_5.0.12.alpha.jar bundle apache2 8016 -org.wso2.carbon.event.input.adapter.wso2event_5.0.12.alpha.jar bundle apache2 8015 -org.wso2.carbon.event.output.adapter.cassandra_5.0.12.alpha.jar bundle apache2 8014 -org.wso2.carbon.event.output.adapter.core_5.0.12.alpha.jar bundle apache2 8013 -org.wso2.carbon.event.output.adapter.email_5.0.12.alpha.jar bundle apache2 8012 -org.wso2.carbon.event.output.adapter.extensions.ui_1.0.0.SNAPSHOT.jar bundle apache2 8011 -org.wso2.carbon.event.output.adapter.http_5.0.12.alpha.jar bundle apache2 8010 -org.wso2.carbon.event.output.adapter.jms_5.0.12.alpha.jar bundle apache2 8009 -org.wso2.carbon.event.output.adapter.kafka_5.0.12.alpha.jar bundle apache2 8008 -org.wso2.carbon.event.output.adapter.logger_5.0.12.alpha.jar bundle apache2 8007 -org.wso2.carbon.event.output.adapter.mqtt_5.0.12.alpha.jar bundle apache2 8006 -org.wso2.carbon.event.output.adapter.rdbms_5.0.12.alpha.jar bundle apache2 8005 -org.wso2.carbon.event.output.adapter.sms_5.0.12.alpha.jar bundle apache2 8004 -org.wso2.carbon.event.output.adapter.soap_5.0.12.alpha.jar bundle apache2 8003 -org.wso2.carbon.event.output.adapter.ui_5.0.12.alpha.jar bundle apache2 8002 -org.wso2.carbon.event.output.adapter.websocket.local_5.0.12.alpha.jar bundle apache2 8001 -org.wso2.carbon.event.output.adapter.websocket_5.0.12.alpha.jar bundle apache2 8000 -org.wso2.carbon.event.output.adapter.wso2event_5.0.12.alpha.jar bundle apache2 7999 -org.wso2.carbon.event.processor.admin_2.0.13.alpha.jar bundle apache2 7998 -org.wso2.carbon.event.processor.common_2.0.13.alpha.jar bundle apache2 7997 -org.wso2.carbon.event.processor.core_2.0.13.alpha.jar bundle apache2 7996 -org.wso2.carbon.event.processor.manager.commons_5.0.12.alpha.jar bundle apache2 7995 -org.wso2.carbon.event.processor.manager.core_5.0.12.alpha.jar bundle apache2 7994 -org.wso2.carbon.event.processor.stub_2.0.13.alpha.jar bundle apache2 7993 -org.wso2.carbon.event.processor.template.deployer_2.0.13.alpha.jar bundle apache2 7992 -org.wso2.carbon.event.processor.ui_2.0.13.alpha.jar bundle apache2 7991 -org.wso2.carbon.event.publisher.admin_5.0.12.alpha.jar bundle apache2 7990 -org.wso2.carbon.event.publisher.core_5.0.12.alpha.jar bundle apache2 7989 -org.wso2.carbon.event.publisher.stub_5.0.12.alpha.jar bundle apache2 7988 -org.wso2.carbon.event.publisher.ui_5.0.12.alpha.jar bundle apache2 7987 -org.wso2.carbon.event.receiver.admin_5.0.12.alpha.jar bundle apache2 7986 -org.wso2.carbon.event.receiver.core_5.0.12.alpha.jar bundle apache2 7985 -org.wso2.carbon.event.receiver.stub_5.0.12.alpha.jar bundle apache2 7984 -org.wso2.carbon.event.receiver.ui_5.0.12.alpha.jar bundle apache2 7983 -org.wso2.carbon.event.simulator.admin_2.0.13.alpha.jar bundle apache2 7982 -org.wso2.carbon.event.simulator.core_2.0.13.alpha.jar bundle apache2 7981 -org.wso2.carbon.event.simulator.stub_2.0.13.alpha.jar bundle apache2 7980 -org.wso2.carbon.event.simulator.ui_2.0.13.alpha.jar bundle apache2 7979 -org.wso2.carbon.event.statistics.stub_5.0.12.alpha.jar bundle apache2 7978 -org.wso2.carbon.event.statistics.ui_5.0.12.alpha.jar bundle apache2 7977 -org.wso2.carbon.event.statistics_5.0.12.alpha.jar bundle apache2 7976 -org.wso2.carbon.event.stream.admin_5.0.12.alpha.jar bundle apache2 7975 -org.wso2.carbon.event.stream.core_5.0.12.alpha.jar bundle apache2 7974 -org.wso2.carbon.event.stream.persistence.stub_5.0.12.alpha.jar bundle apache2 7973 -org.wso2.carbon.event.stream.stub_5.0.12.alpha.jar bundle apache2 7972 -org.wso2.carbon.event.stream.ui_5.0.12.alpha.jar bundle apache2 7971 -org.wso2.carbon.event.stub_4.4.9.jar bundle apache2 7970 -org.wso2.carbon.event.tracer.stub_5.0.12.alpha.jar bundle apache2 7969 -org.wso2.carbon.event.tracer.ui_5.0.12.alpha.jar bundle apache2 7968 -org.wso2.carbon.event.tracer_5.0.12.alpha.jar bundle apache2 7967 -org.wso2.carbon.event.ui_4.4.9.jar bundle apache2 7966 -org.wso2.carbon.event.ws_4.4.9.jar bundle apache2 7965 -org.wso2.carbon.feature.mgt.core_4.4.3.jar bundle apache2 6655 -org.wso2.carbon.feature.mgt.services_4.4.3.jar bundle apache2 6654 -org.wso2.carbon.feature.mgt.stub_4.4.3.jar bundle apache2 6653 -org.wso2.carbon.feature.mgt.ui_4.4.3.jar bundle apache2 6652 -org.wso2.carbon.framework.exporter_4.4.3.jar bundle apache2 6650 -org.wso2.carbon.ganalytics.publisher_4.4.8.jar bundle apache2 6454 -org.wso2.carbon.governance.api_4.5.8.jar bundle apache2 6453 -org.wso2.carbon.governance.client_4.5.8.jar bundle apache2 6452 -org.wso2.carbon.governance.common_4.5.8.jar bundle apache2 6451 -org.wso2.carbon.governance.custom.lifecycles.checklist.stub_4.5.8.jar bundle apache2 6450 -org.wso2.carbon.governance.custom.lifecycles.checklist.ui_4.5.8.jar bundle apache2 6449 -org.wso2.carbon.governance.custom.lifecycles.checklist_4.5.8.jar bundle apache2 6448 -org.wso2.carbon.governance.custom.lifecycles.history.ui_4.5.8.jar bundle apache2 6447 -org.wso2.carbon.governance.generic.stub_4.5.8.jar bundle apache2 6446 -org.wso2.carbon.governance.generic.ui_4.5.8.jar bundle apache2 6445 -org.wso2.carbon.governance.generic_4.5.8.jar bundle apache2 6444 -org.wso2.carbon.governance.lcm.stub_4.5.8.jar bundle apache2 6443 -org.wso2.carbon.governance.lcm.ui_4.5.8.jar bundle apache2 6442 -org.wso2.carbon.governance.lcm_4.5.8.jar bundle apache2 6441 -org.wso2.carbon.governance.list_4.5.8.jar bundle apache2 6440 -org.wso2.carbon.governance.registry.eventing_4.5.8.jar bundle apache2 6439 -org.wso2.carbon.governance.registry.extensions_4.5.8.jar bundle apache2 6438 -org.wso2.carbon.governance.wsdltool.stub_4.5.8.jar bundle apache2 6437 -org.wso2.carbon.governance.wsdltool.ui_4.5.8.jar bundle apache2 6436 -org.wso2.carbon.governance.wsdltool_4.5.8.jar bundle apache2 6435 -org.wso2.carbon.hostobjects.sso_5.0.3.jar bundle apache2 7964 -org.wso2.carbon.i18n_4.4.3.jar bundle apache2 6648 -org.wso2.carbon.identity.application.authentication.endpoint.util_5.0.7.jar bundle apache2 7332 -org.wso2.carbon.identity.application.authentication.framework_5.0.7.jar bundle apache2 7331 -org.wso2.carbon.identity.application.authenticator.basicauth_5.0.7.jar bundle apache2 7330 -org.wso2.carbon.identity.application.common_5.0.7.jar bundle apache2 6925 -org.wso2.carbon.identity.application.mgt.stub_5.0.7.jar bundle apache2 7329 -org.wso2.carbon.identity.application.mgt.ui_5.0.7.jar bundle apache2 7328 -org.wso2.carbon.identity.application.mgt_5.0.7.jar bundle apache2 7327 -org.wso2.carbon.identity.authentication_4.4.8.jar bundle apache2 5748 -org.wso2.carbon.identity.authenticator.backend.oauth_1.1.0.SNAPSHOT.jar bundle apache2 7963 -org.wso2.carbon.identity.authenticator.saml2.sso.common_5.0.7.jar bundle apache2 6924 -org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.0.7.jar bundle apache2 6923 -org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.0.7.jar bundle apache2 6922 -org.wso2.carbon.identity.authenticator.saml2.sso_5.0.7.jar bundle apache2 6921 -org.wso2.carbon.identity.authenticator.thrift_5.0.7.jar bundle apache2 7962 -org.wso2.carbon.identity.base_5.0.7.jar bundle apache2 6920 -org.wso2.carbon.identity.core.ui_5.0.7.jar bundle apache2 6919 -org.wso2.carbon.identity.core_5.0.7.jar bundle apache2 6918 -org.wso2.carbon.identity.entitlement.proxy_5.0.2.jar bundle apache2 6416 -org.wso2.carbon.identity.entitlement.stub_5.0.2.jar bundle apache2 6415 -org.wso2.carbon.identity.entitlement_5.0.7.jar bundle apache2 7961 -org.wso2.carbon.identity.jwt.client.extension_1.1.0.SNAPSHOT.jar bundle apache2 7960 -org.wso2.carbon.identity.notification.mgt.email_5.0.7.jar bundle apache2 7325 -org.wso2.carbon.identity.notification.mgt.json_5.0.7.jar bundle apache2 7324 -org.wso2.carbon.identity.notification.mgt_5.0.7.jar bundle apache2 7323 -org.wso2.carbon.identity.oauth.common_5.0.7.jar bundle apache2 7322 -org.wso2.carbon.identity.oauth.stub_5.0.3.jar bundle apache2 6409 -org.wso2.carbon.identity.oauth.stub_5.0.7.jar bundle apache2 7321 -org.wso2.carbon.identity.oauth.ui_5.0.7.jar bundle apache2 7320 -org.wso2.carbon.identity.oauth2.grant.jwt_1.0.0.jar bundle apache2 7959 -org.wso2.carbon.identity.oauth_5.0.7.jar bundle apache2 7319 -org.wso2.carbon.identity.provider_5.0.7.jar bundle apache2 7318 -org.wso2.carbon.identity.sso.agent_5.0.0.jar bundle apache2 6405 -org.wso2.carbon.identity.sso.saml.stub_5.0.7.jar bundle apache2 6917 -org.wso2.carbon.identity.sso.saml.ui_5.0.7.jar bundle apache2 7317 -org.wso2.carbon.identity.sso.saml_5.0.7.jar bundle apache2 7316 -org.wso2.carbon.identity.user.profile.stub_5.0.7.jar bundle apache2 7315 -org.wso2.carbon.identity.user.profile.ui_5.0.7.jar bundle apache2 7314 -org.wso2.carbon.identity.user.profile_5.0.7.jar bundle apache2 7313 -org.wso2.carbon.identity.user.registration.stub_5.0.2.jar bundle apache2 6398 -org.wso2.carbon.identity.user.registration.stub_5.0.7.jar bundle apache2 7312 -org.wso2.carbon.identity.user.registration_5.0.7.jar bundle apache2 7958 -org.wso2.carbon.identity.user.store.configuration.deployer_5.0.7.jar bundle apache2 6916 -org.wso2.carbon.identity.user.store.configuration.stub_5.0.7.jar bundle apache2 6915 -org.wso2.carbon.identity.user.store.configuration.ui_5.0.7.jar bundle apache2 6914 -org.wso2.carbon.identity.user.store.configuration_5.0.7.jar bundle apache2 6913 -org.wso2.carbon.identity.user.store.remote_5.0.7.jar bundle apache2 7957 -org.wso2.carbon.idp.mgt.stub_5.0.7.jar bundle apache2 7311 -org.wso2.carbon.idp.mgt.ui_5.0.7.jar bundle apache2 7310 -org.wso2.carbon.idp.mgt_5.0.7.jar bundle apache2 7309 -org.wso2.carbon.inbound.endpoint.osgi_4.5.1.jar bundle apache2 7956 -org.wso2.carbon.inbound.endpoint.persistence_4.5.1.jar bundle apache2 7955 -org.wso2.carbon.inbound.endpoint_4.5.1.jar bundle apache2 7954 -org.wso2.carbon.inbound.stub_4.5.1.jar bundle apache2 7953 -org.wso2.carbon.inbound_4.5.1.jar bundle apache2 7952 -org.wso2.carbon.localentry.stub_4.5.1.jar bundle apache2 7951 -org.wso2.carbon.localentry_4.5.1.jar bundle apache2 7950 -org.wso2.carbon.logging-4.4.3.jar bundle apache2 6507 -org.wso2.carbon.logging.admin.stub_4.4.9.jar bundle apache2 7949 -org.wso2.carbon.logging.admin.ui_4.4.9.jar bundle apache2 7948 -org.wso2.carbon.logging.service_4.4.9.jar bundle apache2 7947 -org.wso2.carbon.logging.view.stub_4.4.9.jar bundle apache2 7946 -org.wso2.carbon.logging.view.ui_4.4.9.jar bundle apache2 7945 -org.wso2.carbon.logging_4.4.3.jar bundle apache2 6600 -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.artifactuploader.stub_4.5.1.jar bundle apache2 7944 -org.wso2.carbon.mediation.artifactuploader_4.5.1.jar bundle apache2 7943 -org.wso2.carbon.mediation.configadmin.stub_4.5.1.jar bundle apache2 7942 -org.wso2.carbon.mediation.configadmin.ui_4.5.1.jar bundle apache2 7941 -org.wso2.carbon.mediation.configadmin_4.5.1.jar bundle apache2 7940 -org.wso2.carbon.mediation.dependency.mgt_4.5.1.jar bundle apache2 7939 -org.wso2.carbon.mediation.initializer.ui_4.5.1.jar bundle apache2 7938 -org.wso2.carbon.mediation.initializer_4.5.1.jar bundle apache2 7937 -org.wso2.carbon.mediation.library.stub_4.5.1.jar bundle apache2 7936 -org.wso2.carbon.mediation.library_4.5.1.jar bundle apache2 7935 -org.wso2.carbon.mediation.message.processor_4.5.1.jar bundle apache2 7934 -org.wso2.carbon.mediation.ntaskadmin_4.5.1.jar bundle apache2 7932 -org.wso2.carbon.mediation.ntask_4.5.1.jar bundle apache2 7933 -org.wso2.carbon.mediation.registry_4.5.1.jar bundle apache2 7931 -org.wso2.carbon.mediation.security.stub_4.2.0.jar bundle apache2 2650 -org.wso2.carbon.mediation.security.stub_4.5.1.jar bundle apache2 7930 -org.wso2.carbon.mediation.security_4.5.1.jar bundle apache2 7929 -org.wso2.carbon.mediation.templates.common_4.5.1.jar bundle apache2 7928 -org.wso2.carbon.mediation.templates.service_4.5.1.jar bundle apache2 7927 -org.wso2.carbon.mediation.templates.stub_4.5.1.jar bundle apache2 7926 -org.wso2.carbon.mediation.templates_4.5.1.jar bundle apache2 7925 -org.wso2.carbon.mediation.transport.handlers_4.5.1.jar bundle apache2 7924 -org.wso2.carbon.mediator.clazz.services_4.5.1.jar bundle apache2 7923 -org.wso2.carbon.mediator.command.services_4.5.1.jar bundle apache2 7922 -org.wso2.carbon.mediator.event_4.5.1.jar bundle apache2 7921 -org.wso2.carbon.mediator.fastXSLT_4.5.1.jar bundle apache2 7920 -org.wso2.carbon.mediator.router.impl_4.5.1.jar bundle apache2 7919 -org.wso2.carbon.mediator.service_4.5.1.jar bundle apache2 7918 -org.wso2.carbon.message.processor.stub_4.5.1.jar bundle apache2 7917 -org.wso2.carbon.message.processor_4.5.1.jar bundle apache2 7916 -org.wso2.carbon.message.store.stub_4.5.1.jar bundle apache2 7915 -org.wso2.carbon.message.store_4.5.1.jar bundle apache2 7914 -org.wso2.carbon.metrics.common_1.2.0.jar bundle apache2 6889 -org.wso2.carbon.metrics.das.reporter_1.2.0.jar bundle apache2 6888 -org.wso2.carbon.metrics.data.common_1.2.0.jar bundle apache2 6912 -org.wso2.carbon.metrics.data.service.stub_1.2.0.jar bundle apache2 6911 -org.wso2.carbon.metrics.data.service_1.2.0.jar bundle apache2 6910 -org.wso2.carbon.metrics.impl_1.2.0.jar bundle apache2 6887 -org.wso2.carbon.metrics.jdbc.reporter_1.2.0.jar bundle apache2 6909 -org.wso2.carbon.metrics.manager_1.2.0.jar bundle apache2 6886 -org.wso2.carbon.metrics.view.ui_1.2.0.jar bundle apache2 6908 -org.wso2.carbon.module.mgt.stub_4.6.0.jar bundle apache2 6352 -org.wso2.carbon.module.mgt.ui_4.6.0.jar bundle apache2 6351 -org.wso2.carbon.module.mgt_4.6.0.jar bundle apache2 6350 -org.wso2.carbon.ndatasource.common_4.4.3.jar bundle apache2 6562 -org.wso2.carbon.ndatasource.core_4.4.3.jar bundle apache2 6561 -org.wso2.carbon.ndatasource.datasources_4.4.9.jar bundle apache2 7913 -org.wso2.carbon.ndatasource.rdbms_4.4.3.jar bundle apache2 6560 -org.wso2.carbon.ndatasource.stub_4.4.9.jar bundle apache2 7912 -org.wso2.carbon.ndatasource.ui_4.4.9.jar bundle apache2 7911 -org.wso2.carbon.ntask.common_4.4.9.jar bundle apache2 7910 -org.wso2.carbon.ntask.core_4.4.9.jar bundle apache2 7909 -org.wso2.carbon.ntask.solutions_4.4.9.jar bundle apache2 7908 -org.wso2.carbon.operation.mgt_4.6.0.jar bundle apache2 6349 -org.wso2.carbon.osgi.security_4.4.3.jar bundle apache2 6559 -org.wso2.carbon.p2.touchpoint_4.4.3.jar bundle apache2 6558 -org.wso2.carbon.policy.information.point_1.1.0.SNAPSHOT.jar bundle apache2 7907 -org.wso2.carbon.policy.mgt.common_1.1.0.SNAPSHOT.jar bundle apache2 7906 -org.wso2.carbon.policy.mgt.core_1.1.0.SNAPSHOT.jar bundle apache2 7905 -org.wso2.carbon.priority.executors.stub_4.5.1.jar bundle apache2 7904 -org.wso2.carbon.priority.executors_4.5.1.jar bundle apache2 7903 -org.wso2.carbon.proxyadmin.common_4.5.1.jar bundle apache2 7902 -org.wso2.carbon.proxyadmin.stub_4.5.1.jar bundle apache2 7901 -org.wso2.carbon.proxyadmin_4.5.1.jar bundle apache2 7900 -org.wso2.carbon.qpid.stub_4.4.9.jar bundle apache2 7899 -org.wso2.carbon.queuing_4.4.3.jar bundle apache2 6554 -org.wso2.carbon.registry.admin.api_4.4.8.jar bundle apache2 4972 -org.wso2.carbon.registry.api_4.4.3.jar bundle apache2 6553 -org.wso2.carbon.registry.common.ui_4.4.8.jar bundle apache2 4971 -org.wso2.carbon.registry.common_4.4.8.jar bundle apache2 4970 -org.wso2.carbon.registry.core_4.4.3.jar bundle apache2 6552 -org.wso2.carbon.registry.eventing_4.4.8.jar bundle apache2 6340 -org.wso2.carbon.registry.extensions.stub_4.4.8.jar bundle apache2 6339 -org.wso2.carbon.registry.extensions.ui_4.4.8.jar bundle apache2 6338 -org.wso2.carbon.registry.extensions_4.4.8.jar bundle apache2 6337 -org.wso2.carbon.registry.indexing_4.4.8.jar bundle apache2 4969 -org.wso2.carbon.registry.info.stub_4.4.8.jar bundle apache2 6336 -org.wso2.carbon.registry.info.ui_4.4.8.jar bundle apache2 6335 -org.wso2.carbon.registry.info_4.4.8.jar bundle apache2 6334 -org.wso2.carbon.registry.properties.stub_4.4.8.jar bundle apache2 4968 -org.wso2.carbon.registry.properties.ui_4.4.8.jar bundle apache2 4967 -org.wso2.carbon.registry.properties_4.4.8.jar bundle apache2 4966 -org.wso2.carbon.registry.relations.stub_4.4.8.jar bundle apache2 6333 -org.wso2.carbon.registry.relations.ui_4.4.8.jar bundle apache2 6332 -org.wso2.carbon.registry.relations_4.4.8.jar bundle apache2 6331 -org.wso2.carbon.registry.resource.stub_4.4.8.jar bundle apache2 4965 -org.wso2.carbon.registry.resource.ui_4.4.8.jar bundle apache2 4964 -org.wso2.carbon.registry.resource_4.4.8.jar bundle apache2 4963 -org.wso2.carbon.registry.search.stub_4.4.8.jar bundle apache2 4962 -org.wso2.carbon.registry.search.ui_4.4.8.jar bundle apache2 4961 -org.wso2.carbon.registry.search_4.4.8.jar bundle apache2 4960 -org.wso2.carbon.registry.server_4.4.3.jar bundle apache2 6551 -org.wso2.carbon.registry.servlet_4.4.8.jar bundle apache2 4959 -org.wso2.carbon.registry.task_4.4.8.jar bundle apache2 6330 -org.wso2.carbon.registry.ws.api_4.4.8.jar bundle apache2 6329 -org.wso2.carbon.registry.ws.client_4.4.8.jar bundle apache2 6328 -org.wso2.carbon.registry.ws.stub_4.4.8.jar bundle apache2 6327 -org.wso2.carbon.relay.mediators.builder_4.5.1.jar bundle apache2 7898 -org.wso2.carbon.relay.module_4.5.1.jar bundle apache2 7897 -org.wso2.carbon.relay_4.5.1.jar bundle apache2 7896 -org.wso2.carbon.remote-tasks.stub_4.4.9.jar bundle apache2 7895 -org.wso2.carbon.rest.api.stub_4.5.1.jar bundle apache2 7894 -org.wso2.carbon.rest.api_4.5.1.jar bundle apache2 7893 -org.wso2.carbon.roles.mgt.stub_4.4.3.jar bundle apache2 6545 -org.wso2.carbon.roles.mgt.ui_4.4.3.jar bundle apache2 6544 -org.wso2.carbon.roles.mgt_4.4.3.jar bundle apache2 6543 -org.wso2.carbon.securevault_4.4.3.jar bundle apache2 6542 -org.wso2.carbon.security.mgt.stub_5.0.7.jar bundle apache2 6907 -org.wso2.carbon.security.mgt.ui_5.0.7.jar bundle apache2 6906 -org.wso2.carbon.security.mgt_5.0.7.jar bundle apache2 6905 -org.wso2.carbon.sequences.common_4.5.1.jar bundle apache2 7892 -org.wso2.carbon.sequences.stub_4.2.1.jar bundle apache2 2240 -org.wso2.carbon.sequences.stub_4.5.1.jar bundle apache2 7891 -org.wso2.carbon.sequences_4.5.1.jar bundle apache2 7890 -org.wso2.carbon.server-4.4.3.jar bundle apache2 6506 -org.wso2.carbon.server.admin.common_4.4.3.jar bundle apache2 6535 -org.wso2.carbon.server.admin.stub_4.4.3.jar bundle apache2 6534 -org.wso2.carbon.server.admin.ui_4.4.3.jar bundle apache2 6533 -org.wso2.carbon.server.admin_4.4.3.jar bundle apache2 6532 -org.wso2.carbon.service.mgt_4.6.0.jar bundle apache2 6318 -org.wso2.carbon.siddhi.metrics.core_2.0.13.alpha.jar bundle apache2 7889 -org.wso2.carbon.siddhi.tryit.ui_2.0.13.alpha.jar bundle apache2 7888 -org.wso2.carbon.policy.decision.point_1.1.0.SNAPSHOT.jar bundle apache2 7887 -org.wso2.carbon.social.core_1.4.1.jar bundle apache2 6316 -org.wso2.carbon.social.db.adapter_1.4.1.jar bundle apache2 6315 -org.wso2.carbon.social.sql_1.4.1.jar bundle apache2 6314 -org.wso2.carbon.startup_4.2.0.jar bundle apache2 2209 -org.wso2.carbon.statistics.stub_4.4.9.jar bundle apache2 7886 -org.wso2.carbon.statistics.ui_4.4.9.jar bundle apache2 7885 -org.wso2.carbon.statistics_4.4.9.jar bundle apache2 7884 -org.wso2.carbon.store.jaggery-scxml-executors_1.4.1.jar bundle apache2 6313 -org.wso2.carbon.task.services_4.5.1.jar bundle apache2 7883 -org.wso2.carbon.task.stub_4.5.1.jar bundle apache2 7882 -org.wso2.carbon.task_4.5.1.jar bundle apache2 7881 -org.wso2.carbon.tenant.common.stub_4.4.9.jar bundle apache2 7880 -org.wso2.carbon.tenant.common_4.4.9.jar bundle apache2 7879 -org.wso2.carbon.tenant.deployment_4.5.0.jar bundle apache2 6309 -org.wso2.carbon.tenant.dispatcher_4.5.0.jar bundle apache2 6086 -org.wso2.carbon.tenant.keystore.mgt_4.5.0.jar bundle apache2 6085 -org.wso2.carbon.tenant.mgt.core_4.5.0.jar bundle apache2 6084 -org.wso2.carbon.tenant.mgt.stub_4.5.0.jar bundle apache2 6083 -org.wso2.carbon.tenant.mgt.ui_4.5.0.jar bundle apache2 6082 -org.wso2.carbon.tenant.mgt_4.5.0.jar bundle apache2 6081 -org.wso2.carbon.tenant.redirector.servlet.stub_4.5.0.jar bundle apache2 6080 -org.wso2.carbon.tenant.redirector.servlet.ui_4.5.0.jar bundle apache2 6079 -org.wso2.carbon.tenant.redirector.servlet_4.5.0.jar bundle apache2 6078 -org.wso2.carbon.tenant.sso.redirector.ui_4.5.0.jar bundle apache2 6077 -org.wso2.carbon.tenant.theme.mgt_4.5.0.jar bundle apache2 6076 -org.wso2.carbon.tenant.throttling.agent_4.5.0.jar bundle apache2 6308 -org.wso2.carbon.tenant.usage.agent_4.5.0.jar bundle apache2 6307 -org.wso2.carbon.throttle.core_4.2.1.jar bundle apache2 3763 -org.wso2.carbon.throttling.agent.stub_4.4.7.jar bundle apache2 6306 -org.wso2.carbon.tomcat.ext_4.4.3.jar bundle apache2 6529 -org.wso2.carbon.tomcat.patch_4.6.0.jar bundle apache2 6305 -org.wso2.carbon.tomcat_4.4.3.jar bundle apache2 6528 -org.wso2.carbon.tryit.ui_4.4.9.jar bundle apache2 7878 -org.wso2.carbon.tryit_4.4.9.jar bundle apache2 7876 -org.wso2.carbon.ui.menu.general_4.4.3.jar bundle apache2 6527 -org.wso2.carbon.ui.menu.governance_4.4.1.jar bundle apache2 4395 -org.wso2.carbon.ui.menu.registry_4.4.1.jar bundle apache2 4394 -org.wso2.carbon.ui.menu.tools_4.4.3.jar bundle apache2 6716 -org.wso2.carbon.ui_4.4.3.jar bundle apache2 6526 -org.wso2.carbon.um.ws.api.stub_4.4.9.jar bundle apache2 7875 -org.wso2.carbon.um.ws.api.stub_5.0.7.jar bundle apache2 7874 -org.wso2.carbon.um.ws.api_5.0.7.jar bundle apache2 7873 -org.wso2.carbon.um.ws.service_5.0.7.jar bundle apache2 7872 -org.wso2.carbon.user.api_4.4.3.jar bundle apache2 6522 -org.wso2.carbon.user.core_4.4.3.jar bundle apache2 6521 -org.wso2.carbon.user.mgt.common_5.0.7.jar bundle apache2 6903 -org.wso2.carbon.user.mgt.stub_5.0.7.jar bundle apache2 6902 -org.wso2.carbon.user.mgt.ui_5.0.7.jar bundle apache2 6901 -org.wso2.carbon.user.mgt.workflow.stub_5.0.7.jar bundle apache2 6900 -org.wso2.carbon.user.mgt_5.0.7.jar bundle apache2 6899 -org.wso2.carbon.utils_4.4.3.jar bundle apache2 6515 -org.wso2.carbon.webapp.authenticator.framework_1.1.0.SNAPSHOT.jar bundle apache2 7871 -org.wso2.carbon.webapp.deployer_4.6.0.jar bundle apache2 6295 -org.wso2.carbon.webapp.list.ui_4.6.0.jar bundle apache2 6294 -org.wso2.carbon.webapp.mgt.stub_4.6.0.jar bundle apache2 6293 -org.wso2.carbon.webapp.mgt.ui_4.6.0.jar bundle apache2 6292 -org.wso2.carbon.webapp.mgt_4.6.0.jar bundle apache2 6291 -org.wso2.carbon.wsdl2form-4.4.9.jar bundle apache2 7877 -org.wso2.ciphertool-1.0.0-wso2v3.jar bundle apache2 4038 -org.wso2.iot.admin.styles_2.0.4.SNAPSHOT.jar bundle apache2 7870 -org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 -org.wso2.store.admin.styles_1.4.1.jar bundle apache2 6287 -org.wso2.store.sso.common_1.4.1.jar bundle apache2 6286 -org.xerial.snappy.snappy-java_1.1.1.7.jar bundle apache2 1290 -org.yaml.snakeyaml_1.11.0.jar bundle apache2 1222 -paranamer_2.6.0.wso2v1.jar bundle bsd 4644 -patch.jar jarinbundle epl1 1137 -pdepublishing-ant.jar jar epl1 524 -pdepublishing.jar jar epl1 525 -pdfbox_1.8.10.wso2v2.jar bundle apache2 6514 -perf4j_0.9.12.wso2v1.jar bundle apache2 832 -poi-ooxml_3.9.0.wso2v3.jar bundle apache2 3592 -poi-scratchpad_3.9.0.wso2v1.jar bundle apache2 2205 -poi_3.9.0.wso2v1.jar bundle apache2 2017 -protobuf-java-fragment_2.5.0.wso2v1.jar bundle bsd 4643 -quartz_2.1.1.wso2v1.jar bundle apache2 975 -rampart-core_1.6.1.wso2v17.jar bundle apache2 6285 -rampart-policy_1.6.1.wso2v17.jar bundle apache2 6284 -rampart-trust_1.6.1.wso2v17.jar bundle apache2 6283 -rome_0.9.0.wso2v1.jar bundle apache2 930 -saxon.bps_9.0.0.x-wso2v1.jar bundle mpl11 985 -saxon_8.9.0.wso2v2.jar bundle mpl10 2091 -scannotation_1.0.3.wso2v1.jar bundle apache2 7869 -siddhi-core_3.0.6.alpha.jar bundle apache2 1767 -siddhi-extension-eval-script_3.0.6.alpha.jar bundle apache2 1766 -siddhi-extension-event-table_3.0.6.alpha.jar bundle apache2 1765 -siddhi-extension-geo_3.0.6.alpha.jar bundle apache2 1764 -siddhi-extension-kalman-filter_3.0.6.alpha.jar bundle apache2 1763 -siddhi-extension-map_3.0.6.alpha.jar bundle apache2 1762 -siddhi-extension-math_3.0.6.alpha.jar bundle apache2 1761 -siddhi-extension-regex_3.0.6.alpha.jar bundle apache2 1760 -siddhi-extension-reorder_3.0.6.alpha.jar bundle apache2 1759 -siddhi-extension-string_3.0.6.alpha.jar bundle apache2 1758 -siddhi-extension-timeseries_3.0.6.alpha.jar bundle apache2 1756 -siddhi-extension-time_3.0.6.alpha.jar bundle apache2 1757 -siddhi-query-api_3.0.6.alpha.jar bundle apache2 1755 -siddhi-query-compiler_3.0.6.alpha.jar bundle apache2 1754 -slf4j.api_1.6.1.jar bundle mit 354 -slf4j.api_1.7.13.jar bundle mit 1606 -slf4j.log4j12_1.6.1.jar bundle mit 346 -slf4j.log4j12_1.7.13.jar bundle mit 1605 -slf4j_1.5.10.wso2v1.jar bundle mit 1429 -smackx_3.0.4.wso2v1.jar bundle apache2 1871 -smack_3.0.4.wso2v1.jar bundle apache2 1493 -solr_5.2.1.wso2v1.jar bundle apache2 4384 -spark-core_2.10_1.4.2.wso2v1.jar bundle apache2 6896 -spark-sql_2.10_1.4.2.wso2v1.jar bundle apache2 6895 -spark-streaming_2.10_1.4.2.wso2v1.jar bundle apache2 6894 -spatial4j_0.4.1.wso2v1.jar bundle apache2 4045 -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.2.9.wso2v1.jar bundle apache2 4044 -stax2-api-3.1.4.jar bundle bsd 1089 -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 -storm-core_0.9.5.wso2v1.jar bundle apache2 4227 -stream_2.2.0.wso2v1.jar bundle apache2 4637 -synapse-commons_2.1.5.wso2v2.jar bundle apache2 7868 -synapse-core_2.1.5.wso2v2.jar bundle apache2 7867 -synapse-extensions_2.1.5.wso2v2.jar bundle apache2 7866 -synapse-nhttp-transport_2.1.5.wso2v2.jar bundle apache2 7865 -synapse-samples_2.1.5.wso2v2.jar bundle apache2 7864 -synapse-tasks_2.1.5.wso2v2.jar bundle apache2 7863 -tcpmon-1.0.jar jar bsd 255 -tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 -tomcat-annotations-api-7.0.59.jar jar apache2 1088 -tomcat-catalina-ha_7.0.59.wso2v1.jar bundle apache2 3829 -tomcat-el-api_7.0.59.wso2v1.jar bundle apache2 3828 -tomcat-jsp-api_7.0.59.wso2v1.jar bundle apache2 3827 -tomcat-juli-7.0.59.jar jar apache2 1086 -tomcat-servlet-api_7.0.59.wso2v1.jar bundle apache2 3826 -tomcat_7.0.59.wso2v3.jar bundle apache2 3985 -tyrus-standalone-client_1.7.0.wso2v1.jar bundle cddl+gpl 4226 -uddi4j-1.0.1.jar jarinbundle ibmpl 406 -uncommons-maths_1.2.2.wso2v1.jar bundle apache2 4636 -velocity-1.7.jar bundle apache2 509 -wadl-core-1.1.3.wso2v2.jar bundle apache2 4069 -wadl-core_1.1.3.wso2v2.jar bundle apache2 1954 -waffle-jna_1.6.0.wso2v4.jar bundle epl1 6276 -woden_1.0.0.M9-wso2v1.jar bundle apache2 3755 -woodstox-core-asl-4.4.1.jar bundle apache2 1087 -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-firealarm-virtual-agent-advanced.jar jar apache2 1772 -wso2-firealarm-virtual-agent.jar jar apache2 1771 -wso2-uri-templates_1.6.2.jar bundle apache2 364 -wss4j_1.5.11.wso2v11.jar bundle apache2 5040 -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 -xmlschema-core-2.1.0.jar bundle apache2 1145 -XmlSchema_1.4.7.wso2v3.jar bundle apache2 3585 -xmlsec-1.5.8.jar bundle apache2 1144 -xmltooling-1.3.1.jar jarinbundle apache2 348 +guice_3.0.0.wso2v1.jar bundle apache2 1505 +h2-1.3.175.jar jarinbundle epl1 1999 +h2_1.3.175.wso2v1.jar bundle apache2 9731 +handy-uri-templates_1.1.7.wso2v1.jar bundle apache2 1989 +hapi_2.1.0.wso2v1.jar bundle mpl10 5251 +hazelcast_3.5.4.wso2v2.jar bundle apache2 8481 +hector-core_1.1.4.wso2v1.jar bundle apache2 2878 +high-scale-lib_1.0.0.wso2v1.jar bundle apache2 4216 +httpasyncclient-4.0-beta3.jar jar apache2 280 +httpclient-4.2.5.jar jar apache2 548 +httpclient_4.3.1.wso2v2.jar bundle apache2 4214 +httpcore-4.2.4.jar jar apache2 533 +httpcore-nio-4.2.4.jar jar apache2 534 +httpcore-nio_4.3.3.wso2v4.jar bundle apache2 8736 +httpcore_4.3.3.wso2v1.jar bundle apache2 3638 +httpmime-4.3.6.jar jarinbundle apache2 1139 +httpmime_4.3.1.wso2v2.jar bundle apache2 4375 +icu4j-3.8.jar jarinbundle icu 321 +io.dropwizard.metrics.core_3.1.2.jar bundle apache2 1305 +io.dropwizard.metrics.jvm_3.1.2.jar bundle apache2 1302 +io.github.openfeign.feign-core_9.3.1.jar bundle apache2 2060 +io.github.openfeign.feign-gson_9.3.1.jar bundle apache2 2059 +io.netty.buffer_4.0.30.Final.jar bundle apache2 1544 +io.netty.codec-http_4.0.30.Final.jar bundle apache2 1543 +io.netty.codec_4.0.30.Final.jar bundle apache2 1542 +io.netty.common_4.0.30.Final.jar bundle apache2 1541 +io.netty.handler_4.0.30.Final.jar bundle apache2 1540 +io.netty.transport_4.0.30.Final.jar bundle apache2 1539 +io.swagger.annotations_1.5.10.jar bundle apache2 2052 +io.swagger.core_1.5.10.jar bundle apache2 2051 +io.swagger.models_1.5.10.jar bundle apache2 2050 +jackson-annotations_2.6.1.wso2v1.jar bundle apache2 7757 +jackson-core_2.6.1.wso2v1.jar bundle apache2 7756 +jackson-databind_2.6.1.wso2v3.jar bundle apache2 8735 +javassist-3.12.1.GA.jar jarinbundle lgpl2 1768 +javasysmon_0.3.3.wso2v1.jar bundle bsd 721 +javax.cache.wso2_4.4.11.jar bundle apache2 2045 +javax.servlet.jsp-api_2.2.1.jar bundle cddl+gpl 1301 +javax.validation.api_1.1.0.Final.jar bundle apache2 1840 +javax.ws.rs-api-2.0-m10.jar bundle cddl+gpl 263 +javax.ws.rs-api-2.0.1.jar jarinbundle cddl+gpl 1452 +jaxb-impl-2.2.6.jar jarinbundle cddl+gpl 1823 +jaxb-impl-2.2.6.jar jar cddl1 1148 +jaxb-xjc-2.2.6.jar jarinbundle cddl+gpl 1822 +jaxb-xjc-2.2.6.jar jar cddl1 1147 +jdbc-pool_7.0.34.wso2v2.jar bundle apache2 3637 +jdom_1.0.0.wso2v1.jar bundle apache2 693 +jericho-html-2.4.jar jarinbundle epl1 363 +jersey-client-1.12.jar jarinbundle cddl+gpl 1821 +jettison-1.3.4.jar bundle apache2 542 +jettison_1.3.4.wso2v1.jar bundle apache2 2162 +joda-time_2.8.2.wso2v1.jar bundle apache2 6879 +jscep_2.3.0.wso2v2.jar bundle mit 10220 +json-schema-validator-all_2.2.6.wso2v2.jar bundle apache2 10931 +json-simple_1.1.0.wso2v1.jar bundle apache2 828 +json_3.0.0.wso2v1.jar bundle apache2 6503 +jsoup-1.8.1.jar jarinbundle mit 1138 +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 +kryo_2.24.0.wso2v1.jar bundle bsd 4692 +libphonenumber_7.4.2.wso2v1.jar bundle apache2 8733 +libthrift_0.8.0.wso2v1.jar bundle apache2 1117 +libthrift_0.9.2.wso2v1.jar bundle apache2 5912 +localizer-1.0.jar jarinbundle apache2 551 +lucene_5.2.1.wso2v1.jar bundle apache2 4502 +maven-scm_1.7.0.wso2v2.jar bundle apache2 1331 +neethi-3.0.3.jar bundle apache2 1146 +neethi_2.0.4.wso2v5.jar bundle apache2 6267 +nekohtml-1.9.10.jar jarinbundle apache2 1576 +net.minidev.json-smart_1.3.0.jar bundle apache2 1337 +nimbus-jose-jwt_2.26.1.wso2v3.jar bundle apache2 4885 +noggit_0.6.0.wso2v1.jar bundle apache2 4211 +objenesis_2.1.0.wso2v1.jar bundle mit 4688 +oltu_1.0.0.wso2v3.jar bundle apache2 6502 +opencsv-1.8.jar jarinbundle apache2 368 +opencsv_1.8.0.wso2v1.jar bundle apache2 928 +openid4java_1.0.0.wso2v2.jar bundle apache2 6216 +opensaml_2.6.4.wso2v3.jar bundle apache2 8480 +openxri-client-1.2.0.jar jarinbundle apache2 433 +openxri-syntax-1.2.0.jar jarinbundle apache2 434 +org.apache.aries.blueprint_1.1.0.jar bundle apache2 1346 +org.apache.aries.proxy_1.0.1.jar bundle apache2 1345 +org.apache.aries.util_1.1.0.jar bundle apache2 1344 +org.apache.felix.gogo.command_0.10.0.v201209301215.jar bundle apache2 1134 +org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar bundle apache2 1133 +org.apache.felix.gogo.shell_0.10.0.v201212101605.jar bundle apache2 1132 +org.apache.velocity_1.7.0.jar bundle apache2 1839 +org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar bundle epl1 1131 +org.eclipse.core.expressions_3.4.500.v20130515-1343.jar bundle epl1 1130 +org.eclipse.core.jobs_3.5.300.v20130429-1813.jar bundle epl1 1129 +org.eclipse.core.runtime_3.9.0.v20130326-1255.jar bundle epl1 1128 +org.eclipse.ecf.filetransfer_5.0.0.v20130604-1622.jar bundle epl1 1127 +org.eclipse.ecf.identity_3.2.0.v20130604-1622.jar bundle epl1 1126 +org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 +org.eclipse.ecf.provider.filetransfer_3.2.0.v20130604-1622.jar bundle epl1 1125 +org.eclipse.ecf_3.2.0.v20130604-1622.jar bundle epl1 1124 +org.eclipse.equinox.app_1.3.100.v20130327-1442.jar bundle epl1 1123 +org.eclipse.equinox.common_3.6.200.v20130402-1505.jar bundle epl1 1122 +org.eclipse.equinox.concurrent_1.1.0.v20130327-1442.jar bundle epl1 1121 +org.eclipse.equinox.console_1.0.100.v20130429-0953.jar bundle epl1 1120 +org.eclipse.equinox.ds_1.4.101.v20130813-1853.jar bundle epl1 1119 +org.eclipse.equinox.frameworkadmin.equinox_1.0.500.v20130327-2119.jar bundle epl1 1118 +org.eclipse.equinox.frameworkadmin_2.0.100.v20130327-2119.jar bundle epl1 1117 +org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 +org.eclipse.equinox.http.servlet_1.1.400.v20130418-1354.jar bundle epl1 1116 +org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 +org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar bundle epl1 1115 +org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 +org.eclipse.equinox.p2.console_1.0.300.v20130327-2119.jar bundle epl1 1114 +org.eclipse.equinox.p2.core_2.3.0.v20130327-2119.jar bundle epl1 1113 +org.eclipse.equinox.p2.director.app_1.0.300.v20130819-1621.jar bundle epl1 1112 +org.eclipse.equinox.p2.directorywatcher_1.0.300.v20130327-2119.jar bundle epl1 1110 +org.eclipse.equinox.p2.director_2.3.0.v20130526-0335.jar bundle epl1 1111 +org.eclipse.equinox.p2.engine_2.3.0.v20130526-2122-wso2v1.jar bundle epl1 3873 +org.eclipse.equinox.p2.extensionlocation_1.2.100.v20130327-2119.jar bundle epl1 1109 +org.eclipse.equinox.p2.garbagecollector_1.0.200.v20130327-2119.jar bundle epl1 1108 +org.eclipse.equinox.p2.jarprocessor_1.0.300.v20130327-2119.jar bundle epl1 1107 +org.eclipse.equinox.p2.metadata.repository_1.2.100.v20130327-2119.jar bundle epl1 1106 +org.eclipse.equinox.p2.metadata_2.2.0.v20130523-1557.jar bundle epl1 1105 +org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 +org.eclipse.equinox.p2.repository.tools_2.1.0.v20130327-2119.jar bundle epl1 1104 +org.eclipse.equinox.p2.repository_2.3.0.v20130412-2032.jar bundle epl1 1103 +org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 +org.eclipse.equinox.p2.touchpoint.natives_1.1.100.v20130327-2119.jar bundle epl1 1102 +org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 +org.eclipse.equinox.p2.updatechecker_1.1.200.v20130327-2119.jar bundle epl1 1101 +org.eclipse.equinox.p2.updatesite_1.0.400.v20130515-2028.jar bundle epl1 1100 +org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar bundle epl1 1099 +org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar bundle epl1 1098 +org.eclipse.equinox.security_1.2.0.v20130424-1801.jar bundle epl1 1097 +org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20130327-2119.jar bundle epl1 1096 +org.eclipse.equinox.simpleconfigurator_1.0.400.v20130327-2119.jar bundle epl1 1095 +org.eclipse.equinox.util_1.0.500.v20130404-1337.jar bundle epl1 1094 +org.eclipse.jdt.core.compiler.batch_3.10.2.v20150120-1634.jar bundle epl1 1141 +org.eclipse.osgi.services_3.3.100.v20130513-1956.jar bundle epl1 1093 +org.eclipse.osgi_3.9.1.v20130814-1242.jar bundle epl1 1092 +org.eclipse.paho.client.mqttv3_1.0.2.jar bundle epl1 1769 +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.12.8.jar bundle apache2 1998 +org.jaggeryjs.hostobjects.feed_0.12.8.jar bundle apache2 1997 +org.jaggeryjs.hostobjects.file_0.12.8.jar bundle apache2 1996 +org.jaggeryjs.hostobjects.jaggeryparser_0.12.8.jar bundle apache2 1995 +org.jaggeryjs.hostobjects.log_0.12.8.jar bundle apache2 1994 +org.jaggeryjs.hostobjects.registry_0.12.8.jar bundle apache2 1993 +org.jaggeryjs.hostobjects.stream_0.12.8.jar bundle apache2 1992 +org.jaggeryjs.hostobjects.uri_0.12.8.jar bundle apache2 1991 +org.jaggeryjs.hostobjects.web_0.12.8.jar bundle apache2 1990 +org.jaggeryjs.hostobjects.xhr_0.12.8.jar bundle apache2 1989 +org.jaggeryjs.hostobjects.xslt_0.12.8.jar bundle apache2 1988 +org.jaggeryjs.jaggery.app.mgt.stub_0.12.8.jar bundle apache2 1987 +org.jaggeryjs.jaggery.app.mgt.ui_0.12.8.jar bundle apache2 1986 +org.jaggeryjs.jaggery.app.mgt_0.12.8.jar bundle apache2 1985 +org.jaggeryjs.jaggery.core_0.12.8.jar bundle apache2 1984 +org.jaggeryjs.jaggery.deployer_0.12.8.jar bundle apache2 1983 +org.jaggeryjs.jaggery.tools_0.12.8.jar bundle apache2 1982 +org.jaggeryjs.modules.process_1.5.5.jar bundle apache2 1953 +org.jaggeryjs.modules.sso_1.5.5.jar bundle apache2 1952 +org.jaggeryjs.modules.uuid_1.5.5.jar bundle apache2 1951 +org.jaggeryjs.modules.ws_1.5.5.jar bundle apache2 1981 +org.jaggeryjs.scriptengine_0.12.8.jar bundle apache2 1980 +org.restlet_2.3.0.wso2v1.jar bundle apache2 4501 +org.sat4j.core_2.3.5.v201308161310.jar bundle epl1+lgpl21091 +org.sat4j.pb_2.3.5.v201308161310.jar bundle epl1+lgpl21090 +org.wso2.balana_1.1.2.jar bundle apache2 10593 +org.wso2.caching_4.0.3.jar bundle apache2 2919 +org.wso2.carbon.addressing_4.4.11.jar bundle apache2 10386 +org.wso2.carbon.analytics.api_1.3.3.jar bundle apache2 10830 +org.wso2.carbon.analytics.dataservice.commons_1.3.3.jar bundle apache2 10828 +org.wso2.carbon.analytics.datasource.commons_1.3.3.jar bundle apache2 10825 +org.wso2.carbon.analytics.io.commons_1.3.3.jar bundle apache2 10819 +org.wso2.carbon.apimgt.annotations_2.0.7.jar bundle apache2 11056 +org.wso2.carbon.apimgt.api_6.1.35.jar bundle apache2 11055 +org.wso2.carbon.apimgt.application.extension_2.0.7.jar bundle apache2 11054 +org.wso2.carbon.apimgt.authenticator.oidc.stub_6.1.35.jar bundle apache2 11053 +org.wso2.carbon.apimgt.authenticator.oidc.ui_6.1.35.jar bundle apache2 11052 +org.wso2.carbon.apimgt.authenticator.oidc_6.1.35.jar bundle apache2 11051 +org.wso2.carbon.apimgt.core_6.1.35.jar bundle apache2 11050 +org.wso2.carbon.apimgt.gateway.stub_6.1.35.jar bundle apache2 11049 +org.wso2.carbon.apimgt.gateway_6.1.35.jar bundle apache2 11048 +org.wso2.carbon.apimgt.handlers.security.stub_6.1.35.jar bundle apache2 11047 +org.wso2.carbon.apimgt.handlers_2.0.7.jar bundle apache2 11046 +org.wso2.carbon.apimgt.hostobjects.oidc_6.1.35.jar bundle apache2 11045 +org.wso2.carbon.apimgt.hostobjects_6.1.35.jar bundle apache2 11044 +org.wso2.carbon.apimgt.impl_6.1.35.jar bundle apache2 11043 +org.wso2.carbon.apimgt.keymgt.client_6.1.35.jar bundle apache2 11042 +org.wso2.carbon.apimgt.keymgt.stub_6.1.35.jar bundle apache2 11041 +org.wso2.carbon.apimgt.keymgt_6.1.35.jar bundle apache2 11040 +org.wso2.carbon.apimgt.registry.cache.stub_6.1.35.jar bundle apache2 11039 +org.wso2.carbon.apimgt.statsupdate.stub_6.1.35.jar bundle apache2 11038 +org.wso2.carbon.apimgt.tier.cache.stub_6.1.35.jar bundle apache2 11037 +org.wso2.carbon.apimgt.usage.client_6.1.35.jar bundle apache2 11036 +org.wso2.carbon.apimgt.usage.publisher_6.1.35.jar bundle apache2 11035 +org.wso2.carbon.apimgt.webapp.publisher_2.0.7.jar bundle apache2 11034 +org.wso2.carbon.application.deployer.synapse_4.6.9.jar bundle apache2 10902 +org.wso2.carbon.application.deployer.webapp_4.7.2.jar bundle apache2 11033 +org.wso2.carbon.application.deployer_4.4.11.jar bundle apache2 10385 +org.wso2.carbon.application.mgt.stub_4.5.4.jar bundle apache2 8688 +org.wso2.carbon.application.mgt.synapse_4.6.9.jar bundle apache2 10901 +org.wso2.carbon.application.mgt.ui_4.5.4.jar bundle apache2 8686 +org.wso2.carbon.application.mgt_4.5.4.jar bundle apache2 8685 +org.wso2.carbon.application.upload_4.5.4.jar bundle apache2 8684 +org.wso2.carbon.appmgt.api_1.2.10.jar bundle apache2 11032 +org.wso2.carbon.appmgt.core_1.2.10.jar bundle apache2 11031 +org.wso2.carbon.appmgt.gateway.stub_1.2.10.jar bundle apache2 11030 +org.wso2.carbon.appmgt.hostobjects_1.2.10.jar bundle apache2 11029 +org.wso2.carbon.appmgt.impl_1.2.10.jar bundle apache2 11028 +org.wso2.carbon.appmgt.mdm.osgiconnector_3.0.6.jar bundle apache2 11027 +org.wso2.carbon.appmgt.mdm.restconnector_1.2.10.jar bundle apache2 11026 +org.wso2.carbon.appmgt.mdm.wso2emm_1.1.4.jar bundle apache2 8176 +org.wso2.carbon.appmgt.mobile_1.2.10.jar bundle apache2 11025 +org.wso2.carbon.appmgt.publisher_1.2.10.jar bundle apache2 11024 +org.wso2.carbon.appmgt.sample.deployer_1.2.10.jar bundle apache2 11023 +org.wso2.carbon.appmgt.usage.client_1.2.10.jar bundle apache2 11022 +org.wso2.carbon.appmgt.usage.publisher_1.2.10.jar bundle apache2 11021 +org.wso2.carbon.authenticator.proxy_4.4.11.jar bundle apache2 10384 +org.wso2.carbon.authenticator.stub_4.4.11.jar bundle apache2 10383 +org.wso2.carbon.bam.presentation.stub_4.2.0.jar bundle apache2 2165 +org.wso2.carbon.base_4.4.11.jar bundle apache2 10382 +org.wso2.carbon.bootstrap-4.4.11.jar bundle apache2 10337 +org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 +org.wso2.carbon.certificate.mgt.core_2.0.7.jar bundle apache2 11020 +org.wso2.carbon.claim.mgt.stub_5.7.5.jar bundle apache2 10773 +org.wso2.carbon.claim.mgt.ui_5.7.5.jar bundle apache2 10772 +org.wso2.carbon.claim.mgt_5.7.5.jar bundle apache2 10771 +org.wso2.carbon.cluster.mgt.core_4.4.11.jar bundle apache2 10381 +org.wso2.carbon.connector.core_4.6.9.jar bundle apache2 10900 +org.wso2.carbon.core.bootup.validator_4.4.11.jar bundle apache2 10380 +org.wso2.carbon.core.commons.stub_4.4.11.jar bundle apache2 10378 +org.wso2.carbon.core.common_4.4.11.jar bundle apache2 10379 +org.wso2.carbon.core.services_4.4.11.jar bundle apache2 10377 +org.wso2.carbon.core_4.4.11.jar bundle apache2 10376 +org.wso2.carbon.cxf.ext-4.7.2.jar bundle apache2 10222 +org.wso2.carbon.dashboard.deployment_2.0.5.jar bundle apache2 11019 +org.wso2.carbon.dashboard.store.filter_2.0.5.jar bundle apache2 11018 +org.wso2.carbon.databridge.agent_5.1.5.jar bundle apache2 11017 +org.wso2.carbon.databridge.commons.binary_5.1.5.jar bundle apache2 11016 +org.wso2.carbon.databridge.commons.thrift_5.1.5.jar bundle apache2 11015 +org.wso2.carbon.databridge.commons_5.1.5.jar bundle apache2 11014 +org.wso2.carbon.databridge.core_5.1.5.jar bundle apache2 11013 +org.wso2.carbon.databridge.streamdefn.filesystem_5.1.5.jar bundle apache2 11012 +org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 +org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 +org.wso2.carbon.device.mgt.analytics.dashboard_2.0.7.jar bundle apache2 11011 +org.wso2.carbon.device.mgt.analytics.data.publisher_2.0.7.jar bundle apache2 11010 +org.wso2.carbon.device.mgt.common_2.0.7.jar bundle apache2 11009 +org.wso2.carbon.device.mgt.core_2.0.7.jar bundle apache2 11008 +org.wso2.carbon.device.mgt.extensions.device.type.deployer_2.0.7.jar bundle apache2 11007 +org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt_2.0.7.jar bundle apache2 11006 +org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp_2.0.7.jar bundle apache2 11005 +org.wso2.carbon.device.mgt.extensions_2.0.7.jar bundle apache2 11004 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.6.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.6.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.6.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.6.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.oauth.extensions_2.0.7.jar bundle apache2 10999 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.6.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.6.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.6.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.url.printer_2.0.7.jar bundle apache2 10995 +org.wso2.carbon.directory.server.manager.common_5.7.5.jar bundle apache2 10770 +org.wso2.carbon.directory.server.manager.stub_5.7.5.jar bundle apache2 10769 +org.wso2.carbon.directory.server.manager.ui_5.7.5.jar bundle apache2 10768 +org.wso2.carbon.directory.server.manager_5.7.5.jar bundle apache2 10767 +org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 +org.wso2.carbon.dynamic.client.registration_2.0.7.jar bundle apache2 10994 +org.wso2.carbon.dynamic.client.web.app.registration_2.0.7.jar bundle apache2 10993 +org.wso2.carbon.email.sender.core_2.0.7.jar bundle apache2 10992 +org.wso2.carbon.email.verification.stub_4.5.4.jar bundle apache2 8678 +org.wso2.carbon.email.verification.ui_4.5.4.jar bundle apache2 8677 +org.wso2.carbon.email.verification_4.5.4.jar bundle apache2 8676 +org.wso2.carbon.endpoint.stub_4.6.9.jar bundle apache2 10991 +org.wso2.carbon.endpoint_4.6.9.jar bundle apache2 10899 +org.wso2.carbon.event.admin_4.5.4.jar bundle apache2 8444 +org.wso2.carbon.event.application.deployer_5.1.5.jar bundle apache2 10990 +org.wso2.carbon.event.client.stub_4.5.4.jar bundle apache2 8442 +org.wso2.carbon.event.client_4.5.4.jar bundle apache2 8441 +org.wso2.carbon.event.common_4.5.4.jar bundle apache2 8440 +org.wso2.carbon.event.core_4.5.4.jar bundle apache2 8439 +org.wso2.carbon.event.input.adapter.core_5.1.5.jar bundle apache2 10989 +org.wso2.carbon.event.output.adapter.core_5.1.5.jar bundle apache2 10988 +org.wso2.carbon.event.processor.stub_2.1.6.jar bundle apache2 10648 +org.wso2.carbon.event.stream.admin_5.1.5.jar bundle apache2 10987 +org.wso2.carbon.event.stream.core_5.1.5.jar bundle apache2 10986 +org.wso2.carbon.event.stream.persistence.stub_5.1.5.jar bundle apache2 10985 +org.wso2.carbon.event.stream.stub_5.1.5.jar bundle apache2 10984 +org.wso2.carbon.event.stream.ui_5.1.5.jar bundle apache2 10983 +org.wso2.carbon.event.template.manager.stub_5.1.7.jar bundle apache2 10625 +org.wso2.carbon.event.ws_4.5.4.jar bundle apache2 8417 +org.wso2.carbon.feature.mgt.core_4.4.11.jar bundle apache2 10375 +org.wso2.carbon.feature.mgt.services_4.4.11.jar bundle apache2 10374 +org.wso2.carbon.feature.mgt.stub_4.4.11.jar bundle apache2 10373 +org.wso2.carbon.feature.mgt.ui_4.4.11.jar bundle apache2 10372 +org.wso2.carbon.forum_6.1.35.jar bundle apache2 10982 +org.wso2.carbon.framework.exporter_4.4.11.jar bundle apache2 10371 +org.wso2.carbon.ganalytics.publisher_4.5.4.jar bundle apache2 8630 +org.wso2.carbon.governance.api_4.7.0.jar bundle apache2 9505 +org.wso2.carbon.governance.client_4.7.0.jar bundle apache2 9504 +org.wso2.carbon.governance.common_4.7.0.jar bundle apache2 9503 +org.wso2.carbon.governance.custom.lifecycles.checklist.stub_4.7.0.jar bundle apache2 9502 +org.wso2.carbon.governance.custom.lifecycles.checklist.ui_4.7.0.jar bundle apache2 9501 +org.wso2.carbon.governance.custom.lifecycles.checklist_4.7.0.jar bundle apache2 9500 +org.wso2.carbon.governance.custom.lifecycles.history.ui_4.7.0.jar bundle apache2 9499 +org.wso2.carbon.governance.generic.stub_4.7.0.jar bundle apache2 9498 +org.wso2.carbon.governance.generic.ui_4.7.0.jar bundle apache2 9497 +org.wso2.carbon.governance.generic_4.7.0.jar bundle apache2 9496 +org.wso2.carbon.governance.lcm.stub_4.7.0.jar bundle apache2 9495 +org.wso2.carbon.governance.lcm.ui_4.7.0.jar bundle apache2 9494 +org.wso2.carbon.governance.lcm_4.7.0.jar bundle apache2 9493 +org.wso2.carbon.governance.list_4.7.0.jar bundle apache2 9492 +org.wso2.carbon.governance.registry.eventing_4.7.0.jar bundle apache2 9491 +org.wso2.carbon.governance.registry.extensions_4.7.0.jar bundle apache2 9490 +org.wso2.carbon.governance.wsdltool.stub_4.7.0.jar bundle apache2 9486 +org.wso2.carbon.governance.wsdltool.ui_4.7.0.jar bundle apache2 9485 +org.wso2.carbon.governance.wsdltool_4.7.0.jar bundle apache2 9484 +org.wso2.carbon.hostobjects.sso_4.5.4.jar bundle apache2 10161 +org.wso2.carbon.hostobjects.sso_6.1.35.jar bundle apache2 10981 +org.wso2.carbon.i18n_4.4.11.jar bundle apache2 10370 +org.wso2.carbon.identity.application.authentication.endpoint.util_5.7.5.jar bundle apache2 10766 +org.wso2.carbon.identity.application.authentication.framework_5.7.5.jar bundle apache2 10765 +org.wso2.carbon.identity.application.authenticator.basicauth_5.2.4.jar bundle apache2 10980 +org.wso2.carbon.identity.application.authenticator.requestpath.oauth_5.1.1.jar bundle apache2 8394 +org.wso2.carbon.identity.application.authenticator.samlsso_5.1.4.jar bundle apache2 10979 +org.wso2.carbon.identity.application.common_5.7.5.jar bundle apache2 10764 +org.wso2.carbon.identity.application.mgt.stub_5.7.5.jar bundle apache2 10763 +org.wso2.carbon.identity.application.mgt.ui_5.7.5.jar bundle apache2 10762 +org.wso2.carbon.identity.application.mgt_5.7.5.jar bundle apache2 10761 +org.wso2.carbon.identity.authentication_4.5.4.jar bundle apache2 8609 +org.wso2.carbon.identity.authenticator.backend.oauth_2.0.7.jar bundle apache2 10978 +org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.6.jar bundle apache2 10977 +org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.1.6.jar bundle apache2 10976 +org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.1.6.jar bundle apache2 10975 +org.wso2.carbon.identity.authenticator.saml2.sso_5.1.6.jar bundle apache2 10974 +org.wso2.carbon.identity.authenticator.thrift_5.7.5.jar bundle apache2 10760 +org.wso2.carbon.identity.base_5.6.89.jar bundle apache2 10973 +org.wso2.carbon.identity.base_5.7.5.jar bundle apache2 10759 +org.wso2.carbon.identity.claim.metadata.mgt.stub_5.7.5.jar bundle apache2 10758 +org.wso2.carbon.identity.claim.metadata.mgt.ui_5.7.5.jar bundle apache2 10757 +org.wso2.carbon.identity.claim.metadata.mgt_5.7.5.jar bundle apache2 10756 +org.wso2.carbon.identity.core.ui_5.7.5.jar bundle apache2 10755 +org.wso2.carbon.identity.core_5.7.5.jar bundle apache2 10754 +org.wso2.carbon.identity.discovery_5.3.4.jar bundle apache2 10946 +org.wso2.carbon.identity.entitlement.common_5.7.5.jar bundle apache2 10752 +org.wso2.carbon.identity.entitlement.proxy_5.1.3.jar bundle apache2 10972 +org.wso2.carbon.identity.entitlement.stub_5.6.89.jar bundle apache2 10971 +org.wso2.carbon.identity.entitlement_5.7.5.jar bundle apache2 10749 +org.wso2.carbon.identity.governance.stub_5.7.5.jar bundle apache2 10747 +org.wso2.carbon.identity.inbound.metadata.saml2_0.1.1.jar bundle apache2 10970 +org.wso2.carbon.identity.jwt.client.extension_2.0.7.jar bundle apache2 10969 +org.wso2.carbon.identity.notification.mgt_5.7.5.jar bundle apache2 10742 +org.wso2.carbon.identity.oauth.common_5.3.4.jar bundle apache2 10944 +org.wso2.carbon.identity.oauth.dcr_5.3.4.jar bundle apache2 10943 +org.wso2.carbon.identity.oauth.stub_5.3.1.jar bundle apache2 10505 +org.wso2.carbon.identity.oauth.stub_5.3.4.jar bundle apache2 10942 +org.wso2.carbon.identity.oauth.ui_5.3.4.jar bundle apache2 10941 +org.wso2.carbon.identity.oauth2.grant.jwt_1.0.2.jar bundle apache2 8152 +org.wso2.carbon.identity.oauth_5.3.4.jar bundle apache2 10940 +org.wso2.carbon.identity.oidc.dcr_5.3.4.jar bundle apache2 10939 +org.wso2.carbon.identity.oidc.session_5.3.4.jar bundle apache2 10938 +org.wso2.carbon.identity.provider_5.1.1.jar bundle apache2 8360 +org.wso2.carbon.identity.query.saml_5.3.0.jar bundle apache2 10496 +org.wso2.carbon.identity.sp.metadata.saml2_0.1.6.jar bundle apache2 10968 +org.wso2.carbon.identity.sp.metadata.saml2_1.0.0.jar bundle apache2 10491 +org.wso2.carbon.identity.sso.agent_5.1.0.jar bundle apache2 8353 +org.wso2.carbon.identity.sso.saml.stub_5.1.3.jar bundle apache2 10490 +org.wso2.carbon.identity.sso.saml.stub_5.3.0.jar bundle apache2 10489 +org.wso2.carbon.identity.sso.saml.ui_5.3.0.jar bundle apache2 10488 +org.wso2.carbon.identity.sso.saml_5.3.0.jar bundle apache2 10487 +org.wso2.carbon.identity.user.profile.stub_5.7.5.jar bundle apache2 10732 +org.wso2.carbon.identity.user.profile.ui_5.7.5.jar bundle apache2 10731 +org.wso2.carbon.identity.user.profile_5.7.5.jar bundle apache2 10730 +org.wso2.carbon.identity.user.registration.stub_5.6.89.jar bundle apache2 10967 +org.wso2.carbon.identity.user.registration.stub_5.7.5.jar bundle apache2 10729 +org.wso2.carbon.identity.user.registration_5.7.5.jar bundle apache2 10728 +org.wso2.carbon.identity.user.store.configuration.deployer_5.7.5.jar bundle apache2 10727 +org.wso2.carbon.identity.user.store.configuration.stub_5.7.5.jar bundle apache2 10726 +org.wso2.carbon.identity.user.store.configuration.ui_5.7.5.jar bundle apache2 10725 +org.wso2.carbon.identity.user.store.configuration_5.7.5.jar bundle apache2 10724 +org.wso2.carbon.identity.user.store.count.stub_5.7.5.jar bundle apache2 10723 +org.wso2.carbon.identity.user.store.count_5.7.5.jar bundle apache2 10722 +org.wso2.carbon.identity.webfinger_5.3.4.jar bundle apache2 10932 +org.wso2.carbon.idp.mgt.stub_5.7.5.jar bundle apache2 10713 +org.wso2.carbon.idp.mgt.ui_5.7.5.jar bundle apache2 10712 +org.wso2.carbon.idp.mgt_5.7.5.jar bundle apache2 10711 +org.wso2.carbon.inbound.endpoint.osgi_4.6.9.jar bundle apache2 10893 +org.wso2.carbon.inbound.endpoint.persistence_4.6.9.jar bundle apache2 10892 +org.wso2.carbon.inbound.endpoint_4.6.9.jar bundle apache2 10891 +org.wso2.carbon.inbound.stub_4.6.9.jar bundle apache2 10966 +org.wso2.carbon.inbound_4.6.9.jar bundle apache2 10890 +org.wso2.carbon.localentry.stub_4.6.9.jar bundle apache2 10965 +org.wso2.carbon.localentry_4.6.9.jar bundle apache2 10889 +org.wso2.carbon.logging-4.4.11.jar bundle apache2 10339 +org.wso2.carbon.logging.admin.stub_4.5.4.jar bundle apache2 8313 +org.wso2.carbon.logging.admin.ui_4.5.4.jar bundle apache2 8312 +org.wso2.carbon.logging.service_4.5.4.jar bundle apache2 8311 +org.wso2.carbon.logging.view.stub_4.5.4.jar bundle apache2 8310 +org.wso2.carbon.logging.view.ui_4.5.4.jar bundle apache2 8309 +org.wso2.carbon.logging_4.4.11.jar bundle apache2 10369 +org.wso2.carbon.mashup.javascript.hostobjects.registry_4.7.0.jar bundle apache2 9483 +org.wso2.carbon.mashup.utils_4.2.0.jar bundle apache2 2216 +org.wso2.carbon.mediation.artifactuploader.stub_4.6.9.jar bundle apache2 10964 +org.wso2.carbon.mediation.artifactuploader_4.6.9.jar bundle apache2 10888 +org.wso2.carbon.mediation.configadmin.stub_4.6.9.jar bundle apache2 10887 +org.wso2.carbon.mediation.configadmin.ui_4.6.9.jar bundle apache2 10886 +org.wso2.carbon.mediation.configadmin_4.6.9.jar bundle apache2 10885 +org.wso2.carbon.mediation.dependency.mgt_4.6.9.jar bundle apache2 10884 +org.wso2.carbon.mediation.initializer.ui_4.6.9.jar bundle apache2 10883 +org.wso2.carbon.mediation.initializer_4.6.9.jar bundle apache2 10882 +org.wso2.carbon.mediation.library.stub_4.6.9.jar bundle apache2 10963 +org.wso2.carbon.mediation.library_4.6.9.jar bundle apache2 10881 +org.wso2.carbon.mediation.message.processor_4.6.9.jar bundle apache2 10880 +org.wso2.carbon.mediation.ntaskadmin_4.6.9.jar bundle apache2 10878 +org.wso2.carbon.mediation.ntask_4.6.9.jar bundle apache2 10879 +org.wso2.carbon.mediation.registry_4.6.9.jar bundle apache2 10877 +org.wso2.carbon.mediation.security.stub_4.6.1.jar bundle apache2 8589 +org.wso2.carbon.mediation.security.stub_4.6.9.jar bundle apache2 10876 +org.wso2.carbon.mediation.security_4.6.9.jar bundle apache2 10875 +org.wso2.carbon.mediation.startup_4.6.9.jar bundle apache2 10874 +org.wso2.carbon.mediation.templates.common_4.6.9.jar bundle apache2 10873 +org.wso2.carbon.mediation.templates.service_4.6.9.jar bundle apache2 10872 +org.wso2.carbon.mediation.templates.stub_4.6.9.jar bundle apache2 10962 +org.wso2.carbon.mediation.templates_4.6.9.jar bundle apache2 10871 +org.wso2.carbon.mediation.transport.handlers_4.6.9.jar bundle apache2 10870 +org.wso2.carbon.mediator.cache.ui_4.6.9.jar bundle apache2 10961 +org.wso2.carbon.mediator.cache_4.6.9.jar bundle apache2 10869 +org.wso2.carbon.mediator.clazz.services_4.6.9.jar bundle apache2 10868 +org.wso2.carbon.mediator.command.services_4.6.9.jar bundle apache2 10867 +org.wso2.carbon.mediator.event_4.6.9.jar bundle apache2 10866 +org.wso2.carbon.mediator.fastXSLT_4.6.9.jar bundle apache2 10865 +org.wso2.carbon.mediator.router.impl_4.6.9.jar bundle apache2 10862 +org.wso2.carbon.mediator.service_4.6.9.jar bundle apache2 10861 +org.wso2.carbon.message.processor.stub_4.6.9.jar bundle apache2 10960 +org.wso2.carbon.message.processor_4.6.9.jar bundle apache2 10860 +org.wso2.carbon.message.store.stub_4.6.9.jar bundle apache2 10959 +org.wso2.carbon.message.store_4.6.9.jar bundle apache2 10859 +org.wso2.carbon.messageflows.stub_4.5.4.jar bundle apache2 8574 +org.wso2.carbon.messageflows.ui_4.5.4.jar bundle apache2 8573 +org.wso2.carbon.messageflows_4.5.4.jar bundle apache2 8572 +org.wso2.carbon.metrics.common_1.2.2.jar bundle apache2 8818 +org.wso2.carbon.metrics.das.reporter_1.2.2.jar bundle apache2 8817 +org.wso2.carbon.metrics.data.common_1.2.2.jar bundle apache2 8816 +org.wso2.carbon.metrics.data.service.stub_1.2.2.jar bundle apache2 8815 +org.wso2.carbon.metrics.data.service_1.2.2.jar bundle apache2 8814 +org.wso2.carbon.metrics.impl_1.2.2.jar bundle apache2 8813 +org.wso2.carbon.metrics.jdbc.reporter_1.2.2.jar bundle apache2 8812 +org.wso2.carbon.metrics.manager_1.2.2.jar bundle apache2 8811 +org.wso2.carbon.metrics.view.ui_1.2.2.jar bundle apache2 8810 +org.wso2.carbon.module.mgt.stub_4.7.2.jar bundle apache2 10282 +org.wso2.carbon.module.mgt.ui_4.7.2.jar bundle apache2 10281 +org.wso2.carbon.module.mgt_4.7.2.jar bundle apache2 10280 +org.wso2.carbon.ndatasource.capp.deployer_4.5.4.jar bundle apache2 8772 +org.wso2.carbon.ndatasource.common_4.4.11.jar bundle apache2 10368 +org.wso2.carbon.ndatasource.core_4.4.11.jar bundle apache2 10367 +org.wso2.carbon.ndatasource.datasources_4.5.4.jar bundle apache2 8571 +org.wso2.carbon.ndatasource.rdbms_4.4.11.jar bundle apache2 10366 +org.wso2.carbon.ndatasource.stub_4.5.4.jar bundle apache2 8570 +org.wso2.carbon.ndatasource.ui_4.5.4.jar bundle apache2 8569 +org.wso2.carbon.ntask.common_4.5.4.jar bundle apache2 8568 +org.wso2.carbon.ntask.core_4.5.4.jar bundle apache2 8567 +org.wso2.carbon.ntask.solutions_4.5.4.jar bundle apache2 8566 +org.wso2.carbon.operation.mgt_4.7.2.jar bundle apache2 10279 +org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 +org.wso2.carbon.policy.decision.point_2.0.7.jar bundle apache2 10958 +org.wso2.carbon.policy.information.point_2.0.7.jar bundle apache2 10957 +org.wso2.carbon.policy.mgt.common_2.0.7.jar bundle apache2 10956 +org.wso2.carbon.policy.mgt.core_2.0.7.jar bundle apache2 10955 +org.wso2.carbon.priority.executors.stub_4.6.9.jar bundle apache2 10954 +org.wso2.carbon.priority.executors_4.6.9.jar bundle apache2 10858 +org.wso2.carbon.proxyadmin.common_4.6.9.jar bundle apache2 10857 +org.wso2.carbon.proxyadmin.stub_4.6.9.jar bundle apache2 10953 +org.wso2.carbon.proxyadmin_4.6.9.jar bundle apache2 10856 +org.wso2.carbon.qpid.stub_4.5.4.jar bundle apache2 8298 +org.wso2.carbon.queuing_4.4.11.jar bundle apache2 10364 +org.wso2.carbon.registry.admin.api_4.6.0.jar bundle apache2 8904 +org.wso2.carbon.registry.api_4.4.11.jar bundle apache2 10363 +org.wso2.carbon.registry.common.ui_4.6.0.jar bundle apache2 8903 +org.wso2.carbon.registry.common_4.6.0.jar bundle apache2 8902 +org.wso2.carbon.registry.core_4.4.11.jar bundle apache2 10362 +org.wso2.carbon.registry.event.core_4.6.0.jar bundle apache2 8901 +org.wso2.carbon.registry.event.ws_4.6.0.jar bundle apache2 8900 +org.wso2.carbon.registry.eventing_4.6.0.jar bundle apache2 8899 +org.wso2.carbon.registry.extensions.stub_4.6.0.jar bundle apache2 8898 +org.wso2.carbon.registry.extensions.ui_4.6.0.jar bundle apache2 8897 +org.wso2.carbon.registry.extensions_4.6.0.jar bundle apache2 8896 +org.wso2.carbon.registry.indexing_4.6.0.jar bundle apache2 8895 +org.wso2.carbon.registry.info.stub_4.6.0.jar bundle apache2 8894 +org.wso2.carbon.registry.info.ui_4.6.0.jar bundle apache2 8893 +org.wso2.carbon.registry.info_4.6.0.jar bundle apache2 8892 +org.wso2.carbon.registry.properties.stub_4.6.0.jar bundle apache2 8891 +org.wso2.carbon.registry.properties.ui_4.6.0.jar bundle apache2 8890 +org.wso2.carbon.registry.properties_4.6.0.jar bundle apache2 8889 +org.wso2.carbon.registry.relations.stub_4.6.0.jar bundle apache2 8888 +org.wso2.carbon.registry.relations.ui_4.6.0.jar bundle apache2 8887 +org.wso2.carbon.registry.relations_4.6.0.jar bundle apache2 8886 +org.wso2.carbon.registry.resource.stub_4.6.0.jar bundle apache2 8885 +org.wso2.carbon.registry.resource.ui_4.6.0.jar bundle apache2 8884 +org.wso2.carbon.registry.resource_4.6.0.jar bundle apache2 8883 +org.wso2.carbon.registry.search.stub_4.6.0.jar bundle apache2 8882 +org.wso2.carbon.registry.search.ui_4.6.0.jar bundle apache2 8881 +org.wso2.carbon.registry.search_4.6.0.jar bundle apache2 8880 +org.wso2.carbon.registry.server_4.4.11.jar bundle apache2 10361 +org.wso2.carbon.registry.servlet_4.6.0.jar bundle apache2 8879 +org.wso2.carbon.registry.task_4.6.0.jar bundle apache2 8878 +org.wso2.carbon.registry.ws.api_4.6.0.jar bundle apache2 8877 +org.wso2.carbon.registry.ws.client_4.6.0.jar bundle apache2 8876 +org.wso2.carbon.registry.ws.stub_4.6.0.jar bundle apache2 8875 +org.wso2.carbon.relay.mediators.builder_4.6.9.jar bundle apache2 10855 +org.wso2.carbon.relay.module_4.6.9.jar bundle apache2 10854 +org.wso2.carbon.relay_4.6.9.jar bundle apache2 10853 +org.wso2.carbon.remote-tasks.stub_4.5.4.jar bundle apache2 8529 +org.wso2.carbon.rest.api.stub_4.6.9.jar bundle apache2 10852 +org.wso2.carbon.rest.api_4.6.9.jar bundle apache2 10851 +org.wso2.carbon.roles.mgt.stub_4.4.11.jar bundle apache2 10360 +org.wso2.carbon.roles.mgt.ui_4.4.11.jar bundle apache2 10359 +org.wso2.carbon.roles.mgt_4.4.11.jar bundle apache2 10358 +org.wso2.carbon.securevault_4.4.11.jar bundle apache2 10357 +org.wso2.carbon.security.mgt.stub_5.7.5.jar bundle apache2 10708 +org.wso2.carbon.security.mgt.ui_5.7.5.jar bundle apache2 10707 +org.wso2.carbon.security.mgt_5.7.5.jar bundle apache2 10706 +org.wso2.carbon.sequences.common_4.6.9.jar bundle apache2 10850 +org.wso2.carbon.sequences.stub_4.6.0.jar bundle apache2 10102 +org.wso2.carbon.sequences.stub_4.6.9.jar bundle apache2 10849 +org.wso2.carbon.sequences_4.6.9.jar bundle apache2 10848 +org.wso2.carbon.server-4.4.11.jar bundle apache2 10338 +org.wso2.carbon.server.admin.common_4.4.11.jar bundle apache2 10356 +org.wso2.carbon.server.admin.stub_4.4.11.jar bundle apache2 10355 +org.wso2.carbon.server.admin.ui_4.4.11.jar bundle apache2 10354 +org.wso2.carbon.server.admin_4.4.11.jar bundle apache2 10353 +org.wso2.carbon.service.mgt_4.7.2.jar bundle apache2 10245 +org.wso2.carbon.social.core_1.4.4.jar bundle apache2 10098 +org.wso2.carbon.social.db.adapter_1.4.4.jar bundle apache2 10097 +org.wso2.carbon.social.sql_1.4.4.jar bundle apache2 10096 +org.wso2.carbon.statistics.stub_4.5.4.jar bundle apache2 8264 +org.wso2.carbon.statistics.ui_4.5.4.jar bundle apache2 8263 +org.wso2.carbon.statistics_4.5.4.jar bundle apache2 8262 +org.wso2.carbon.store.jaggery-scxml-executors_1.4.4.jar bundle apache2 10095 +org.wso2.carbon.task.services_4.6.9.jar bundle apache2 10847 +org.wso2.carbon.task.stub_4.6.9.jar bundle apache2 10952 +org.wso2.carbon.task_4.6.9.jar bundle apache2 10846 +org.wso2.carbon.tenant.common.stub_4.5.4.jar bundle apache2 8258 +org.wso2.carbon.tenant.common_4.5.4.jar bundle apache2 8257 +org.wso2.carbon.tenant.deployment_4.6.1.jar bundle apache2 10243 +org.wso2.carbon.tenant.dispatcher_4.6.1.jar bundle apache2 10242 +org.wso2.carbon.tenant.keystore.mgt_4.6.1.jar bundle apache2 10241 +org.wso2.carbon.tenant.mgt.core_4.6.1.jar bundle apache2 10240 +org.wso2.carbon.tenant.mgt.stub_4.6.1.jar bundle apache2 10239 +org.wso2.carbon.tenant.mgt.ui_4.6.1.jar bundle apache2 10238 +org.wso2.carbon.tenant.mgt_4.6.1.jar bundle apache2 10237 +org.wso2.carbon.tenant.redirector.servlet.stub_4.6.1.jar bundle apache2 10236 +org.wso2.carbon.tenant.redirector.servlet.ui_4.6.1.jar bundle apache2 10235 +org.wso2.carbon.tenant.redirector.servlet_4.6.1.jar bundle apache2 10234 +org.wso2.carbon.tenant.sso.redirector.ui_4.6.1.jar bundle apache2 10233 +org.wso2.carbon.tenant.theme.mgt_4.6.1.jar bundle apache2 10232 +org.wso2.carbon.tenant.throttling.agent_4.6.1.jar bundle apache2 10231 +org.wso2.carbon.tenant.usage.agent_4.6.1.jar bundle apache2 10230 +org.wso2.carbon.throttling.agent.stub_4.5.4.jar bundle apache2 8505 +org.wso2.carbon.tomcat.ext_4.4.11.jar bundle apache2 10351 +org.wso2.carbon.tomcat.patch_4.7.2.jar bundle apache2 10229 +org.wso2.carbon.tomcat_4.4.11.jar bundle apache2 10350 +org.wso2.carbon.ui.menu.general_4.4.11.jar bundle apache2 10349 +org.wso2.carbon.ui.menu.governance_4.4.7.jar bundle apache2 8504 +org.wso2.carbon.ui.menu.registry_4.4.7.jar bundle apache2 8503 +org.wso2.carbon.ui_4.4.11.jar bundle apache2 10348 +org.wso2.carbon.um.ws.api.stub_5.1.4.jar bundle apache2 10421 +org.wso2.carbon.um.ws.api_5.1.4.jar bundle apache2 10420 +org.wso2.carbon.um.ws.service_5.1.4.jar bundle apache2 10419 +org.wso2.carbon.user.api_4.4.11.jar bundle apache2 10347 +org.wso2.carbon.user.core_4.4.11.jar bundle apache2 10346 +org.wso2.carbon.user.mgt.common_5.7.5.jar bundle apache2 10705 +org.wso2.carbon.user.mgt.stub_5.7.5.jar bundle apache2 10704 +org.wso2.carbon.user.mgt.ui_5.7.5.jar bundle apache2 10703 +org.wso2.carbon.user.mgt.workflow.stub_5.7.5.jar bundle apache2 10702 +org.wso2.carbon.user.mgt_5.7.5.jar bundle apache2 10701 +org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 +org.wso2.carbon.webapp.authenticator.framework_2.0.7.jar bundle apache2 10951 +org.wso2.carbon.webapp.deployer_4.7.2.jar bundle apache2 10227 +org.wso2.carbon.webapp.list.ui_4.7.2.jar bundle apache2 10226 +org.wso2.carbon.webapp.mgt.stub_4.2.0.jar bundle apache2 2083 +org.wso2.carbon.webapp.mgt.stub_4.7.2.jar bundle apache2 10225 +org.wso2.carbon.webapp.mgt.ui_4.7.2.jar bundle apache2 10224 +org.wso2.carbon.webapp.mgt_4.7.2.jar bundle apache2 10223 +org.wso2.ciphertool-1.0.0-wso2v3.jar bundle apache2 4038 +org.wso2.iot.core.admin.styles_3.0.0.RC.jar bundle apache2 10950 +org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 +org.wso2.store.admin.styles_1.4.4.jar bundle apache2 10090 +org.wso2.store.sso.common_1.4.4.jar bundle apache2 10089 +org.yaml.snakeyaml_1.17.0.jar bundle apache2 2027 +patch.jar jarinbundle epl1 1137 +pdepublishing-ant.jar jar epl1 524 +pdepublishing.jar jar epl1 525 +pdfbox_1.8.10.wso2v2.jar bundle apache2 6514 +perf4j_0.9.12.wso2v1.jar bundle apache2 832 +poi-ooxml_3.14.0.wso2v1.jar bundle apache2 8218 +poi-scratchpad_3.14.0.wso2v1.jar bundle apache2 8217 +poi_3.14.0.wso2v1.jar bundle apache2 8216 +quartz_2.1.1.wso2v1.jar bundle apache2 975 +rampart-core_1.6.1.wso2v24.jar bundle apache2 10409 +rampart-policy_1.6.1.wso2v24.jar bundle apache2 10408 +rampart-trust_1.6.1.wso2v24.jar bundle apache2 10407 +rome_0.9.0.wso2v1.jar bundle apache2 930 +saxon.bps_9.0.0.x-wso2v1.jar bundle mpl11 985 +saxon_8.9.0.wso2v2.jar bundle mpl10 2091 +scannotation_1.0.3.wso2v1.jar bundle apache2 7869 +slf4j.api_1.6.1.jar bundle mit 354 +slf4j.api_1.7.13.jar bundle mit 1606 +slf4j.api_1.7.21.jar bundle mit 1852 +slf4j.log4j12_1.6.1.jar bundle mit 346 +slf4j.log4j12_1.7.13.jar bundle mit 1605 +slf4j.log4j12_1.7.21.jar bundle mit 1851 +slf4j_1.5.10.wso2v1.jar bundle mit 1429 +smackx_3.0.4.wso2v1.jar bundle apache2 1871 +smack_3.0.4.wso2v1.jar bundle apache2 1493 +snakeyaml_1.16.0.wso2v1.jar bundle apache2 6274 +solr_5.2.1.wso2v1.jar bundle apache2 4384 +spatial4j_0.4.1.wso2v1.jar bundle apache2 4045 +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.2.9.wso2v1.jar bundle apache2 4044 +stax2-api-3.1.4.jar bundle bsd 1089 +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 +svn-client-adapter_1.10.9.wso2v1.jar bundle apache2 4043 +swagger-codegen_2.2.0.wso2v2.jar bundle apache2 10843 +synapse-commons_2.1.7.wso2v9.jar bundle apache2 10842 +synapse-core_2.1.7.wso2v9.jar bundle apache2 10841 +synapse-extensions_2.1.7.wso2v9.jar bundle apache2 10840 +synapse-nhttp-transport_2.1.7.wso2v9.jar bundle apache2 10839 +synapse-samples_2.1.7.wso2v9.jar bundle apache2 10838 +synapse-tasks_2.1.7.wso2v9.jar bundle apache2 10837 +tcpmon-1.0.jar jar bsd 255 +tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 +tomcat-annotations-api-7.0.73.jar jar apache2 2044 +tomcat-catalina-ha_7.0.73.wso2v1.jar bundle apache2 10344 +tomcat-el-api_7.0.73.wso2v1.jar bundle apache2 10343 +tomcat-jsp-api_7.0.73.wso2v1.jar bundle apache2 10342 +tomcat-juli-7.0.73.jar jar apache2 2043 +tomcat-servlet-api_7.0.73.wso2v1.jar bundle apache2 10341 +tomcat_7.0.73.wso2v1.jar bundle apache2 10340 +uddi4j-1.0.1.jar jarinbundle ibmpl 406 +velocity-1.7.jar bundle apache2 509 +velocity_1.7.0.wso2v1.jar bundle apache2 10082 +wadl-core_1.1.6.wso2v1.jar bundle apache2 8492 +waffle-jna_1.6.0.wso2v5.jar bundle epl1 8207 +woden_1.0.0.M9-wso2v1.jar bundle apache2 3755 +woodstox-core-asl-4.4.1.jar bundle apache2 1087 +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.5.jar bundle apache2 1073 +wss4j_1.5.11.wso2v16.jar bundle apache2 10406 +xalan-2.7.2.wso2v2.jar bundle apache2 8202 +xercesImpl-2.8.1.wso2v2.jar bundle apache2 663 +xml-apis-1.4.01.jar jar apache2 1793 +xml-resolver-1.2.jar jar apache2 278 +xmlbeans-2.3.0.jar jarinbundle apache2 344 +xmlschema-core-2.1.0.jar bundle apache2 1145 +XmlSchema_1.4.7.wso2v3.jar bundle apache2 3585 +xmlsec-1.5.8.jar bundle apache2 1144 @@ -881,8 +765,6 @@ 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 -bsd3 BSD-3 - http://opensource.org/licenses/BSD-3-Clause bouncy Bouncy Castle License http://www.bouncycastle.org/licence.html bsd Berkeley License @@ -902,5 +784,4 @@ epl1+lgpl2 EPL1 + LGPL2 mpl11 Mozilla Public License 1.0 http://www.mozilla.org/MPL/MPL-1.1.html epl1 Eclipse Public License - http://www.eclipse.org/legal/epl-v10.html - + http://www.eclipse.org/legal/epl-v10.html \ No newline at end of file From 6661a8671b9e45063f054a0fdf6e612066e8d65b Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 09:58:13 +0530 Subject: [PATCH 28/47] Updated LICENSE.txt for message-broker --- .../src/main/resources/LICENSE.txt | 696 +++++++++--------- 1 file changed, 344 insertions(+), 352 deletions(-) diff --git a/modules/broker/distribution/src/main/resources/LICENSE.txt b/modules/broker/distribution/src/main/resources/LICENSE.txt index e7fea711..33021305 100644 --- a/modules/broker/distribution/src/main/resources/LICENSE.txt +++ b/modules/broker/distribution/src/main/resources/LICENSE.txt @@ -15,358 +15,350 @@ Name --------------------------------------------------------------------------------------------------------- abdera_1.0.0.wso2v3.jar bundle apache2 907 activation-1.1.1.jar jarinbundle cddl1 552 -addressing-1.6.1-wso2v16.mar bundle apache2 6272 -ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 -andes-client-3.1.1.jar bundle apache2 1629 -andes_3.1.1.jar bundle apache2 1630 -annogen_0.1.0.wso2v1.jar bundle apache2 942 -ant-contrib-1.0b3.jar jar apache2 549 -antlr-runtime_3.2.0.wso2v1.jar bundle bsd 817 -antlr_3.2.0.wso2v1.jar bundle bsd 838 -ant_1.7.0.wso2v1.jar bundle apache2 1012 -apache-zookeeper_3.3.4.wso2v1.jar bundle apache2 4219 -authenticator_0.7.0.wso2v1.jar bundle apache2 700 -axiom_1.2.11.wso2v9.jar bundle apache2 5426 -axis2-json_1.6.1.wso2v16.jar bundle apache2 6270 -axis2-transport-jms_1.1.0.wso2v14.jar bundle apache2 5915 -axis2-transport-rabbitmq-amqp_1.1.0.wso2v14.jar bundle apache2 5914 -axis2_1.6.1.wso2v16.jar bundle apache2 6269 -backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 -bcprov-jdk15-132.jar jar apache2 285 -bcprov-jdk15on-1.49.jar jarinbundle bouncy 1069 -bcprov-jdk15on_1.49.0.wso2v2.jar bundle bouncy 3640 -com.google.gson_2.3.1.jar bundle apache2 1143 -com.google.gson_2.5.0.jar bundle bsd 1621 -com.google.guava_13.0.1.jar apache2 -com.google.guava_15.0.0.jar bundle apache2 792 -com.google.guava_19.0.0.jar bundle apache2 1627 -commons-beanutils-1.7.0.jar jarinbundle apache2 383 -commons-beanutils-1.8.0.jar jarinbundle apache2 292 -commons-beanutils_1.8.0.wso2v1.jar bundle apache2 688 -commons-cli_1.2.0.wso2v1.jar bundle apache2 922 -commons-codec_1.4.0.wso2v1.jar bundle apache2 980 -commons-collections_3.2.2.wso2v1.jar bundle apache2 6268 -commons-configuration_1.6.0.wso2v1.jar bundle apache2 933 -commons-dbcp_1.4.0.wso2v1.jar bundle apache2 962 -commons-digester-1.8.1.jar jarinbundle apache2 347 -commons-digester-1.8.jar jarinbundle apache2 384 -commons-digester_1.8.1.wso2v1.jar bundle apache2 857 -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-io_2.4.0.wso2v1.jar bundle apache2 4217 -commons-lang-2.6.0.wso2v1.jar bundle apache2 664 -commons-lang_2.6.0.wso2v1.jar bundle apache2 940 -commons-pool_1.5.6.wso2v1.jar bundle apache2 1009 -compass_2.0.1.wso2v2.jar bundle apache2 897 -disruptor_3.3.2.wso2v2.jar bundle apache2 4377 -dom4j-1.6.1.jar jarinbundle bsd 1177 -encoder_1.2.0.wso2v1.jar bundle apache2 4030 -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-jta_1.1_spec-1.1.jar jar apache2 1066 -geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 -h2-1.2.140-wso2v3.jar bundle epl1 -h2-database-engine_1.2.140.wso2v3.jar bundle epl1 697 -hazelcast_3.5.2.wso2v1.jar bundle apache2 5423 -hector-core_1.1.4.wso2v1.jar bundle apache2 2878 -high-scale-lib_1.0.0.wso2v1.jar bundle apache2 4216 -httpclient_4.3.1.wso2v2.jar bundle apache2 4214 -httpcore_4.3.3.wso2v1.jar bundle apache2 3638 -httpmime_4.3.1.wso2v2.jar bundle apache2 4375 -icu4j-3.8.jar jarinbundle icu 321 -io.dropwizard.metrics.core_3.1.2.jar bundle apache2 1305 -io.dropwizard.metrics.jvm_3.1.2.jar bundle apache2 1302 -javasysmon_0.3.3.wso2v1.jar bundle bsd 721 -javax.cache.wso2_4.4.3.jar bundle apache2 1583 -jaxb_2.2.5.wso2v1.jar bundle cddl1 883 -jdbc-pool_7.0.34.wso2v2.jar bundle apache2 3637 -jericho-html-2.4.jar jarinbundle epl1 363 -jettison_1.3.4.wso2v1.jar bundle apache2 2162 -jline-1.0.jar bundle bsd 805 -json_1.0.0.wso2v1.jar bundle apache2 2361 -json_2.0.0.wso2v1.jar bundle apache2 971 -jsr311-api-1.1.1.jar jarinbundle cddl1 553 -jstl_1.2.1.wso2v2.jar bundle cddl1 2204 -kaptcha_2.3.0.wso2v1.jar bundle apache2 854 -libthrift_0.7.0.wso2v2.jar bundle apache2 912 -libthrift_0.9.2.wso2v1.jar bundle apache2 5912 -localizer-1.0.jar jarinbundle apache2 551 -log4j-1.2.13.jar jar apache2 583 -lucene_5.2.1.wso2v1.jar bundle apache2 4502 -neethi_2.0.4.wso2v5.jar bundle apache2 6267 -netty-all_4.0.23.wso2v1.jar bundle apache2 4689 -noggit_0.6.0.wso2v1.jar bundle apache2 4211 -opencsv-1.8.jar jarinbundle apache2 368 -opencsv_1.8.0.wso2v1.jar bundle apache2 928 -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 -org.apache.commons.configuration_1.10.0.jar bundle apache2 1510 -org.apache.felix.gogo.command_0.10.0.v201209301215.jar bundle apache2 1134 -org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar bundle apache2 1133 -org.apache.felix.gogo.shell_0.10.0.v201212101605.jar bundle apache2 1132 -org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar bundle epl1 1131 -org.eclipse.core.expressions_3.4.500.v20130515-1343.jar bundle epl1 1130 -org.eclipse.core.jobs_3.5.300.v20130429-1813.jar bundle epl1 1129 -org.eclipse.core.runtime_3.9.0.v20130326-1255.jar bundle epl1 1128 -org.eclipse.ecf.filetransfer_5.0.0.v20130604-1622.jar bundle epl1 1127 -org.eclipse.ecf.identity_3.2.0.v20130604-1622.jar bundle epl1 1126 -org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 -org.eclipse.ecf.provider.filetransfer_3.2.0.v20130604-1622.jar bundle epl1 1125 -org.eclipse.ecf_3.2.0.v20130604-1622.jar bundle epl1 1124 -org.eclipse.equinox.app_1.3.100.v20130327-1442.jar bundle epl1 1123 -org.eclipse.equinox.common_3.6.200.v20130402-1505.jar bundle epl1 1122 -org.eclipse.equinox.concurrent_1.1.0.v20130327-1442.jar bundle epl1 1121 -org.eclipse.equinox.console_1.0.100.v20130429-0953.jar bundle epl1 1120 -org.eclipse.equinox.ds_1.4.101.v20130813-1853.jar bundle epl1 1119 -org.eclipse.equinox.frameworkadmin.equinox_1.0.500.v20130327-2119.jar bundle epl1 1118 -org.eclipse.equinox.frameworkadmin_2.0.100.v20130327-2119.jar bundle epl1 1117 -org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 -org.eclipse.equinox.http.servlet_1.1.400.v20130418-1354.jar bundle epl1 1116 -org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 -org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar bundle epl1 1115 -org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 -org.eclipse.equinox.p2.console_1.0.300.v20130327-2119.jar bundle epl1 1114 -org.eclipse.equinox.p2.core_2.3.0.v20130327-2119.jar bundle epl1 1113 -org.eclipse.equinox.p2.director.app_1.0.300.v20130819-1621.jar bundle epl1 1112 -org.eclipse.equinox.p2.directorywatcher_1.0.300.v20130327-2119.jar bundle epl1 1110 -org.eclipse.equinox.p2.director_2.3.0.v20130526-0335.jar bundle epl1 1111 -org.eclipse.equinox.p2.engine_2.3.0.v20130526-2122-wso2v1.jar bundle epl1 3873 -org.eclipse.equinox.p2.extensionlocation_1.2.100.v20130327-2119.jar bundle epl1 1109 -org.eclipse.equinox.p2.garbagecollector_1.0.200.v20130327-2119.jar bundle epl1 1108 -org.eclipse.equinox.p2.jarprocessor_1.0.300.v20130327-2119.jar bundle epl1 1107 -org.eclipse.equinox.p2.metadata.repository_1.2.100.v20130327-2119.jar bundle epl1 1106 -org.eclipse.equinox.p2.metadata_2.2.0.v20130523-1557.jar bundle epl1 1105 -org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 -org.eclipse.equinox.p2.repository.tools_2.1.0.v20130327-2119.jar bundle epl1 1104 -org.eclipse.equinox.p2.repository_2.3.0.v20130412-2032.jar bundle epl1 1103 -org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 -org.eclipse.equinox.p2.touchpoint.natives_1.1.100.v20130327-2119.jar bundle epl1 1102 -org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 -org.eclipse.equinox.p2.updatechecker_1.1.200.v20130327-2119.jar bundle epl1 1101 -org.eclipse.equinox.p2.updatesite_1.0.400.v20130515-2028.jar bundle epl1 1100 -org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar bundle epl1 1099 -org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar bundle epl1 1098 -org.eclipse.equinox.security_1.2.0.v20130424-1801.jar bundle epl1 1097 -org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20130327-2119.jar bundle epl1 1096 -org.eclipse.equinox.simpleconfigurator_1.0.400.v20130327-2119.jar bundle epl1 1095 -org.eclipse.equinox.util_1.0.500.v20130404-1337.jar bundle epl1 1094 -org.eclipse.jdt.core.compiler.batch_3.10.2.v20150120-1634.jar bundle epl1 1141 -org.eclipse.osgi.services_3.3.100.v20130513-1956.jar bundle epl1 1093 -org.eclipse.osgi_3.9.1.v20130814-1242.jar bundle epl1 1092 -org.restlet_2.3.0.wso2v1.jar bundle apache2 4501 -org.sat4j.core_2.3.5.v201308161310.jar bundle epl1+lgpl21091 -org.sat4j.pb_2.3.5.v201308161310.jar bundle epl1+lgpl21090 -org.wso2.carbon.addressing_4.4.3.jar bundle apache2 6699 -org.wso2.carbon.andes.admin_3.1.1.jar bundle apache2 7159 -org.wso2.carbon.andes.authentication_3.1.1.jar bundle apache2 7158 -org.wso2.carbon.andes.authorization_3.1.1.jar bundle apache2 7157 -org.wso2.carbon.andes.cluster.mgt.ui_3.1.1.jar bundle apache2 7156 -org.wso2.carbon.andes.cluster.mgt_3.1.1.jar bundle apache2 7155 -org.wso2.carbon.andes.commons_3.1.1.jar bundle apache2 7154 -org.wso2.carbon.andes.core_3.1.1.jar bundle apache2 7153 -org.wso2.carbon.andes.event.admin_3.1.1.jar bundle apache2 7152 -org.wso2.carbon.andes.event.core_3.1.1.jar bundle apache2 7151 -org.wso2.carbon.andes.event.stub_3.1.1.jar bundle apache2 7150 -org.wso2.carbon.andes.event.ui_3.1.1.jar bundle apache2 7149 -org.wso2.carbon.andes.mgt.stub_3.1.1.jar bundle apache2 7148 -org.wso2.carbon.andes.stub_3.1.1.jar bundle apache2 7147 -org.wso2.carbon.andes.ui_3.1.1.jar bundle apache2 7146 -org.wso2.carbon.andes_3.1.1.jar bundle apache2 7145 -org.wso2.carbon.application.deployer_4.4.3.jar bundle apache2 6677 -org.wso2.carbon.application.upload_4.4.8.jar bundle apache2 5829 -org.wso2.carbon.authenticator.proxy_4.4.3.jar bundle apache2 6675 -org.wso2.carbon.authenticator.stub_4.4.3.jar bundle apache2 6674 -org.wso2.carbon.base_4.4.3.jar bundle apache2 6671 -org.wso2.carbon.bootstrap-4.4.3.jar bundle apache2 6505 -org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 -org.wso2.carbon.cluster.mgt.core_4.4.3.jar bundle apache2 6667 -org.wso2.carbon.core.bootup.validator_4.4.3.jar bundle apache2 6665 -org.wso2.carbon.core.commons.stub_4.4.3.jar bundle apache2 6663 -org.wso2.carbon.core.common_4.4.3.jar bundle apache2 6664 -org.wso2.carbon.core.services_4.4.3.jar bundle apache2 6662 -org.wso2.carbon.core_4.4.3.jar bundle apache2 6661 -org.wso2.carbon.databridge.agent.thrift_4.4.8.jar bundle apache2 5896 -org.wso2.carbon.databridge.commons.thrift_4.4.8.jar bundle apache2 5895 -org.wso2.carbon.databridge.commons_4.4.8.jar bundle apache2 5894 -org.wso2.carbon.event.client_4.4.8.jar bundle apache2 5815 -org.wso2.carbon.feature.mgt.core_4.4.3.jar bundle apache2 6655 -org.wso2.carbon.feature.mgt.services_4.4.3.jar bundle apache2 6654 -org.wso2.carbon.feature.mgt.stub_4.4.3.jar bundle apache2 6653 -org.wso2.carbon.feature.mgt.ui_4.4.3.jar bundle apache2 6652 -org.wso2.carbon.framework.exporter_4.4.3.jar bundle apache2 6650 -org.wso2.carbon.i18n_4.4.3.jar bundle apache2 6648 -org.wso2.carbon.identity.account.mgt.menu.ui_4.5.6.jar bundle apache2 5224 -org.wso2.carbon.identity.authenticator.saml2.sso.common_4.5.6.jar bundle apache2 5223 -org.wso2.carbon.identity.authenticator.saml2.sso.stub_4.5.6.jar bundle apache2 5222 -org.wso2.carbon.identity.authenticator.saml2.sso.ui_4.5.6.jar bundle apache2 5221 -org.wso2.carbon.identity.authenticator.saml2.sso_4.5.6.jar bundle apache2 5220 -org.wso2.carbon.identity.base_4.5.6.jar bundle apache2 5219 -org.wso2.carbon.identity.menu.ui_4.5.6.jar bundle apache2 5216 -org.wso2.carbon.identity.sso.saml.stub_4.5.6.jar bundle apache2 5213 -org.wso2.carbon.identity.user.store.configuration.deployer_4.5.6.jar bundle apache2 5212 -org.wso2.carbon.identity.user.store.configuration.stub_4.5.6.jar bundle apache2 5211 -org.wso2.carbon.identity.user.store.configuration.ui_4.5.6.jar bundle apache2 5210 -org.wso2.carbon.identity.user.store.configuration_4.5.6.jar bundle apache2 5209 -org.wso2.carbon.identity.user.store.remote_4.5.6.jar bundle apache2 5893 -org.wso2.carbon.java2wsdl.ui_4.4.8.jar bundle apache2 5892 -org.wso2.carbon.java2wsdl_4.4.8.jar bundle apache2 5891 -org.wso2.carbon.logging-4.4.1.jar bundle apache2 3984 -org.wso2.carbon.logging-4.4.3.jar bundle apache2 6507 -org.wso2.carbon.logging.admin.stub_4.4.8.jar bundle apache2 5747 -org.wso2.carbon.logging.admin.ui_4.4.8.jar bundle apache2 5746 -org.wso2.carbon.logging.service_4.4.8.jar bundle apache2 5745 -org.wso2.carbon.logging.view.stub_4.4.8.jar bundle apache2 5744 -org.wso2.carbon.logging.view.ui_4.4.8.jar bundle apache2 5743 -org.wso2.carbon.logging_4.4.3.jar bundle apache2 6600 -org.wso2.carbon.messageflows.stub_4.4.8.jar bundle apache2 5890 -org.wso2.carbon.messageflows.ui_4.4.8.jar bundle apache2 5889 -org.wso2.carbon.messageflows_4.4.8.jar bundle apache2 5888 -org.wso2.carbon.messaging.metrics.ui_3.1.1.jar bundle apache2 7144 -org.wso2.carbon.metrics.common_1.2.0.jar bundle apache2 6889 -org.wso2.carbon.metrics.das.reporter_1.2.0.jar bundle apache2 6888 -org.wso2.carbon.metrics.data.common_1.2.0.jar bundle apache2 6912 -org.wso2.carbon.metrics.data.service.stub_1.2.0.jar bundle apache2 6911 -org.wso2.carbon.metrics.data.service_1.2.0.jar bundle apache2 6910 -org.wso2.carbon.metrics.impl_1.2.0.jar bundle apache2 6887 -org.wso2.carbon.metrics.jdbc.reporter_1.2.0.jar bundle apache2 6909 -org.wso2.carbon.metrics.manager_1.2.0.jar bundle apache2 6886 -org.wso2.carbon.metrics.view.ui_1.2.0.jar bundle apache2 6908 -org.wso2.carbon.ndatasource.common_4.4.3.jar bundle apache2 6562 -org.wso2.carbon.ndatasource.core_4.4.3.jar bundle apache2 6561 -org.wso2.carbon.ndatasource.rdbms_4.4.3.jar bundle apache2 6560 -org.wso2.carbon.osgi.security_4.4.3.jar bundle apache2 6559 -org.wso2.carbon.p2.touchpoint_4.4.3.jar bundle apache2 6558 -org.wso2.carbon.queuing_4.4.3.jar bundle apache2 6554 -org.wso2.carbon.registry.admin.api_4.5.0.jar bundle apache2 5886 -org.wso2.carbon.registry.api_4.4.3.jar bundle apache2 6553 -org.wso2.carbon.registry.common.ui_4.5.0.jar bundle apache2 5885 -org.wso2.carbon.registry.common_4.5.0.jar bundle apache2 5884 -org.wso2.carbon.registry.core_4.4.3.jar bundle apache2 6552 -org.wso2.carbon.registry.indexing_4.5.0.jar bundle apache2 5883 -org.wso2.carbon.registry.properties.stub_4.5.0.jar bundle apache2 5882 -org.wso2.carbon.registry.properties.ui_4.5.0.jar bundle apache2 5881 -org.wso2.carbon.registry.properties_4.5.0.jar bundle apache2 5880 -org.wso2.carbon.registry.resource.stub_4.5.0.jar bundle apache2 5879 -org.wso2.carbon.registry.resource.ui_4.5.0.jar bundle apache2 5878 -org.wso2.carbon.registry.resource_4.5.0.jar bundle apache2 5877 -org.wso2.carbon.registry.search.stub_4.5.0.jar bundle apache2 5876 -org.wso2.carbon.registry.search.ui_4.5.0.jar bundle apache2 5875 -org.wso2.carbon.registry.search_4.5.0.jar bundle apache2 5874 -org.wso2.carbon.registry.server_4.4.3.jar bundle apache2 6551 -org.wso2.carbon.registry.servlet_4.5.0.jar bundle apache2 5873 -org.wso2.carbon.roles.mgt.stub_4.4.3.jar bundle apache2 6545 -org.wso2.carbon.roles.mgt.ui_4.4.3.jar bundle apache2 6544 -org.wso2.carbon.roles.mgt_4.4.3.jar bundle apache2 6543 -org.wso2.carbon.securevault_4.4.3.jar bundle apache2 6542 -org.wso2.carbon.security.mgt.stub_4.5.6.jar bundle apache2 5072 -org.wso2.carbon.security.mgt.ui_4.5.6.jar bundle apache2 5071 -org.wso2.carbon.security.mgt_4.5.6.jar bundle apache2 5070 -org.wso2.carbon.server-4.4.3.jar bundle apache2 6506 -org.wso2.carbon.server.admin.common_4.4.3.jar bundle apache2 6535 -org.wso2.carbon.server.admin.stub_4.4.3.jar bundle apache2 6534 -org.wso2.carbon.server.admin.ui_4.4.3.jar bundle apache2 6533 -org.wso2.carbon.server.admin_4.4.3.jar bundle apache2 6532 -org.wso2.carbon.statistics.stub_4.4.8.jar bundle apache2 5872 -org.wso2.carbon.statistics.ui_4.4.8.jar bundle apache2 5871 -org.wso2.carbon.statistics_4.4.8.jar bundle apache2 5870 -org.wso2.carbon.tenant.common.stub_4.4.8.jar bundle apache2 5725 -org.wso2.carbon.tenant.common_4.4.8.jar bundle apache2 5724 -org.wso2.carbon.tenant.deployment_4.4.4.jar bundle apache2 5869 -org.wso2.carbon.tenant.dispatcher_4.4.4.jar bundle apache2 5868 -org.wso2.carbon.tenant.keystore.mgt_4.4.4.jar bundle apache2 5867 -org.wso2.carbon.tenant.mgt.core_4.4.4.jar bundle apache2 5866 -org.wso2.carbon.tenant.mgt.stub_4.4.4.jar bundle apache2 5865 -org.wso2.carbon.tenant.mgt.ui_4.4.4.jar bundle apache2 5864 -org.wso2.carbon.tenant.mgt_4.4.4.jar bundle apache2 5863 -org.wso2.carbon.tenant.redirector.servlet.stub_4.4.4.jar bundle apache2 5862 -org.wso2.carbon.tenant.redirector.servlet.ui_4.4.4.jar bundle apache2 5861 -org.wso2.carbon.tenant.redirector.servlet_4.4.4.jar bundle apache2 5860 -org.wso2.carbon.tenant.sso.redirector.ui_4.4.4.jar bundle apache2 5859 -org.wso2.carbon.tenant.theme.mgt_4.4.4.jar bundle apache2 5858 -org.wso2.carbon.tenant.throttling.agent_4.4.4.jar bundle apache2 5857 -org.wso2.carbon.tenant.usage.agent_4.4.4.jar bundle apache2 5856 -org.wso2.carbon.throttling.agent.stub_4.4.8.jar bundle apache2 5855 -org.wso2.carbon.tomcat.ext_4.4.3.jar bundle apache2 6529 -org.wso2.carbon.tomcat_4.4.3.jar bundle apache2 6528 -org.wso2.carbon.tools.wsdlvalidator.ui_4.4.8.jar bundle apache2 5854 -org.wso2.carbon.tools.wsdlvalidator_4.4.8.jar bundle apache2 5853 -org.wso2.carbon.tracer.stub_4.4.8.jar bundle apache2 5852 -org.wso2.carbon.tracer.ui_4.4.8.jar bundle apache2 5851 -org.wso2.carbon.tracer_4.4.8.jar bundle apache2 5850 -org.wso2.carbon.tryit.ui_4.4.8.jar bundle apache2 5723 -org.wso2.carbon.tryit_4.4.8.jar bundle apache2 5721 -org.wso2.carbon.ui.menu.general_4.4.3.jar bundle apache2 6527 -org.wso2.carbon.ui.menu.registry_4.4.1.jar bundle apache2 4394 -org.wso2.carbon.ui.menu.stratos_2.2.0.jar bundle apache2 2202 -org.wso2.carbon.ui.menu.tools_4.4.1.jar bundle apache2 4066 -org.wso2.carbon.ui_4.4.3.jar bundle apache2 6526 -org.wso2.carbon.um.ws.api.stub_4.5.6.jar bundle apache2 5849 -org.wso2.carbon.um.ws.api_4.5.6.jar bundle apache2 5848 -org.wso2.carbon.um.ws.service_4.5.6.jar bundle apache2 5847 -org.wso2.carbon.user.api_4.4.3.jar bundle apache2 6522 -org.wso2.carbon.user.core_4.4.3.jar bundle apache2 6521 -org.wso2.carbon.user.mgt.common_4.5.6.jar bundle apache2 5057 -org.wso2.carbon.user.mgt.stub_4.5.6.jar bundle apache2 5056 -org.wso2.carbon.user.mgt.ui_4.5.6.jar bundle apache2 5055 -org.wso2.carbon.user.mgt_4.5.6.jar bundle apache2 5054 -org.wso2.carbon.utils_4.4.3.jar bundle apache2 6515 -org.wso2.carbon.wsdl2code.stub_4.4.8.jar bundle apache2 5846 -org.wso2.carbon.wsdl2code.ui_4.4.8.jar bundle apache2 5845 -org.wso2.carbon.wsdl2code_4.4.8.jar bundle apache2 5844 -org.wso2.carbon.wsdl2form-4.4.8.jar bundle apache2 5722 -org.wso2.ciphertool-1.0.0-wso2v3.jar bundle apache2 4038 -org.wso2.mb.samples.mqtt.iot-3.0.0.jar bundle apache2 7139 -org.wso2.mb.samples.mqtt.retain.sample-3.0.0.jar bundle apache2 7140 -org.wso2.mb.samples.mqtt.simple-3.0.0-SNAPSHOT.jar bundle apache2 7141 -org.wso2.mb.styles_3.1.0.jar bundle apache2 7161 -org.wso2.securevault-1.0.0-wso2v2.jar bundle apache2 3537 -org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 -org.wso2.stratos.mb.dashboard.ui_3.1.0.jar bundle apache2 7160 -pdepublishing-ant.jar jar epl1 524 -pdepublishing.jar jar epl1 525 -perf4j_0.9.12.wso2v1.jar bundle apache2 832 -poi-ooxml_3.9.0.wso2v3.jar bundle apache2 3592 -poi-scratchpad_3.9.0.wso2v1.jar bundle apache2 2205 -poi_3.9.0.wso2v1.jar bundle apache2 2017 -rampart-1.6.1-wso2v10.mar bundle apache2 2375 -rampart-core_1.6.1.wso2v16.jar bundle apache2 5051 -rampart-policy_1.6.1.wso2v16.jar bundle apache2 5050 -rampart-trust_1.6.1.wso2v16.jar bundle apache2 5049 -slf4j-1.5.10.wso2v1.jar bundle mit 3209 -slf4j.api_1.6.1.jar bundle mit 354 -slf4j.api_1.7.13.jar bundle mit 1606 -slf4j.log4j12_1.6.1.jar bundle mit 346 -slf4j.log4j12_1.7.13.jar bundle mit 1605 -solr_5.2.1.wso2v1.jar bundle apache2 4384 -spatial4j_0.4.1.wso2v1.jar bundle apache2 4045 -spring.framework_3.2.9.wso2v1.jar bundle apache2 4044 -stax2-api-3.1.4.jar bundle bsd 1089 -tcpmon-1.0.jar jar bsd 255 -tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 -tomcat-annotations-api-7.0.59.jar jar apache2 1088 -tomcat-catalina-ha_7.0.59.wso2v1.jar bundle apache2 3829 -tomcat-el-api_7.0.59.wso2v1.jar bundle apache2 3828 -tomcat-jsp-api_7.0.59.wso2v1.jar bundle apache2 3827 -tomcat-juli-7.0.59.jar jar apache2 1086 -tomcat-servlet-api_7.0.59.wso2v1.jar bundle apache2 3826 -tomcat_7.0.59.wso2v3.jar bundle apache2 3985 -uddi4j-1.0.1.jar jarinbundle ibmpl 406 -wadl-core-1.1.3.wso2v2.jar bundle apache2 4069 -woden_1.0.0.M9-wso2v1.jar bundle apache2 3755 -woodstox-core-asl-4.4.1.jar bundle apache2 1087 -wsdl-validator_1.2.0.wso2v1.jar bundle epl1 1175 -wsdl4j_1.6.2.wso2v4.jar bundle apache2 745 -wss4j_1.5.11.wso2v11.jar bundle apache2 5040 -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 -xmlbeans-2.3.0.jar jarinbundle apache2 344 -xmlbeans_2.3.0.wso2v1.jar bundle apache2 749 -XmlSchema_1.4.7.wso2v3.jar bundle apache2 3585 -xmltooling-1.3.1.jar jarinbundle apache2 348 +addressing-1.6.1-wso2v20.mar bundle apache2 9597 +ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 +andes-client-3.1.3.jar bundle apache2 2061 +andes_3.1.3.jar bundle apache2 2062 +annogen_0.1.0.wso2v1.jar bundle apache2 942 +ant-contrib-1.0b3.jar jar apache2 549 +antlr-runtime_3.2.0.wso2v1.jar bundle bsd 817 +antlr_3.2.0.wso2v1.jar bundle bsd 838 +ant_1.7.0.wso2v1.jar bundle apache2 1012 +apache-zookeeper_3.3.4.wso2v1.jar bundle apache2 4219 +axiom_1.2.11.wso2v11.jar bundle apache2 8489 +axis2-json_1.6.1.wso2v20.jar bundle apache2 9596 +axis2-transport-jms_1.1.0.wso2v14.jar bundle apache2 5915 +axis2-transport-rabbitmq-amqp_1.1.0.wso2v14.jar bundle apache2 5914 +axis2_1.6.1.wso2v20.jar bundle apache2 9595 +backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 +bcprov-jdk15on-1.52.jar jarinbundle bouncy 1819 +bcprov-jdk15on_1.52.0.wso2v1.jar bundle bouncy 8485 +bcprov-jdk15-132.jar jar bouncy 285 +com.google.gson_2.3.1.jar bundle apache2 1143 +com.google.gson_2.7.0.jar bundle apache2 1853 +com.google.guava_19.0.0.jar bundle apache2 1627 +commons-beanutils-1.7.0.jar jarinbundle apache2 383 +commons-beanutils-1.8.0.jar jarinbundle apache2 292 +commons-beanutils_1.8.0.wso2v1.jar bundle apache2 688 +commons-cli_1.2.0.wso2v1.jar bundle apache2 922 +commons-codec_1.4.0.wso2v1.jar bundle apache2 980 +commons-collections_3.2.2.wso2v1.jar bundle apache2 6268 +commons-collections-3.2.2.wso2v1.jar bundle apache2 6268 +commons-configuration_1.6.0.wso2v1.jar bundle apache2 933 +commons-dbcp_1.4.0.wso2v1.jar bundle apache2 962 +commons-digester-1.8.1.jar jarinbundle apache2 347 +commons-digester-1.8.jar jarinbundle apache2 384 +commons-digester_1.8.1.wso2v1.jar bundle apache2 857 +commons-fileupload_1.3.2.wso2v1.jar bundle apache2 9594 +commons-httpclient_3.1.0.wso2v3.jar bundle apache2 8483 +commons-io_2.4.0.wso2v1.jar bundle apache2 4217 +commons-lang-2.6.0.wso2v1.jar bundle apache2 664 +commons-lang_2.6.0.wso2v1.jar bundle apache2 940 +commons-pool_1.5.6.wso2v1.jar bundle apache2 1009 +compass_2.0.1.wso2v2.jar bundle apache2 897 +csrfguard_3.1.0.wso2v2.jar bundle bsd 8482 +disruptor_3.3.2.wso2v2.jar bundle apache2 4377 +dom4j-1.6.1.jar jarinbundle bsd 1177 +encoder_1.2.0.wso2v1.jar bundle apache2 4030 +feign-jaxrs-9.3.1.jar jarinbundle apache2 2058 +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-jta_1.1_spec-1.1.jar jar apache2 1066 +geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 +h2-1.3.175.jar jarinbundle epl1 1999 +h2_1.3.175.wso2v1.jar bundle apache2 9731 +hazelcast_3.5.4.wso2v2.jar bundle apache2 8481 +hector-core_1.1.4.wso2v1.jar bundle apache2 2878 +high-scale-lib_1.0.0.wso2v1.jar bundle apache2 4216 +httpclient_4.3.1.wso2v2.jar bundle apache2 4214 +httpcore_4.3.3.wso2v1.jar bundle apache2 3638 +httpmime_4.3.1.wso2v2.jar bundle apache2 4375 +icu4j-3.8.jar jarinbundle icu 321 +io.dropwizard.metrics.core_3.1.2.jar bundle apache2 1305 +io.dropwizard.metrics.jvm_3.1.2.jar bundle apache2 1302 +io.github.openfeign.feign-core_9.3.1.jar bundle apache2 2060 +io.github.openfeign.feign-gson_9.3.1.jar bundle apache2 2059 +javasysmon_0.3.3.wso2v1.jar bundle bsd 721 +javax.cache.wso2_4.4.11.jar bundle apache2 2045 +jaxb_2.2.5.wso2v1.jar bundle cddl1 883 +jdbc-pool_7.0.34.wso2v2.jar bundle apache2 3637 +jericho-html-2.4.jar jarinbundle epl1 363 +jettison_1.3.4.wso2v1.jar bundle apache2 2162 +jline-1.0.jar bundle bsd 805 +joda-time_2.8.2.wso2v1.jar bundle apache2 6879 +json_1.0.0.wso2v1.jar bundle apache2 2361 +json_2.0.0.wso2v1.jar bundle apache2 971 +jsr311-api-1.1.1.jar jarinbundle cddl1 553 +jstl_1.2.1.wso2v2.jar bundle cddl1 2204 +kaptcha_2.3.0.wso2v1.jar bundle apache2 854 +libthrift_0.7.0.wso2v2.jar bundle apache2 912 +libthrift_0.9.2.wso2v1.jar bundle apache2 5912 +localizer-1.0.jar jarinbundle apache2 551 +log4j-1.2.17.jar bundle apache2 802 +lucene_5.2.1.wso2v1.jar bundle apache2 4502 +neethi_2.0.4.wso2v5.jar bundle apache2 6267 +netty-all_4.0.23.wso2v1.jar bundle apache2 4689 +noggit_0.6.0.wso2v1.jar bundle apache2 4211 +opencsv-1.8.jar jarinbundle apache2 368 +opencsv_1.8.0.wso2v1.jar bundle apache2 928 +opensaml_2.6.4.wso2v3.jar bundle apache2 8480 +org.apache.commons.configuration_1.10.0.jar bundle apache2 1510 +org.apache.felix.gogo.command_0.10.0.v201209301215.jar bundle apache2 1134 +org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar bundle apache2 1133 +org.apache.felix.gogo.shell_0.10.0.v201212101605.jar bundle apache2 1132 +org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar bundle epl1 1131 +org.eclipse.core.expressions_3.4.500.v20130515-1343.jar bundle epl1 1130 +org.eclipse.core.jobs_3.5.300.v20130429-1813.jar bundle epl1 1129 +org.eclipse.core.runtime_3.9.0.v20130326-1255.jar bundle epl1 1128 +org.eclipse.ecf.filetransfer_5.0.0.v20130604-1622.jar bundle epl1 1127 +org.eclipse.ecf.identity_3.2.0.v20130604-1622.jar bundle epl1 1126 +org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 +org.eclipse.ecf.provider.filetransfer_3.2.0.v20130604-1622.jar bundle epl1 1125 +org.eclipse.ecf_3.2.0.v20130604-1622.jar bundle epl1 1124 +org.eclipse.equinox.app_1.3.100.v20130327-1442.jar bundle epl1 1123 +org.eclipse.equinox.common_3.6.200.v20130402-1505.jar bundle epl1 1122 +org.eclipse.equinox.concurrent_1.1.0.v20130327-1442.jar bundle epl1 1121 +org.eclipse.equinox.console_1.0.100.v20130429-0953.jar bundle epl1 1120 +org.eclipse.equinox.ds_1.4.101.v20130813-1853.jar bundle epl1 1119 +org.eclipse.equinox.frameworkadmin.equinox_1.0.500.v20130327-2119.jar bundle epl1 1118 +org.eclipse.equinox.frameworkadmin_2.0.100.v20130327-2119.jar bundle epl1 1117 +org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 +org.eclipse.equinox.http.servlet_1.1.400.v20130418-1354.jar bundle epl1 1116 +org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 +org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar bundle epl1 1115 +org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 +org.eclipse.equinox.p2.console_1.0.300.v20130327-2119.jar bundle epl1 1114 +org.eclipse.equinox.p2.core_2.3.0.v20130327-2119.jar bundle epl1 1113 +org.eclipse.equinox.p2.director.app_1.0.300.v20130819-1621.jar bundle epl1 1112 +org.eclipse.equinox.p2.directorywatcher_1.0.300.v20130327-2119.jar bundle epl1 1110 +org.eclipse.equinox.p2.director_2.3.0.v20130526-0335.jar bundle epl1 1111 +org.eclipse.equinox.p2.engine_2.3.0.v20130526-2122-wso2v1.jar bundle epl1 3873 +org.eclipse.equinox.p2.extensionlocation_1.2.100.v20130327-2119.jar bundle epl1 1109 +org.eclipse.equinox.p2.garbagecollector_1.0.200.v20130327-2119.jar bundle epl1 1108 +org.eclipse.equinox.p2.jarprocessor_1.0.300.v20130327-2119.jar bundle epl1 1107 +org.eclipse.equinox.p2.metadata.repository_1.2.100.v20130327-2119.jar bundle epl1 1106 +org.eclipse.equinox.p2.metadata_2.2.0.v20130523-1557.jar bundle epl1 1105 +org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 +org.eclipse.equinox.p2.repository.tools_2.1.0.v20130327-2119.jar bundle epl1 1104 +org.eclipse.equinox.p2.repository_2.3.0.v20130412-2032.jar bundle epl1 1103 +org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 +org.eclipse.equinox.p2.touchpoint.natives_1.1.100.v20130327-2119.jar bundle epl1 1102 +org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 +org.eclipse.equinox.p2.updatechecker_1.1.200.v20130327-2119.jar bundle epl1 1101 +org.eclipse.equinox.p2.updatesite_1.0.400.v20130515-2028.jar bundle epl1 1100 +org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar bundle epl1 1099 +org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar bundle epl1 1098 +org.eclipse.equinox.security_1.2.0.v20130424-1801.jar bundle epl1 1097 +org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20130327-2119.jar bundle epl1 1096 +org.eclipse.equinox.simpleconfigurator_1.0.400.v20130327-2119.jar bundle epl1 1095 +org.eclipse.equinox.util_1.0.500.v20130404-1337.jar bundle epl1 1094 +org.eclipse.jdt.core.compiler.batch_3.10.2.v20150120-1634.jar bundle epl1 1141 +org.eclipse.osgi.services_3.3.100.v20130513-1956.jar bundle epl1 1093 +org.eclipse.osgi_3.9.1.v20130814-1242.jar bundle epl1 1092 +org.restlet_2.3.0.wso2v1.jar bundle apache2 4501 +org.sat4j.core_2.3.5.v201308161310.jar bundle epl1+lgpl21091 +org.sat4j.pb_2.3.5.v201308161310.jar bundle epl1+lgpl21090 +org.wso2.carbon.addressing_4.4.11.jar bundle apache2 10386 +org.wso2.carbon.analytics.shared.data.agents.log4j_1.0.3.jar bundle apache2 11074 +org.wso2.carbon.andes.admin_3.1.3.jar bundle apache2 11073 +org.wso2.carbon.andes.authentication_3.1.3.jar bundle apache2 11072 +org.wso2.carbon.andes.authorization_3.1.3.jar bundle apache2 11071 +org.wso2.carbon.andes.cluster.mgt.ui_3.1.3.jar bundle apache2 11070 +org.wso2.carbon.andes.cluster.mgt_3.1.3.jar bundle apache2 11069 +org.wso2.carbon.andes.commons_3.1.3.jar bundle apache2 11068 +org.wso2.carbon.andes.core_3.1.3.jar bundle apache2 11067 +org.wso2.carbon.andes.event.admin_3.1.3.jar bundle apache2 11066 +org.wso2.carbon.andes.event.core_3.1.3.jar bundle apache2 11065 +org.wso2.carbon.andes.event.stub_3.1.3.jar bundle apache2 11064 +org.wso2.carbon.andes.event.ui_3.1.3.jar bundle apache2 11063 +org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.6.jar bundle apache2 11062 +org.wso2.carbon.andes.mgt.stub_3.1.3.jar bundle apache2 11061 +org.wso2.carbon.andes.stub_3.1.3.jar bundle apache2 11060 +org.wso2.carbon.andes.ui_3.1.3.jar bundle apache2 11059 +org.wso2.carbon.andes_3.1.3.jar bundle apache2 11058 +org.wso2.carbon.application.deployer_4.4.11.jar bundle apache2 10385 +org.wso2.carbon.application.upload_4.5.4.jar bundle apache2 8684 +org.wso2.carbon.authenticator.proxy_4.4.11.jar bundle apache2 10384 +org.wso2.carbon.authenticator.stub_4.4.11.jar bundle apache2 10383 +org.wso2.carbon.base_4.4.11.jar bundle apache2 10382 +org.wso2.carbon.bootstrap-4.4.11.jar bundle apache2 10337 +org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 +org.wso2.carbon.cluster.mgt.core_4.4.11.jar bundle apache2 10381 +org.wso2.carbon.core.bootup.validator_4.4.11.jar bundle apache2 10380 +org.wso2.carbon.core.commons.stub_4.4.11.jar bundle apache2 10378 +org.wso2.carbon.core.common_4.4.11.jar bundle apache2 10379 +org.wso2.carbon.core.services_4.4.11.jar bundle apache2 10377 +org.wso2.carbon.core_4.4.11.jar bundle apache2 10376 +org.wso2.carbon.databridge.agent_5.1.5.jar bundle apache2 11017 +org.wso2.carbon.databridge.commons.binary_5.1.5.jar bundle apache2 11016 +org.wso2.carbon.databridge.commons.thrift_5.1.5.jar bundle apache2 11015 +org.wso2.carbon.databridge.commons_5.1.5.jar bundle apache2 11014 +org.wso2.carbon.event.client_4.5.4.jar bundle apache2 8441 +org.wso2.carbon.feature.mgt.core_4.4.11.jar bundle apache2 10375 +org.wso2.carbon.feature.mgt.services_4.4.11.jar bundle apache2 10374 +org.wso2.carbon.feature.mgt.stub_4.4.11.jar bundle apache2 10373 +org.wso2.carbon.feature.mgt.ui_4.4.11.jar bundle apache2 10372 +org.wso2.carbon.framework.exporter_4.4.11.jar bundle apache2 10371 +org.wso2.carbon.i18n_4.4.11.jar bundle apache2 10370 +org.wso2.carbon.identity.application.common_5.2.0.jar bundle apache2 8391 +org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.3.jar bundle apache2 9428 +org.wso2.carbon.identity.authenticator.saml2.sso_5.1.3.jar bundle apache2 9426 +org.wso2.carbon.identity.base_5.2.0.jar bundle apache2 8378 +org.wso2.carbon.identity.core.ui_5.2.0.jar bundle apache2 8377 +org.wso2.carbon.identity.core_5.2.0.jar bundle apache2 8376 +org.wso2.carbon.identity.oauth.stub_5.0.8.jar bundle apache2 8608 +org.wso2.carbon.identity.user.store.configuration.deployer_5.2.0.jar bundle apache2 8332 +org.wso2.carbon.identity.user.store.configuration.stub_5.2.0.jar bundle apache2 8331 +org.wso2.carbon.identity.user.store.configuration.ui_5.2.0.jar bundle apache2 8330 +org.wso2.carbon.identity.user.store.configuration_5.2.0.jar bundle apache2 8329 +org.wso2.carbon.identity.user.store.count.stub_5.2.0.jar bundle apache2 8328 +org.wso2.carbon.identity.user.store.count_5.2.0.jar bundle apache2 8327 +org.wso2.carbon.identity.user.store.remote_5.0.8.jar bundle apache2 7742 +org.wso2.carbon.java2wsdl.ui_4.5.4.jar bundle apache2 8776 +org.wso2.carbon.java2wsdl_4.5.4.jar bundle apache2 8775 +org.wso2.carbon.logging-4.4.11.jar bundle apache2 10339 +org.wso2.carbon.logging.admin.stub_4.5.4.jar bundle apache2 8313 +org.wso2.carbon.logging.admin.ui_4.5.4.jar bundle apache2 8312 +org.wso2.carbon.logging.service_4.5.4.jar bundle apache2 8311 +org.wso2.carbon.logging.view.stub_4.5.4.jar bundle apache2 8310 +org.wso2.carbon.logging.view.ui_4.5.4.jar bundle apache2 8309 +org.wso2.carbon.logging_4.4.11.jar bundle apache2 10369 +org.wso2.carbon.messageflows.stub_4.5.4.jar bundle apache2 8574 +org.wso2.carbon.messageflows.ui_4.5.4.jar bundle apache2 8573 +org.wso2.carbon.messageflows_4.5.4.jar bundle apache2 8572 +org.wso2.carbon.messaging.metrics.ui_3.1.3.jar bundle apache2 11057 +org.wso2.carbon.metrics.common_1.2.2.jar bundle apache2 8818 +org.wso2.carbon.metrics.das.reporter_1.2.2.jar bundle apache2 8817 +org.wso2.carbon.metrics.data.common_1.2.2.jar bundle apache2 8816 +org.wso2.carbon.metrics.data.service.stub_1.2.2.jar bundle apache2 8815 +org.wso2.carbon.metrics.data.service_1.2.2.jar bundle apache2 8814 +org.wso2.carbon.metrics.impl_1.2.2.jar bundle apache2 8813 +org.wso2.carbon.metrics.jdbc.reporter_1.2.2.jar bundle apache2 8812 +org.wso2.carbon.metrics.manager_1.2.2.jar bundle apache2 8811 +org.wso2.carbon.metrics.view.ui_1.2.2.jar bundle apache2 8810 +org.wso2.carbon.ndatasource.common_4.4.11.jar bundle apache2 10368 +org.wso2.carbon.ndatasource.core_4.4.11.jar bundle apache2 10367 +org.wso2.carbon.ndatasource.rdbms_4.4.11.jar bundle apache2 10366 +org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 +org.wso2.carbon.queuing_4.4.11.jar bundle apache2 10364 +org.wso2.carbon.registry.admin.api_4.5.8.jar bundle apache2 10275 +org.wso2.carbon.registry.api_4.4.11.jar bundle apache2 10363 +org.wso2.carbon.registry.common.ui_4.5.8.jar bundle apache2 10274 +org.wso2.carbon.registry.common_4.5.8.jar bundle apache2 10273 +org.wso2.carbon.registry.core_4.4.11.jar bundle apache2 10362 +org.wso2.carbon.registry.indexing_4.5.8.jar bundle apache2 10266 +org.wso2.carbon.registry.properties.stub_4.5.8.jar bundle apache2 10262 +org.wso2.carbon.registry.properties.ui_4.5.8.jar bundle apache2 10261 +org.wso2.carbon.registry.properties_4.5.8.jar bundle apache2 10260 +org.wso2.carbon.registry.resource.stub_4.5.8.jar bundle apache2 10256 +org.wso2.carbon.registry.resource.ui_4.5.8.jar bundle apache2 10255 +org.wso2.carbon.registry.resource_4.5.8.jar bundle apache2 10254 +org.wso2.carbon.registry.search.stub_4.5.8.jar bundle apache2 10253 +org.wso2.carbon.registry.search.ui_4.5.8.jar bundle apache2 10252 +org.wso2.carbon.registry.search_4.5.8.jar bundle apache2 10251 +org.wso2.carbon.registry.server_4.4.11.jar bundle apache2 10361 +org.wso2.carbon.registry.servlet_4.5.8.jar bundle apache2 10250 +org.wso2.carbon.roles.mgt.stub_4.4.11.jar bundle apache2 10360 +org.wso2.carbon.roles.mgt.ui_4.4.11.jar bundle apache2 10359 +org.wso2.carbon.roles.mgt_4.4.11.jar bundle apache2 10358 +org.wso2.carbon.securevault_4.4.11.jar bundle apache2 10357 +org.wso2.carbon.security.mgt.stub_5.2.0.jar bundle apache2 8272 +org.wso2.carbon.security.mgt.ui_5.2.0.jar bundle apache2 8271 +org.wso2.carbon.security.mgt_5.2.0.jar bundle apache2 8270 +org.wso2.carbon.server-4.4.11.jar bundle apache2 10338 +org.wso2.carbon.server.admin.common_4.4.11.jar bundle apache2 10356 +org.wso2.carbon.server.admin.stub_4.4.11.jar bundle apache2 10355 +org.wso2.carbon.server.admin.ui_4.4.11.jar bundle apache2 10354 +org.wso2.carbon.server.admin_4.4.11.jar bundle apache2 10353 +org.wso2.carbon.statistics.stub_4.5.4.jar bundle apache2 8264 +org.wso2.carbon.statistics.ui_4.5.4.jar bundle apache2 8263 +org.wso2.carbon.statistics_4.5.4.jar bundle apache2 8262 +org.wso2.carbon.tenant.common_4.5.4.jar bundle apache2 8257 +org.wso2.carbon.tenant.deployment_4.6.1.jar bundle apache2 10243 +org.wso2.carbon.tenant.dispatcher_4.6.1.jar bundle apache2 10242 +org.wso2.carbon.tenant.keystore.mgt_4.6.1.jar bundle apache2 10241 +org.wso2.carbon.tenant.mgt.core_4.6.1.jar bundle apache2 10240 +org.wso2.carbon.tenant.mgt_4.6.1.jar bundle apache2 10237 +org.wso2.carbon.tenant.redirector.servlet_4.6.1.jar bundle apache2 10234 +org.wso2.carbon.tenant.theme.mgt_4.6.1.jar bundle apache2 10232 +org.wso2.carbon.tenant.throttling.agent_4.6.1.jar bundle apache2 10231 +org.wso2.carbon.tenant.usage.agent_4.6.1.jar bundle apache2 10230 +org.wso2.carbon.throttling.agent.stub_4.5.4.jar bundle apache2 8505 +org.wso2.carbon.tomcat.ext_4.4.11.jar bundle apache2 10351 +org.wso2.carbon.tomcat_4.4.11.jar bundle apache2 10350 +org.wso2.carbon.tools.wsdlvalidator.ui_4.5.4.jar bundle apache2 8753 +org.wso2.carbon.tools.wsdlvalidator_4.5.4.jar bundle apache2 8752 +org.wso2.carbon.tracer.stub_4.5.4.jar bundle apache2 8242 +org.wso2.carbon.tracer.ui_4.5.4.jar bundle apache2 8241 +org.wso2.carbon.tracer_4.5.4.jar bundle apache2 8240 +org.wso2.carbon.tryit.ui_4.5.4.jar bundle apache2 8750 +org.wso2.carbon.tryit_4.5.4.jar bundle apache2 8748 +org.wso2.carbon.ui.menu.general_4.4.11.jar bundle apache2 10349 +org.wso2.carbon.ui.menu.tools_4.4.3.jar bundle apache2 6716 +org.wso2.carbon.ui_4.4.11.jar bundle apache2 10348 +org.wso2.carbon.um.ws.api.stub_5.0.8.jar bundle apache2 7711 +org.wso2.carbon.um.ws.api_5.0.8.jar bundle apache2 7710 +org.wso2.carbon.um.ws.service_5.0.8.jar bundle apache2 7709 +org.wso2.carbon.user.api_4.4.11.jar bundle apache2 10347 +org.wso2.carbon.user.core_4.4.11.jar bundle apache2 10346 +org.wso2.carbon.user.mgt.common_5.2.0.jar bundle apache2 8230 +org.wso2.carbon.user.mgt.stub_5.2.0.jar bundle apache2 8229 +org.wso2.carbon.user.mgt.ui_5.2.0.jar bundle apache2 8228 +org.wso2.carbon.user.mgt.workflow.stub_5.2.0.jar bundle apache2 8227 +org.wso2.carbon.user.mgt_5.2.0.jar bundle apache2 8224 +org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 +org.wso2.carbon.wsdl2code.stub_4.5.4.jar bundle apache2 8746 +org.wso2.carbon.wsdl2code.ui_4.5.4.jar bundle apache2 8745 +org.wso2.carbon.wsdl2code_4.5.4.jar bundle apache2 8744 +org.wso2.carbon.wsdl2form-4.5.4.jar bundle apache2 8749 +org.wso2.ciphertool-1.0.0-wso2v3.jar bundle apache2 4038 +org.wso2.securevault-1.0.0-wso2v2.jar bundle apache2 3537 +org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 +pdepublishing-ant.jar jar epl1 524 +pdepublishing.jar jar epl1 525 +perf4j_0.9.12.wso2v1.jar bundle apache2 832 +poi-ooxml_3.14.0.wso2v1.jar bundle apache2 8218 +poi-scratchpad_3.14.0.wso2v1.jar bundle apache2 8217 +poi_3.14.0.wso2v1.jar bundle apache2 8216 +rampart-1.6.1-wso2v10.mar bundle apache2 2375 +rampart-core_1.6.1.wso2v21.jar bundle apache2 8215 +rampart-policy_1.6.1.wso2v21.jar bundle apache2 8214 +rampart-trust_1.6.1.wso2v21.jar bundle apache2 8213 +slf4j-1.5.10.wso2v1.jar bundle mit 3209 +slf4j.api_1.6.1.jar bundle mit 354 +slf4j.api_1.7.13.jar bundle mit 1606 +slf4j.api_1.7.21.jar bundle mit 1852 +slf4j.log4j12_1.6.1.jar bundle mit 346 +slf4j.log4j12_1.7.13.jar bundle mit 1605 +slf4j.log4j12_1.7.21.jar bundle mit 1851 +solr_5.2.1.wso2v1.jar bundle apache2 4384 +spatial4j_0.4.1.wso2v1.jar bundle apache2 4045 +spring.framework_3.2.9.wso2v1.jar bundle apache2 4044 +stax2-api-3.1.4.jar bundle bsd 1089 +tcpmon-1.0.jar jar bsd 255 +tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 +tomcat-annotations-api-7.0.73.jar jar apache2 2044 +tomcat-catalina-ha_7.0.73.wso2v1.jar bundle apache2 10344 +tomcat-el-api_7.0.73.wso2v1.jar bundle apache2 10343 +tomcat-jsp-api_7.0.73.wso2v1.jar bundle apache2 10342 +tomcat-juli-7.0.73.jar jar apache2 2043 +tomcat-servlet-api_7.0.73.wso2v1.jar bundle apache2 10341 +tomcat_7.0.73.wso2v1.jar bundle apache2 10340 +uddi4j-1.0.1.jar jarinbundle ibmpl 406 +wadl-core-1.1.3.wso2v2.jar bundle apache2 4069 +woden_1.0.0.M9-wso2v1.jar bundle apache2 3755 +woodstox-core-asl-4.4.1.jar bundle apache2 1087 +wsdl-validator_1.2.0.wso2v1.jar bundle epl1 1175 +wsdl4j_1.6.2.wso2v4.jar bundle apache2 745 +wss4j_1.5.11.wso2v14.jar bundle apache2 8206 +xalan-2.7.1.wso2v1.jar bundle apache2 659 +xalan-2.7.2.wso2v2.jar bundle apache2 8202 +xercesImpl-2.8.1.wso2v2.jar bundle apache2 663 +xml-apis-1.4.01.jar jar apache2 1793 +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_1.4.7.wso2v3.jar bundle apache2 3585 From 40880a434be340cdb3cbcdbe6e61cd84fade7394 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 09:58:29 +0530 Subject: [PATCH 29/47] Created LICENSE.txt for iot-analytics --- .../distribution/src/assembly/bin.xml | 11 + .../src/main/resources/LICENSE.txt | 641 ++++++++++++++++++ 2 files changed, 652 insertions(+) create mode 100644 modules/analytics/distribution/src/main/resources/LICENSE.txt diff --git a/modules/analytics/distribution/src/assembly/bin.xml b/modules/analytics/distribution/src/assembly/bin.xml index 6153fc43..71f18629 100644 --- a/modules/analytics/distribution/src/assembly/bin.xml +++ b/modules/analytics/distribution/src/assembly/bin.xml @@ -578,6 +578,17 @@ 644
+ + + + src/main/resources/LICENSE.txt + + ${pom.artifactId}-${pom.version}/ + + true + 644 + + diff --git a/modules/analytics/distribution/src/main/resources/LICENSE.txt b/modules/analytics/distribution/src/main/resources/LICENSE.txt new file mode 100644 index 00000000..057fac71 --- /dev/null +++ b/modules/analytics/distribution/src/main/resources/LICENSE.txt @@ -0,0 +1,641 @@ + +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 +addressing-1.6.1-wso2v20.mar bundle apache2 9597 +ajaxtags_1.3.0.beta-rc7-wso2v1.jar bundle apache2 905 +annogen_0.1.0.wso2v1.jar bundle apache2 942 +ant-contrib-1.0b3.jar jar apache2 549 +antlr-runtime_3.2.0.wso2v1.jar bundle bsd 817 +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 +apache-zookeeper_3.3.4.wso2v1.jar bundle apache2 4219 +asm-3.3.1.jar jar bsd 1268 +asm-all_4.1.0.wso2v1.jar bundle bsd 4702 +avro-tools_1.7.7.wos2v1.jar bundle apache2 2013 +axiom_1.2.11.wso2v11.jar bundle apache2 8489 +axis2-json_1.6.1.wso2v20.jar bundle apache2 9596 +axis2_1.6.1.wso2v20.jar bundle apache2 9595 +backport-util-concurrent_3.1.0.wso2v1.jar bundle apache2 1007 +bcprov-jdk15on-1.52.jar jarinbundle bouncy 1819 +bcprov-jdk15on_1.52.0.wso2v1.jar bundle bouncy 8485 +bcprov-jdk15-132.jar jar bouncy 285 +bigqueue_0.7.0.wso2v1.jar bundle apache2 7036 +cassandra-driver-core_2.1.10.2_wso2v2.jar bundle apache2 8865 +cassandra-thrift_1.2.13.wso2v4.jar bundle apache2 4379 +chill_2.10_0.5.0.wso2v1.jar bundle apache2 4700 +com.fasterxml.jackson.core.jackson-annotations_2.4.4.jar bundle apache2 1313 +com.fasterxml.jackson.core.jackson-core_2.4.4.jar bundle apache2 1312 +com.fasterxml.jackson.core.jackson-databind_2.4.4.jar bundle apache2 1311 +com.google.gson_2.3.1.jar bundle apache2 1143 +com.google.gson_2.7.0.jar bundle apache2 1853 +com.google.guava_19.0.0.jar bundle apache2 1627 +com.google.protobuf_2.5.0.jar bundle bsd 1309 +com.jayway.jsonpath.json-path_0.9.1.jar bundle apache2 798 +com.ning.compress-lzf_1.0.3.jar bundle cddl+gpl 1308 +com.sun.jersey.jersey-core_1.9.0.jar bundle cddl+gpl 1307 +com.sun.jersey.jersey-server_1.9.0.jar bundle cddl+gpl 1306 +com.typesafe.akka.actor_2.3.11.jar bundle apache2 2012 +com.typesafe.akka.remote_2.3.11.jar bundle apache2 2011 +com.typesafe.akka.slf4j_2.3.11.jar bundle apache2 2010 +com.typesafe.config_1.2.1.jar bundle apache2 2009 +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.2.jar bundle apache2 2042 +commons-collections_3.2.2.wso2v1.jar bundle apache2 6268 +commons-compiler_2.7.8.wso2v1.jar bundle bsd 9786 +commons-configuration_1.6.0.wso2v1.jar bundle apache2 933 +commons-dbcp_1.4.0.wso2v1.jar bundle apache2 962 +commons-digester-1.8.jar jarinbundle apache2 384 +commons-fileupload_1.3.2.wso2v1.jar bundle apache2 9594 +commons-httpclient_3.1.0.wso2v3.jar bundle apache2 8483 +commons-io_2.4.0.wso2v1.jar bundle apache2 4217 +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 +compass_2.0.1.wso2v2.jar bundle apache2 897 +csrfguard_3.1.0.wso2v2.jar bundle bsd 8482 +cxf-bundle-2.7.16.jar bundle apache2 1154 +cxf-xjc-boolean-3.0.2.jar jar apache2 1153 +cxf-xjc-bug671-3.0.2.jar jar apache2 1152 +cxf-xjc-dv-3.0.2.jar jar apache2 1151 +cxf-xjc-runtime-3.0.2.jar bundle apache2 1150 +cxf-xjc-ts-3.0.2.jar jar apache2 1149 +disruptor_3.3.2.wso2v2.jar bundle apache2 4377 +dom4j-1.6.1.jar jarinbundle bsd 1177 +ehcache-core-2.5.1.jar jar apache2 267 +encoder_1.2.0.wso2v1.jar bundle apache2 4030 +feign-jaxrs-9.3.1.jar jarinbundle apache2 2058 +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-jta_1.1_spec-1.1.jar jar apache2 1066 +geronimo-saaj_1.3_spec_1.0.0.wso2v3.jar bundle apache2 893 +h2-1.3.175.jar jarinbundle epl1 1999 +h2_1.3.175.wso2v1.jar bundle apache2 9731 +hadoop-client_2.7.2.wso2v1.jar bundle apache2 8738 +hazelcast_3.5.4.wso2v2.jar bundle apache2 8481 +hbase-shaded-client_1.2.1.wso2v2.jar bundle apache2 10700 +hector-core_1.1.4.wso2v1.jar bundle apache2 2878 +high-scale-lib_1.0.0.wso2v1.jar bundle apache2 4216 +htrace-core-apache_3.1.0.incubating_wso2v1.jar bundle apache2 4696 +htrace-core_3.0.4.wso2v1.jar bundle apache2 4695 +httpasyncclient-4.0-beta3.jar jar apache2 280 +httpclient-4.2.5.jar jar apache2 548 +httpclient_4.3.1.wso2v2.jar bundle apache2 4214 +httpcore-4.2.4.jar jar apache2 533 +httpcore-nio-4.2.4.jar jar apache2 534 +httpcore_4.3.3.wso2v1.jar bundle apache2 3638 +httpmime_4.3.1.wso2v2.jar bundle apache2 4375 +io.dropwizard.metrics.core_3.1.2.jar bundle apache2 1305 +io.dropwizard.metrics.graphite_3.1.2.jar bundle apache2 1304 +io.dropwizard.metrics.json_3.1.2.jar bundle apache2 1303 +io.dropwizard.metrics.jvm_3.1.2.jar bundle apache2 1302 +io.github.openfeign.feign-core_9.3.1.jar bundle apache2 2060 +io.github.openfeign.feign-gson_9.3.1.jar bundle apache2 2059 +jackson-module-scala_2.10_2.4.4.wso2v1.jar bundle apache2 8863 +janino_2.7.8.wso2v1.jar bundle bsd 9785 +javasysmon_0.3.3.wso2v1.jar bundle bsd 721 +javax.cache.wso2_4.4.11.jar bundle apache2 2045 +javax.servlet.jsp-api_2.2.1.jar bundle cddl+gpl 1301 +javax.ws.rs-api-2.0-m10.jar bundle cddl+gpl 263 +jaxb-impl-2.2.6.jar jar cddl1 1148 +jaxb-xjc-2.2.6.jar jar cddl1 1147 +jaxb_2.2.5.wso2v1.jar bundle cddl1 883 +jdbc-pool_7.0.34.wso2v2.jar bundle apache2 3637 +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 +joda-time_2.8.2.wso2v1.jar bundle apache2 6879 +json-simple_1.1.0.wso2v1.jar bundle apache2 828 +json4s-jackson_2.10_3.2.10.wso2v1.jar bundle apache2 4693 +json_1.0.0.wso2v1.jar bundle apache2 2361 +json_2.0.0.wso2v1.jar bundle apache2 971 +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 +kryo_2.24.0.wso2v1.jar bundle bsd 4692 +leveldb-api_0.6.0.wso2v1.jar bundle apache2 9783 +libthrift_0.7.0.wso2v2.jar bundle apache2 912 +libthrift_0.9.2.wso2v1.jar bundle apache2 5912 +localizer-1.0.jar jarinbundle apache2 551 +lucene_5.2.1.wso2v1.jar bundle apache2 4502 +lz4-java_1.3.0.jar bundle apache2 2008 +mesos_0.21.1.wso2v1.jar bundle apache2 9782 +metrics-json-3.1.2.wso2v1.jar bundle apache2 10598 +minlog_1.2.0.wso2v1.jar bundle bsd 4690 +neethi-3.0.3.jar bundle apache2 1146 +neethi_2.0.4.wso2v5.jar bundle apache2 6267 +net.minidev.json-smart_1.2.0.jar bundle apache2 797 +net.minidev.json-smart_1.3.0.jar bundle apache2 1337 +netty-all_4.0.29.wso2v1.jar bundle apache2 9781 +nimbus-jose-jwt_2.26.1.wso2v3.jar bundle apache2 4885 +noggit_0.6.0.wso2v1.jar bundle apache2 4211 +objenesis_2.1.0.wso2v1.jar bundle mit 4688 +opencsv-1.8.jar jarinbundle apache2 368 +opencsv_1.8.0.wso2v1.jar bundle apache2 928 +opensaml_2.6.4.wso2v3.jar bundle apache2 8480 +org.antlr.antlr4-runtime-osgi_4.5.0.jar bundle bsd3 1228 +org.apache.commons.lang3_3.3.2.jar bundle apache2 1201 +org.apache.commons.math3_3.2.0.jar bundle apache2 1227 +org.apache.felix.gogo.command_0.10.0.v201209301215.jar bundle apache2 1134 +org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar bundle apache2 1133 +org.apache.felix.gogo.shell_0.10.0.v201212101605.jar bundle apache2 1132 +org.apache.servicemix.bundles.geocoder-java_0.16.0.1.jar bundle apache2 1361 +org.apache.servicemix.bundles.jaxb-api-2.0_4.0.0.m1.jar bundle apache2 1226 +org.apache.xbean.asm5-shaded_4.4.0.jar bundle apache2 2007 +org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar bundle epl1 1131 +org.eclipse.core.expressions_3.4.500.v20130515-1343.jar bundle epl1 1130 +org.eclipse.core.jobs_3.5.300.v20130429-1813.jar bundle epl1 1129 +org.eclipse.core.runtime_3.9.0.v20130326-1255.jar bundle epl1 1128 +org.eclipse.ecf.filetransfer_5.0.0.v20130604-1622.jar bundle epl1 1127 +org.eclipse.ecf.identity_3.2.0.v20130604-1622.jar bundle epl1 1126 +org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar bundle epl1 289 +org.eclipse.ecf.provider.filetransfer_3.2.0.v20130604-1622.jar bundle epl1 1125 +org.eclipse.ecf_3.2.0.v20130604-1622.jar bundle epl1 1124 +org.eclipse.equinox.app_1.3.100.v20130327-1442.jar bundle epl1 1123 +org.eclipse.equinox.common_3.6.200.v20130402-1505.jar bundle epl1 1122 +org.eclipse.equinox.concurrent_1.1.0.v20130327-1442.jar bundle epl1 1121 +org.eclipse.equinox.console_1.0.100.v20130429-0953.jar bundle epl1 1120 +org.eclipse.equinox.ds_1.4.101.v20130813-1853.jar bundle epl1 1119 +org.eclipse.equinox.frameworkadmin.equinox_1.0.500.v20130327-2119.jar bundle epl1 1118 +org.eclipse.equinox.frameworkadmin_2.0.100.v20130327-2119.jar bundle epl1 1117 +org.eclipse.equinox.http.helper_1.1.0.wso2v1.jar bundle epl1 839 +org.eclipse.equinox.http.servlet_1.1.400.v20130418-1354.jar bundle epl1 1116 +org.eclipse.equinox.jsp.jasper_1.0.400.v20120522-2049.jar bundle epl1 388 +org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar bundle epl1 1115 +org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar bundle epl1 337 +org.eclipse.equinox.p2.console_1.0.300.v20130327-2119.jar bundle epl1 1114 +org.eclipse.equinox.p2.core_2.3.0.v20130327-2119.jar bundle epl1 1113 +org.eclipse.equinox.p2.director.app_1.0.300.v20130819-1621.jar bundle epl1 1112 +org.eclipse.equinox.p2.directorywatcher_1.0.300.v20130327-2119.jar bundle epl1 1110 +org.eclipse.equinox.p2.director_2.3.0.v20130526-0335.jar bundle epl1 1111 +org.eclipse.equinox.p2.engine_2.3.0.v20130526-2122-wso2v1.jar bundle epl1 3873 +org.eclipse.equinox.p2.extensionlocation_1.2.100.v20130327-2119.jar bundle epl1 1109 +org.eclipse.equinox.p2.garbagecollector_1.0.200.v20130327-2119.jar bundle epl1 1108 +org.eclipse.equinox.p2.jarprocessor_1.0.300.v20130327-2119.jar bundle epl1 1107 +org.eclipse.equinox.p2.metadata.repository_1.2.100.v20130327-2119.jar bundle epl1 1106 +org.eclipse.equinox.p2.metadata_2.2.0.v20130523-1557.jar bundle epl1 1105 +org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar bundle epl1 306 +org.eclipse.equinox.p2.repository.tools_2.1.0.v20130327-2119.jar bundle epl1 1104 +org.eclipse.equinox.p2.repository_2.3.0.v20130412-2032.jar bundle epl1 1103 +org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511-wso2v1.jar bundle epl1 703 +org.eclipse.equinox.p2.touchpoint.natives_1.1.100.v20130327-2119.jar bundle epl1 1102 +org.eclipse.equinox.p2.transport.ecf_1.0.100.v20110902-0807.jar bundle epl1 369 +org.eclipse.equinox.p2.updatechecker_1.1.200.v20130327-2119.jar bundle epl1 1101 +org.eclipse.equinox.p2.updatesite_1.0.400.v20130515-2028.jar bundle epl1 1100 +org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar bundle epl1 1099 +org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar bundle epl1 1098 +org.eclipse.equinox.security_1.2.0.v20130424-1801.jar bundle epl1 1097 +org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20130327-2119.jar bundle epl1 1096 +org.eclipse.equinox.simpleconfigurator_1.0.400.v20130327-2119.jar bundle epl1 1095 +org.eclipse.equinox.util_1.0.500.v20130404-1337.jar bundle epl1 1094 +org.eclipse.jdt.core.compiler.batch_3.10.2.v20150120-1634.jar bundle epl1 1141 +org.eclipse.osgi.services_3.3.100.v20130513-1956.jar bundle epl1 1093 +org.eclipse.osgi_3.9.1.v20130814-1242.jar bundle epl1 1092 +org.eclipse.paho.client.mqttv3_1.0.2.jar bundle epl1 1769 +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.fusesource.leveldbjni_1.8.0.jar bundle bsd3 2006 +org.jaggeryjs.hostobjects.db_0.12.8.jar bundle apache2 1998 +org.jaggeryjs.hostobjects.feed_0.12.8.jar bundle apache2 1997 +org.jaggeryjs.hostobjects.file_0.12.8.jar bundle apache2 1996 +org.jaggeryjs.hostobjects.jaggeryparser_0.12.8.jar bundle apache2 1995 +org.jaggeryjs.hostobjects.log_0.12.8.jar bundle apache2 1994 +org.jaggeryjs.hostobjects.registry_0.12.8.jar bundle apache2 1993 +org.jaggeryjs.hostobjects.stream_0.12.8.jar bundle apache2 1992 +org.jaggeryjs.hostobjects.uri_0.12.8.jar bundle apache2 1991 +org.jaggeryjs.hostobjects.web_0.12.8.jar bundle apache2 1990 +org.jaggeryjs.hostobjects.xhr_0.12.8.jar bundle apache2 1989 +org.jaggeryjs.hostobjects.xslt_0.12.8.jar bundle apache2 1988 +org.jaggeryjs.jaggery.app.mgt.stub_0.12.8.jar bundle apache2 1987 +org.jaggeryjs.jaggery.app.mgt.ui_0.12.8.jar bundle apache2 1986 +org.jaggeryjs.jaggery.app.mgt_0.12.8.jar bundle apache2 1985 +org.jaggeryjs.jaggery.core_0.12.8.jar bundle apache2 1984 +org.jaggeryjs.jaggery.deployer_0.12.8.jar bundle apache2 1983 +org.jaggeryjs.jaggery.tools_0.12.8.jar bundle apache2 1982 +org.jaggeryjs.modules.process_1.5.5.jar bundle apache2 1953 +org.jaggeryjs.modules.sso_1.5.5.jar bundle apache2 1952 +org.jaggeryjs.modules.ws_1.5.5.jar bundle apache2 1981 +org.jaggeryjs.scriptengine_0.12.8.jar bundle apache2 1980 +org.jboss.netty_3.9.0.Final.jar bundle apache2 1298 +org.restlet_2.3.0.wso2v1.jar bundle apache2 4501 +org.roaringbitmap.RoaringBitmap_0.5.11.jar bundle apache2 2005 +org.sat4j.core_2.3.5.v201308161310.jar bundle epl1+lgpl21091 +org.sat4j.pb_2.3.5.v201308161310.jar bundle epl1+lgpl21090 +org.scala-lang.scala-library_2.10.5.v20150226-164155-VFINAL-88c5407613.jar bundle bsd 2004 +org.scala-lang.scala-reflect_2.10.5.v20150226-164155-VFINAL-88c5407613.jar bundle bsd 2003 +org.wso2.carbon.addressing_4.4.11.jar bundle apache2 10386 +org.wso2.carbon.analytics.activitydashboard.admin_1.3.3.jar bundle apache2 10834 +org.wso2.carbon.analytics.activitydashboard.commons_1.3.3.jar bundle apache2 10833 +org.wso2.carbon.analytics.activitydashboard.stub_1.3.3.jar bundle apache2 10832 +org.wso2.carbon.analytics.activitydashboard.ui_1.3.3.jar bundle apache2 10831 +org.wso2.carbon.analytics.api_1.3.3.jar bundle apache2 10830 +org.wso2.carbon.analytics.common.jmx.agent.stub_5.1.5.jar bundle apache2 11128 +org.wso2.carbon.analytics.common.jmx.agent.ui_5.1.5.jar bundle apache2 11127 +org.wso2.carbon.analytics.common.jmx.agent_5.1.5.jar bundle apache2 11126 +org.wso2.carbon.analytics.dashboard.ui_1.3.3.jar bundle apache2 10829 +org.wso2.carbon.analytics.dataservice.commons_1.3.3.jar bundle apache2 10828 +org.wso2.carbon.analytics.dataservice.core_1.3.3.jar bundle apache2 10827 +org.wso2.carbon.analytics.datasource.cassandra_1.3.3.jar bundle apache2 10826 +org.wso2.carbon.analytics.datasource.commons_1.3.3.jar bundle apache2 10825 +org.wso2.carbon.analytics.datasource.core_1.3.3.jar bundle apache2 10824 +org.wso2.carbon.analytics.datasource.hbase_1.3.3.jar bundle apache2 10823 +org.wso2.carbon.analytics.datasource.rdbms_1.3.3.jar bundle apache2 10822 +org.wso2.carbon.analytics.eventsink.template.deployer_1.3.3.jar bundle apache2 11125 +org.wso2.carbon.analytics.eventsink_1.3.3.jar bundle apache2 10821 +org.wso2.carbon.analytics.eventtable_1.3.3.jar bundle apache2 10820 +org.wso2.carbon.analytics.io.commons_1.3.3.jar bundle apache2 10819 +org.wso2.carbon.analytics.jsservice_1.3.3.jar bundle apache2 10818 +org.wso2.carbon.analytics.messageconsole.stub_1.3.3.jar bundle apache2 10817 +org.wso2.carbon.analytics.messageconsole.ui_1.3.3.jar bundle apache2 10816 +org.wso2.carbon.analytics.messageconsole_1.3.3.jar bundle apache2 10815 +org.wso2.carbon.analytics.servlet_1.3.3.jar bundle apache2 10814 +org.wso2.carbon.analytics.shared.spark.common.udf_1.0.3.jar bundle apache2 10812 +org.wso2.carbon.analytics.spark.admin_1.3.3.jar bundle apache2 10810 +org.wso2.carbon.analytics.spark.core_1.3.3.jar bundle apache2 10809 +org.wso2.carbon.analytics.spark.event_1.3.3.jar bundle apache2 10808 +org.wso2.carbon.analytics.spark.stub_1.3.3.jar bundle apache2 10807 +org.wso2.carbon.analytics.spark.template.deployer_1.3.3.jar bundle apache2 10806 +org.wso2.carbon.analytics.spark.ui_1.3.3.jar bundle apache2 10805 +org.wso2.carbon.analytics.spark.utils_1.3.3.jar bundle apache2 10804 +org.wso2.carbon.analytics.stream.persistence_1.3.3.jar bundle apache2 10803 +org.wso2.carbon.analytics.tools.backup_1.3.3.jar bundle apache2 10802 +org.wso2.carbon.analytics.tools.migration_1.3.3.jar bundle apache2 10801 +org.wso2.carbon.analytics.webservice.stub_1.3.3.jar bundle apache2 10800 +org.wso2.carbon.analytics.webservice_1.3.3.jar bundle apache2 10799 +org.wso2.carbon.application.deployer_4.4.11.jar bundle apache2 10385 +org.wso2.carbon.application.mgt.stub_4.5.4.jar bundle apache2 8688 +org.wso2.carbon.application.mgt.ui_4.5.4.jar bundle apache2 8686 +org.wso2.carbon.application.mgt_4.5.4.jar bundle apache2 8685 +org.wso2.carbon.application.upload_4.5.4.jar bundle apache2 8684 +org.wso2.carbon.authenticator.proxy_4.4.11.jar bundle apache2 10384 +org.wso2.carbon.authenticator.stub_4.4.11.jar bundle apache2 10383 +org.wso2.carbon.base_4.4.11.jar bundle apache2 10382 +org.wso2.carbon.bootstrap-4.4.11.jar bundle apache2 10337 +org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 +org.wso2.carbon.cluster.mgt.core_4.4.11.jar bundle apache2 10381 +org.wso2.carbon.core.bootup.validator_4.4.11.jar bundle apache2 10380 +org.wso2.carbon.core.commons.stub_4.4.11.jar bundle apache2 10378 +org.wso2.carbon.core.common_4.4.11.jar bundle apache2 10379 +org.wso2.carbon.core.services_4.4.11.jar bundle apache2 10377 +org.wso2.carbon.core_4.4.11.jar bundle apache2 10376 +org.wso2.carbon.cxf.ext-4.7.2.jar bundle apache2 10222 +org.wso2.carbon.dashboard.deployment_2.0.5.jar bundle apache2 11019 +org.wso2.carbon.dashboard.store.filter_2.0.5.jar bundle apache2 11018 +org.wso2.carbon.dashboard.template.deployer_5.1.5.jar bundle apache2 11124 +org.wso2.carbon.databridge.agent_5.1.5.jar bundle apache2 11017 +org.wso2.carbon.databridge.commons.binary_5.1.5.jar bundle apache2 11016 +org.wso2.carbon.databridge.commons.thrift_5.1.5.jar bundle apache2 11015 +org.wso2.carbon.databridge.commons_5.1.5.jar bundle apache2 11014 +org.wso2.carbon.databridge.core_5.1.5.jar bundle apache2 11013 +org.wso2.carbon.databridge.receiver.binary_5.1.5.jar bundle apache2 11123 +org.wso2.carbon.databridge.receiver.thrift_5.1.5.jar bundle apache2 11122 +org.wso2.carbon.databridge.streamdefn.filesystem_5.1.5.jar bundle apache2 11012 +org.wso2.carbon.datasource.reader.cassandra_4.3.6.jar bundle apache2 10667 +org.wso2.carbon.datasource.reader.hadoop_4.3.6.jar bundle apache2 10666 +org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 +org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.6.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.6.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.6.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.6.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.6.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.6.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.6.jar bundle apache2 10996 +org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 +org.wso2.carbon.event.admin_4.5.4.jar bundle apache2 8444 +org.wso2.carbon.event.application.deployer_5.1.5.jar bundle apache2 10990 +org.wso2.carbon.event.client.stub_4.5.4.jar bundle apache2 8442 +org.wso2.carbon.event.client_4.5.4.jar bundle apache2 8441 +org.wso2.carbon.event.common_4.5.4.jar bundle apache2 8440 +org.wso2.carbon.event.core_4.5.4.jar bundle apache2 8439 +org.wso2.carbon.event.flow.stub_2.1.4.jar bundle apache2 9713 +org.wso2.carbon.event.flow.ui_2.1.4.jar bundle apache2 9712 +org.wso2.carbon.event.flow_2.1.4.jar bundle apache2 9711 +org.wso2.carbon.event.input.adapter.core_5.1.5.jar bundle apache2 10989 +org.wso2.carbon.event.input.adapter.email_5.1.5.jar bundle apache2 11121 +org.wso2.carbon.event.input.adapter.filetail_5.1.5.jar bundle apache2 11120 +org.wso2.carbon.event.input.adapter.http_5.1.5.jar bundle apache2 11119 +org.wso2.carbon.event.input.adapter.jms_5.1.5.jar bundle apache2 11118 +org.wso2.carbon.event.input.adapter.kafka_5.1.5.jar bundle apache2 11117 +org.wso2.carbon.event.input.adapter.mqtt_5.1.5.jar bundle apache2 11116 +org.wso2.carbon.event.input.adapter.soap_5.1.5.jar bundle apache2 11115 +org.wso2.carbon.event.input.adapter.websocket.local_5.1.5.jar bundle apache2 11114 +org.wso2.carbon.event.input.adapter.websocket_5.1.5.jar bundle apache2 11113 +org.wso2.carbon.event.input.adapter.wso2event_5.1.5.jar bundle apache2 11112 +org.wso2.carbon.event.output.adapter.cassandra_5.1.5.jar bundle apache2 11111 +org.wso2.carbon.event.output.adapter.core_5.1.5.jar bundle apache2 10988 +org.wso2.carbon.event.output.adapter.email_5.1.5.jar bundle apache2 11110 +org.wso2.carbon.event.output.adapter.http_5.1.5.jar bundle apache2 11109 +org.wso2.carbon.event.output.adapter.jms_5.1.5.jar bundle apache2 11108 +org.wso2.carbon.event.output.adapter.kafka_5.1.5.jar bundle apache2 11107 +org.wso2.carbon.event.output.adapter.logger_5.1.5.jar bundle apache2 11106 +org.wso2.carbon.event.output.adapter.mqtt_5.1.5.jar bundle apache2 11105 +org.wso2.carbon.event.output.adapter.rdbms_5.1.5.jar bundle apache2 11104 +org.wso2.carbon.event.output.adapter.sms_5.1.5.jar bundle apache2 11103 +org.wso2.carbon.event.output.adapter.soap_5.1.5.jar bundle apache2 11102 +org.wso2.carbon.event.output.adapter.ui_5.1.5.jar bundle apache2 11101 +org.wso2.carbon.event.output.adapter.websocket.local_5.1.5.jar bundle apache2 11100 +org.wso2.carbon.event.output.adapter.websocket_5.1.5.jar bundle apache2 11099 +org.wso2.carbon.event.output.adapter.wso2event_5.1.5.jar bundle apache2 11098 +org.wso2.carbon.event.processor.admin_2.1.4.jar bundle apache2 9684 +org.wso2.carbon.event.processor.common_2.1.4.jar bundle apache2 9683 +org.wso2.carbon.event.processor.core_2.1.4.jar bundle apache2 9682 +org.wso2.carbon.event.processor.manager.commons_5.1.5.jar bundle apache2 11097 +org.wso2.carbon.event.processor.manager.core_5.1.5.jar bundle apache2 11096 +org.wso2.carbon.event.processor.stub_2.1.4.jar bundle apache2 9679 +org.wso2.carbon.event.processor.template.deployer_2.1.4.jar bundle apache2 9678 +org.wso2.carbon.event.processor.ui_2.1.4.jar bundle apache2 9677 +org.wso2.carbon.event.publisher.admin_5.1.5.jar bundle apache2 11095 +org.wso2.carbon.event.publisher.core_5.1.5.jar bundle apache2 11094 +org.wso2.carbon.event.publisher.stub_5.1.5.jar bundle apache2 11093 +org.wso2.carbon.event.publisher.ui_5.1.5.jar bundle apache2 11092 +org.wso2.carbon.event.receiver.admin_5.1.5.jar bundle apache2 11091 +org.wso2.carbon.event.receiver.core_5.1.5.jar bundle apache2 11090 +org.wso2.carbon.event.receiver.stub_5.1.5.jar bundle apache2 11089 +org.wso2.carbon.event.receiver.ui_5.1.5.jar bundle apache2 11088 +org.wso2.carbon.event.simulator.admin_2.1.4.jar bundle apache2 9666 +org.wso2.carbon.event.simulator.core_2.1.4.jar bundle apache2 9665 +org.wso2.carbon.event.simulator.stub_2.1.4.jar bundle apache2 9664 +org.wso2.carbon.event.simulator.ui_2.1.4.jar bundle apache2 9663 +org.wso2.carbon.event.statistics.stub_5.1.5.jar bundle apache2 11087 +org.wso2.carbon.event.statistics.ui_5.1.5.jar bundle apache2 11086 +org.wso2.carbon.event.statistics_5.1.5.jar bundle apache2 11085 +org.wso2.carbon.event.stream.admin_5.1.5.jar bundle apache2 10987 +org.wso2.carbon.event.stream.core_5.1.5.jar bundle apache2 10986 +org.wso2.carbon.event.stream.persistence.stub_5.1.5.jar bundle apache2 10985 +org.wso2.carbon.event.stream.stub_5.1.5.jar bundle apache2 10984 +org.wso2.carbon.event.stream.template.deployer_5.1.5.jar bundle apache2 11084 +org.wso2.carbon.event.stream.ui_5.1.5.jar bundle apache2 10983 +org.wso2.carbon.event.template.manager.admin_5.1.5.jar bundle apache2 11083 +org.wso2.carbon.event.template.manager.core_5.1.5.jar bundle apache2 11082 +org.wso2.carbon.event.template.manager.stub_5.1.5.jar bundle apache2 11081 +org.wso2.carbon.event.template.manager.ui_5.1.5.jar bundle apache2 11080 +org.wso2.carbon.event.tracer.stub_5.1.5.jar bundle apache2 11079 +org.wso2.carbon.event.tracer.ui_5.1.5.jar bundle apache2 11078 +org.wso2.carbon.event.tracer_5.1.5.jar bundle apache2 11077 +org.wso2.carbon.event.ws_4.5.4.jar bundle apache2 8417 +org.wso2.carbon.feature.mgt.core_4.4.11.jar bundle apache2 10375 +org.wso2.carbon.feature.mgt.services_4.4.11.jar bundle apache2 10374 +org.wso2.carbon.feature.mgt.stub_4.4.11.jar bundle apache2 10373 +org.wso2.carbon.feature.mgt.ui_4.4.11.jar bundle apache2 10372 +org.wso2.carbon.framework.exporter_4.4.11.jar bundle apache2 10371 +org.wso2.carbon.gadget.template.deployer_5.1.5.jar bundle apache2 11076 +org.wso2.carbon.i18n_4.4.11.jar bundle apache2 10370 +org.wso2.carbon.identity.application.common_5.2.0.jar bundle apache2 8391 +org.wso2.carbon.identity.authentication_4.5.4.jar bundle apache2 8609 +org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.3.jar bundle apache2 9428 +org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.1.1.jar bundle apache2 8382 +org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.1.3.jar bundle apache2 9427 +org.wso2.carbon.identity.authenticator.saml2.sso_5.1.3.jar bundle apache2 9426 +org.wso2.carbon.identity.base_5.2.0.jar bundle apache2 8378 +org.wso2.carbon.identity.core.ui_5.2.0.jar bundle apache2 8377 +org.wso2.carbon.identity.core_5.2.0.jar bundle apache2 8376 +org.wso2.carbon.identity.jwt.client.extension_2.0.7.jar bundle apache2 10969 +org.wso2.carbon.identity.oauth.stub_5.3.1.jar bundle apache2 10505 +org.wso2.carbon.identity.sso.agent_5.1.0.jar bundle apache2 8353 +org.wso2.carbon.identity.sso.saml.stub_5.1.1.jar bundle apache2 8352 +org.wso2.carbon.identity.user.store.configuration.deployer_5.2.0.jar bundle apache2 8332 +org.wso2.carbon.identity.user.store.configuration.stub_5.2.0.jar bundle apache2 8331 +org.wso2.carbon.identity.user.store.configuration.ui_5.2.0.jar bundle apache2 8330 +org.wso2.carbon.identity.user.store.configuration_5.2.0.jar bundle apache2 8329 +org.wso2.carbon.identity.user.store.count.stub_5.2.0.jar bundle apache2 8328 +org.wso2.carbon.identity.user.store.count_5.2.0.jar bundle apache2 8327 +org.wso2.carbon.logging-4.4.11.jar bundle apache2 10339 +org.wso2.carbon.logging.admin.stub_4.5.4.jar bundle apache2 8313 +org.wso2.carbon.logging.admin.ui_4.5.4.jar bundle apache2 8312 +org.wso2.carbon.logging.service_4.5.4.jar bundle apache2 8311 +org.wso2.carbon.logging.view.stub_4.5.4.jar bundle apache2 8310 +org.wso2.carbon.logging.view.ui_4.5.4.jar bundle apache2 8309 +org.wso2.carbon.logging_4.4.11.jar bundle apache2 10369 +org.wso2.carbon.metrics.common_1.2.2.jar bundle apache2 8818 +org.wso2.carbon.metrics.das.reporter_1.2.2.jar bundle apache2 8817 +org.wso2.carbon.metrics.data.common_1.2.2.jar bundle apache2 8816 +org.wso2.carbon.metrics.data.service.stub_1.2.2.jar bundle apache2 8815 +org.wso2.carbon.metrics.data.service_1.2.2.jar bundle apache2 8814 +org.wso2.carbon.metrics.impl_1.2.2.jar bundle apache2 8813 +org.wso2.carbon.metrics.jdbc.reporter_1.2.2.jar bundle apache2 8812 +org.wso2.carbon.metrics.manager_1.2.2.jar bundle apache2 8811 +org.wso2.carbon.metrics.view.ui_1.2.2.jar bundle apache2 8810 +org.wso2.carbon.ndatasource.common_4.4.11.jar bundle apache2 10368 +org.wso2.carbon.ndatasource.core_4.4.11.jar bundle apache2 10367 +org.wso2.carbon.ndatasource.datasources_4.5.4.jar bundle apache2 8571 +org.wso2.carbon.ndatasource.rdbms_4.4.11.jar bundle apache2 10366 +org.wso2.carbon.ndatasource.stub_4.5.4.jar bundle apache2 8570 +org.wso2.carbon.ndatasource.ui_4.5.4.jar bundle apache2 8569 +org.wso2.carbon.ntask.common_4.5.4.jar bundle apache2 8568 +org.wso2.carbon.ntask.core_4.5.4.jar bundle apache2 8567 +org.wso2.carbon.ntask.solutions_4.5.4.jar bundle apache2 8566 +org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 +org.wso2.carbon.qpid.stub_4.5.4.jar bundle apache2 8298 +org.wso2.carbon.queuing_4.4.11.jar bundle apache2 10364 +org.wso2.carbon.registry.admin.api_4.5.8.jar bundle apache2 10275 +org.wso2.carbon.registry.api_4.4.11.jar bundle apache2 10363 +org.wso2.carbon.registry.common.ui_4.5.8.jar bundle apache2 10274 +org.wso2.carbon.registry.common_4.5.8.jar bundle apache2 10273 +org.wso2.carbon.registry.core_4.4.11.jar bundle apache2 10362 +org.wso2.carbon.registry.indexing_4.5.8.jar bundle apache2 10266 +org.wso2.carbon.registry.properties.stub_4.5.8.jar bundle apache2 10262 +org.wso2.carbon.registry.properties.ui_4.5.8.jar bundle apache2 10261 +org.wso2.carbon.registry.properties_4.5.8.jar bundle apache2 10260 +org.wso2.carbon.registry.resource.stub_4.5.8.jar bundle apache2 10256 +org.wso2.carbon.registry.resource.ui_4.5.8.jar bundle apache2 10255 +org.wso2.carbon.registry.resource_4.5.8.jar bundle apache2 10254 +org.wso2.carbon.registry.search.stub_4.5.8.jar bundle apache2 10253 +org.wso2.carbon.registry.search.ui_4.5.8.jar bundle apache2 10252 +org.wso2.carbon.registry.search_4.5.8.jar bundle apache2 10251 +org.wso2.carbon.registry.server_4.4.11.jar bundle apache2 10361 +org.wso2.carbon.registry.servlet_4.5.8.jar bundle apache2 10250 +org.wso2.carbon.remote-tasks.stub_4.5.4.jar bundle apache2 8529 +org.wso2.carbon.roles.mgt.stub_4.4.11.jar bundle apache2 10360 +org.wso2.carbon.roles.mgt.ui_4.4.11.jar bundle apache2 10359 +org.wso2.carbon.roles.mgt_4.4.11.jar bundle apache2 10358 +org.wso2.carbon.securevault_4.4.11.jar bundle apache2 10357 +org.wso2.carbon.security.mgt.stub_5.2.0.jar bundle apache2 8272 +org.wso2.carbon.security.mgt.ui_5.2.0.jar bundle apache2 8271 +org.wso2.carbon.security.mgt_5.2.0.jar bundle apache2 8270 +org.wso2.carbon.server-4.4.11.jar bundle apache2 10338 +org.wso2.carbon.server.admin.common_4.4.11.jar bundle apache2 10356 +org.wso2.carbon.server.admin.stub_4.4.11.jar bundle apache2 10355 +org.wso2.carbon.server.admin.ui_4.4.11.jar bundle apache2 10354 +org.wso2.carbon.server.admin_4.4.11.jar bundle apache2 10353 +org.wso2.carbon.siddhi.geo.event.fuser_2.1.4.jar bundle apache2 9644 +org.wso2.carbon.siddhi.geo.event.notifier_2.1.4.jar bundle apache2 9643 +org.wso2.carbon.siddhi.metrics.core_2.1.4.jar bundle apache2 9642 +org.wso2.carbon.siddhi.tryit.ui_2.1.4.jar bundle apache2 9641 +org.wso2.carbon.tenant.common.stub_4.5.4.jar bundle apache2 8258 +org.wso2.carbon.tenant.common_4.5.4.jar bundle apache2 8257 +org.wso2.carbon.tenant.dispatcher_4.6.1.jar bundle apache2 10242 +org.wso2.carbon.tenant.keystore.mgt_4.6.1.jar bundle apache2 10241 +org.wso2.carbon.tenant.mgt.core_4.6.1.jar bundle apache2 10240 +org.wso2.carbon.tenant.mgt.stub_4.6.1.jar bundle apache2 10239 +org.wso2.carbon.tenant.mgt.ui_4.6.1.jar bundle apache2 10238 +org.wso2.carbon.tenant.mgt_4.6.1.jar bundle apache2 10237 +org.wso2.carbon.tenant.redirector.servlet.stub_4.6.1.jar bundle apache2 10236 +org.wso2.carbon.tenant.redirector.servlet.ui_4.6.1.jar bundle apache2 10235 +org.wso2.carbon.tenant.redirector.servlet_4.6.1.jar bundle apache2 10234 +org.wso2.carbon.tenant.sso.redirector.ui_4.6.1.jar bundle apache2 10233 +org.wso2.carbon.tenant.theme.mgt_4.6.1.jar bundle apache2 10232 +org.wso2.carbon.tomcat.ext_4.4.11.jar bundle apache2 10351 +org.wso2.carbon.tomcat.patch_4.7.2.jar bundle apache2 10229 +org.wso2.carbon.tomcat_4.4.11.jar bundle apache2 10350 +org.wso2.carbon.tryit.ui_4.5.4.jar bundle apache2 8750 +org.wso2.carbon.tryit_4.5.4.jar bundle apache2 8748 +org.wso2.carbon.ui.menu.general_4.4.11.jar bundle apache2 10349 +org.wso2.carbon.ui.menu.registry_4.4.7.jar bundle apache2 8503 +org.wso2.carbon.ui.menu.stratos_2.2.0.jar bundle apache2 2202 +org.wso2.carbon.ui.menu.tools_4.4.7.jar bundle apache2 8238 +org.wso2.carbon.ui_4.4.11.jar bundle apache2 10348 +org.wso2.carbon.user.api_4.4.11.jar bundle apache2 10347 +org.wso2.carbon.user.core_4.4.11.jar bundle apache2 10346 +org.wso2.carbon.user.mgt.common_5.2.0.jar bundle apache2 8230 +org.wso2.carbon.user.mgt.stub_5.2.0.jar bundle apache2 8229 +org.wso2.carbon.user.mgt.ui_5.2.0.jar bundle apache2 8228 +org.wso2.carbon.user.mgt.workflow.stub_5.2.0.jar bundle apache2 8227 +org.wso2.carbon.user.mgt_5.2.0.jar bundle apache2 8224 +org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 +org.wso2.carbon.webapp.deployer_4.7.2.jar bundle apache2 10227 +org.wso2.carbon.webapp.mgt_4.7.2.jar bundle apache2 10223 +org.wso2.carbon.wsdl2form-4.5.4.jar bundle apache2 8749 +org.wso2.ciphertool-1.0.0-wso2v3.jar bundle apache2 4038 +org.wso2.das.multitenancy.dashboard.ui_3.1.0.jar bundle apache2 9741 +org.wso2.das.styles_3.1.0.jar bundle apache2 9740 +org.wso2.extension.siddhi.execution.json_3.0.6.jar bundle apache2 11075 +org.wso2.securevault_1.0.0.wso2v2.jar bundle apache2 768 +org.xerial.snappy.snappy-java_1.1.2.1.jar bundle apache2 2002 +org.yaml.snakeyaml_1.11.0.jar bundle apache2 1222 +oro_2.0.8.wso2v1.jar bundle apache2 9739 +paranamer_2.6.0.wso2v1.jar bundle bsd 4644 +parquet-hadoop_1.7.0.wso2v1.jar bundle apache2 9738 +patch.jar jarinbundle epl1 1137 +pdepublishing-ant.jar jar epl1 524 +pdepublishing.jar jar epl1 525 +perf4j_0.9.12.wso2v1.jar bundle apache2 832 +poi-ooxml_3.14.0.wso2v1.jar bundle apache2 8218 +poi-scratchpad_3.14.0.wso2v1.jar bundle apache2 8217 +poi_3.14.0.wso2v1.jar bundle apache2 8216 +quartz_2.1.1.wso2v1.jar bundle apache2 975 +rampart-core_1.6.1.wso2v21.jar bundle apache2 8215 +rampart-policy_1.6.1.wso2v21.jar bundle apache2 8214 +rampart-trust_1.6.1.wso2v21.jar bundle apache2 8213 +rome_0.9.0.wso2v1.jar bundle apache2 930 +saxon.bps_9.0.0.x-wso2v1.jar bundle mpl11 985 +siddhi-core_3.1.2.jar bundle apache2 1979 +siddhi-extension-eval-script_3.1.2.jar bundle apache2 1978 +siddhi-extension-event-table_3.1.2.jar bundle apache2 1977 +siddhi-extension-geo_3.1.2.jar bundle apache2 1976 +siddhi-extension-kalman-filter_3.1.2.jar bundle apache2 1975 +siddhi-extension-map_3.1.2.jar bundle apache2 1974 +siddhi-extension-markov-models_3.1.2.jar bundle apache2 1973 +siddhi-extension-math_3.1.2.jar bundle apache2 1972 +siddhi-extension-regex_3.1.2.jar bundle apache2 1971 +siddhi-extension-reorder_3.1.2.jar bundle apache2 1970 +siddhi-extension-string_3.1.2.jar bundle apache2 1969 +siddhi-extension-timeseries_3.1.2.jar bundle apache2 1967 +siddhi-extension-time_3.1.2.jar bundle apache2 1968 +siddhi-query-api_3.1.2.jar bundle apache2 1966 +siddhi-query-compiler_3.1.2.jar bundle apache2 1965 +slf4j.api_1.6.1.jar bundle mit 354 +slf4j.api_1.7.13.jar bundle mit 1606 +slf4j.api_1.7.21.jar bundle mit 1852 +slf4j.log4j12_1.6.1.jar bundle mit 346 +slf4j.log4j12_1.7.13.jar bundle mit 1605 +slf4j.log4j12_1.7.21.jar bundle mit 1851 +slf4j_1.5.10.wso2v1.jar bundle mit 1429 +smackx_3.0.4.wso2v1.jar bundle apache2 1871 +smack_3.0.4.wso2v1.jar bundle apache2 1493 +solr_5.2.1.wso2v1.jar bundle apache2 4384 +spark-core_2.10_1.6.2.wso2v2.jar bundle apache2 10597 +spark-sql_2.10_1.6.2.wso2v1.jar bundle apache2 9735 +spark-streaming_2.10_1.6.2.wso2v1.jar bundle apache2 9734 +spatial4j_0.4.1.wso2v1.jar bundle apache2 4045 +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.2.9.wso2v1.jar bundle apache2 4044 +stax2-api-3.1.4.jar bundle bsd 1089 +storm-core_0.10.1.wso2v1.jar bundle apache2 9638 +stream_2.9.5.wso2v1.jar bundle apache2 9733 +svn-client-adapter_1.10.9.wso2v1.jar bundle apache2 4043 +tachyon-client_0.8.2.wso2v1.jar bundle apache2 9732 +tcpmon-1.0.jar jar bsd 255 +tiles-jsp_2.0.5.wso2v1.jar bundle apache2 989 +tomcat-annotations-api-7.0.73.jar jar apache2 2044 +tomcat-catalina-ha_7.0.73.wso2v1.jar bundle apache2 10344 +tomcat-el-api_7.0.73.wso2v1.jar bundle apache2 10343 +tomcat-jsp-api_7.0.73.wso2v1.jar bundle apache2 10342 +tomcat-juli-7.0.73.jar jar apache2 2043 +tomcat-servlet-api_7.0.73.wso2v1.jar bundle apache2 10341 +tomcat_7.0.73.wso2v1.jar bundle apache2 10340 +tyrus-standalone-client_1.7.0.wso2v1.jar bundle cddl+gpl 4226 +uncommons-maths_1.2.2.wso2v1.jar bundle apache2 4636 +velocity-1.7.jar bundle apache2 509 +wadl-core-1.1.3.wso2v2.jar bundle apache2 4069 +woden_1.0.0.M9-wso2v1.jar bundle apache2 3755 +woodstox-core-asl-4.4.1.jar bundle apache2 1087 +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.5.11.wso2v14.jar bundle apache2 8206 +xalan-2.7.1.wso2v1.jar bundle apache2 659 +xalan-2.7.2.wso2v2.jar bundle apache2 8202 +xercesImpl-2.8.1.wso2v2.jar bundle apache2 663 +xml-apis-1.4.01.jar jar apache2 1793 +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.1.0.jar bundle apache2 1145 +XmlSchema_1.4.7.wso2v3.jar bundle apache2 3585 +xmlsec-1.5.8.jar bundle apache2 1144 + + + +The license types used by the above libraries and their information is given below: + +bouncy Bouncy Castle License + http://www.bouncycastle.org/licence.html +bsd Berkeley License + http://www.opensource.org/licenses/bsd-license.php +apache2 Apache License Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.html +mit MIT License + http://www.opensource.org/licenses/mit-license.php +cddl1 Common Development and Distribution License + http://www.opensource.org/licenses/cddl1.php +mpl10 Mozilla Public License 1.0 + http://www.mozilla.org/MPL/ +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 +mpl11 Mozilla Public License 1.0 + http://www.mozilla.org/MPL/MPL-1.1.html +cddl+gpl CDDL + GPLv2 + https://glassfish.dev.java.net/public/CDDL+GPL.html +bsd3 BSD-3 + http://opensource.org/licenses/BSD-3-Clause +epl1 Eclipse Public License + http://www.eclipse.org/legal/epl-v10.html \ No newline at end of file From 9dbab2cf2bf5c4ca2cae6fc05e6f135473d51a90 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 10:13:09 +0530 Subject: [PATCH 30/47] Updating LICENSE.txt --- .../src/main/resources/LICENSE.txt | 16 ++--- .../src/main/resources/LICENSE.txt | 2 +- modules/core/distribution/LICENSE.txt | 66 +++++++++---------- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/modules/analytics/distribution/src/main/resources/LICENSE.txt b/modules/analytics/distribution/src/main/resources/LICENSE.txt index 057fac71..42da7a04 100644 --- a/modules/analytics/distribution/src/main/resources/LICENSE.txt +++ b/modules/analytics/distribution/src/main/resources/LICENSE.txt @@ -314,13 +314,13 @@ org.wso2.carbon.datasource.reader.cassandra_4.3.6.jar org.wso2.carbon.datasource.reader.hadoop_4.3.6.jar bundle apache2 10666 org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 -org.wso2.carbon.device.mgt.input.adapter.extension_3.0.6.jar bundle apache2 11003 -org.wso2.carbon.device.mgt.input.adapter.http_3.0.6.jar bundle apache2 11002 -org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.6.jar bundle apache2 11001 -org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.6.jar bundle apache2 11000 -org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.6.jar bundle apache2 10998 -org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.6.jar bundle apache2 10997 -org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.6.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.8.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.8.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.8.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.8.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.8.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.8.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.8.jar bundle apache2 10996 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 org.wso2.carbon.event.admin_4.5.4.jar bundle apache2 8444 org.wso2.carbon.event.application.deployer_5.1.5.jar bundle apache2 10990 @@ -410,7 +410,7 @@ org.wso2.carbon.identity.authenticator.saml2.sso_5.1.3.jar org.wso2.carbon.identity.base_5.2.0.jar bundle apache2 8378 org.wso2.carbon.identity.core.ui_5.2.0.jar bundle apache2 8377 org.wso2.carbon.identity.core_5.2.0.jar bundle apache2 8376 -org.wso2.carbon.identity.jwt.client.extension_2.0.7.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.8.jar bundle apache2 10969 org.wso2.carbon.identity.oauth.stub_5.3.1.jar bundle apache2 10505 org.wso2.carbon.identity.sso.agent_5.1.0.jar bundle apache2 8353 org.wso2.carbon.identity.sso.saml.stub_5.1.1.jar bundle apache2 8352 diff --git a/modules/broker/distribution/src/main/resources/LICENSE.txt b/modules/broker/distribution/src/main/resources/LICENSE.txt index 33021305..fbabcf7c 100644 --- a/modules/broker/distribution/src/main/resources/LICENSE.txt +++ b/modules/broker/distribution/src/main/resources/LICENSE.txt @@ -171,7 +171,7 @@ org.wso2.carbon.andes.event.admin_3.1.3.jar org.wso2.carbon.andes.event.core_3.1.3.jar bundle apache2 11065 org.wso2.carbon.andes.event.stub_3.1.3.jar bundle apache2 11064 org.wso2.carbon.andes.event.ui_3.1.3.jar bundle apache2 11063 -org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.6.jar bundle apache2 11062 +org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.8.jar bundle apache2 11062 org.wso2.carbon.andes.mgt.stub_3.1.3.jar bundle apache2 11061 org.wso2.carbon.andes.stub_3.1.3.jar bundle apache2 11060 org.wso2.carbon.andes.ui_3.1.3.jar bundle apache2 11059 diff --git a/modules/core/distribution/LICENSE.txt b/modules/core/distribution/LICENSE.txt index a2606304..ee0ce25c 100644 --- a/modules/core/distribution/LICENSE.txt +++ b/modules/core/distribution/LICENSE.txt @@ -259,9 +259,9 @@ org.wso2.carbon.analytics.api_1.3.3.jar org.wso2.carbon.analytics.dataservice.commons_1.3.3.jar bundle apache2 10828 org.wso2.carbon.analytics.datasource.commons_1.3.3.jar bundle apache2 10825 org.wso2.carbon.analytics.io.commons_1.3.3.jar bundle apache2 10819 -org.wso2.carbon.apimgt.annotations_2.0.7.jar bundle apache2 11056 +org.wso2.carbon.apimgt.annotations_2.0.8.jar bundle apache2 11056 org.wso2.carbon.apimgt.api_6.1.35.jar bundle apache2 11055 -org.wso2.carbon.apimgt.application.extension_2.0.7.jar bundle apache2 11054 +org.wso2.carbon.apimgt.application.extension_2.0.8.jar bundle apache2 11054 org.wso2.carbon.apimgt.authenticator.oidc.stub_6.1.35.jar bundle apache2 11053 org.wso2.carbon.apimgt.authenticator.oidc.ui_6.1.35.jar bundle apache2 11052 org.wso2.carbon.apimgt.authenticator.oidc_6.1.35.jar bundle apache2 11051 @@ -269,7 +269,7 @@ org.wso2.carbon.apimgt.core_6.1.35.jar org.wso2.carbon.apimgt.gateway.stub_6.1.35.jar bundle apache2 11049 org.wso2.carbon.apimgt.gateway_6.1.35.jar bundle apache2 11048 org.wso2.carbon.apimgt.handlers.security.stub_6.1.35.jar bundle apache2 11047 -org.wso2.carbon.apimgt.handlers_2.0.7.jar bundle apache2 11046 +org.wso2.carbon.apimgt.handlers_2.0.8.jar bundle apache2 11046 org.wso2.carbon.apimgt.hostobjects.oidc_6.1.35.jar bundle apache2 11045 org.wso2.carbon.apimgt.hostobjects_6.1.35.jar bundle apache2 11044 org.wso2.carbon.apimgt.impl_6.1.35.jar bundle apache2 11043 @@ -281,7 +281,7 @@ org.wso2.carbon.apimgt.statsupdate.stub_6.1.35.jar org.wso2.carbon.apimgt.tier.cache.stub_6.1.35.jar bundle apache2 11037 org.wso2.carbon.apimgt.usage.client_6.1.35.jar bundle apache2 11036 org.wso2.carbon.apimgt.usage.publisher_6.1.35.jar bundle apache2 11035 -org.wso2.carbon.apimgt.webapp.publisher_2.0.7.jar bundle apache2 11034 +org.wso2.carbon.apimgt.webapp.publisher_2.0.8.jar bundle apache2 11034 org.wso2.carbon.application.deployer.synapse_4.6.9.jar bundle apache2 10902 org.wso2.carbon.application.deployer.webapp_4.7.2.jar bundle apache2 11033 org.wso2.carbon.application.deployer_4.4.11.jar bundle apache2 10385 @@ -295,7 +295,7 @@ org.wso2.carbon.appmgt.core_1.2.10.jar org.wso2.carbon.appmgt.gateway.stub_1.2.10.jar bundle apache2 11030 org.wso2.carbon.appmgt.hostobjects_1.2.10.jar bundle apache2 11029 org.wso2.carbon.appmgt.impl_1.2.10.jar bundle apache2 11028 -org.wso2.carbon.appmgt.mdm.osgiconnector_3.0.6.jar bundle apache2 11027 +org.wso2.carbon.appmgt.mdm.osgiconnector_3.0.8.jar bundle apache2 11027 org.wso2.carbon.appmgt.mdm.restconnector_1.2.10.jar bundle apache2 11026 org.wso2.carbon.appmgt.mdm.wso2emm_1.1.4.jar bundle apache2 8176 org.wso2.carbon.appmgt.mobile_1.2.10.jar bundle apache2 11025 @@ -309,7 +309,7 @@ org.wso2.carbon.bam.presentation.stub_4.2.0.jar org.wso2.carbon.base_4.4.11.jar bundle apache2 10382 org.wso2.carbon.bootstrap-4.4.11.jar bundle apache2 10337 org.wso2.carbon.captcha.mgt_4.2.0.jar bundle apache2 2154 -org.wso2.carbon.certificate.mgt.core_2.0.7.jar bundle apache2 11020 +org.wso2.carbon.certificate.mgt.core_2.0.8.jar bundle apache2 11020 org.wso2.carbon.claim.mgt.stub_5.7.5.jar bundle apache2 10773 org.wso2.carbon.claim.mgt.ui_5.7.5.jar bundle apache2 10772 org.wso2.carbon.claim.mgt_5.7.5.jar bundle apache2 10771 @@ -331,31 +331,31 @@ org.wso2.carbon.databridge.core_5.1.5.jar org.wso2.carbon.databridge.streamdefn.filesystem_5.1.5.jar bundle apache2 11012 org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 -org.wso2.carbon.device.mgt.analytics.dashboard_2.0.7.jar bundle apache2 11011 -org.wso2.carbon.device.mgt.analytics.data.publisher_2.0.7.jar bundle apache2 11010 -org.wso2.carbon.device.mgt.common_2.0.7.jar bundle apache2 11009 -org.wso2.carbon.device.mgt.core_2.0.7.jar bundle apache2 11008 -org.wso2.carbon.device.mgt.extensions.device.type.deployer_2.0.7.jar bundle apache2 11007 -org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt_2.0.7.jar bundle apache2 11006 -org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp_2.0.7.jar bundle apache2 11005 -org.wso2.carbon.device.mgt.extensions_2.0.7.jar bundle apache2 11004 -org.wso2.carbon.device.mgt.input.adapter.extension_3.0.6.jar bundle apache2 11003 -org.wso2.carbon.device.mgt.input.adapter.http_3.0.6.jar bundle apache2 11002 -org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.6.jar bundle apache2 11001 -org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.6.jar bundle apache2 11000 -org.wso2.carbon.device.mgt.oauth.extensions_2.0.7.jar bundle apache2 10999 -org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.6.jar bundle apache2 10998 -org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.6.jar bundle apache2 10997 -org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.6.jar bundle apache2 10996 -org.wso2.carbon.device.mgt.url.printer_2.0.7.jar bundle apache2 10995 +org.wso2.carbon.device.mgt.analytics.dashboard_2.0.8.jar bundle apache2 11011 +org.wso2.carbon.device.mgt.analytics.data.publisher_2.0.8.jar bundle apache2 11010 +org.wso2.carbon.device.mgt.common_2.0.8.jar bundle apache2 11009 +org.wso2.carbon.device.mgt.core_2.0.8.jar bundle apache2 11008 +org.wso2.carbon.device.mgt.extensions.device.type.deployer_2.0.8.jar bundle apache2 11007 +org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt_2.0.8.jar bundle apache2 11006 +org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp_2.0.8.jar bundle apache2 11005 +org.wso2.carbon.device.mgt.extensions_2.0.8.jar bundle apache2 11004 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.8.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.8.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.8.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.8.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.oauth.extensions_2.0.8.jar bundle apache2 10999 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.8.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.8.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.8.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.url.printer_2.0.8.jar bundle apache2 10995 org.wso2.carbon.directory.server.manager.common_5.7.5.jar bundle apache2 10770 org.wso2.carbon.directory.server.manager.stub_5.7.5.jar bundle apache2 10769 org.wso2.carbon.directory.server.manager.ui_5.7.5.jar bundle apache2 10768 org.wso2.carbon.directory.server.manager_5.7.5.jar bundle apache2 10767 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 -org.wso2.carbon.dynamic.client.registration_2.0.7.jar bundle apache2 10994 -org.wso2.carbon.dynamic.client.web.app.registration_2.0.7.jar bundle apache2 10993 -org.wso2.carbon.email.sender.core_2.0.7.jar bundle apache2 10992 +org.wso2.carbon.dynamic.client.registration_2.0.8.jar bundle apache2 10994 +org.wso2.carbon.dynamic.client.web.app.registration_2.0.8.jar bundle apache2 10993 +org.wso2.carbon.email.sender.core_2.0.8.jar bundle apache2 10992 org.wso2.carbon.email.verification.stub_4.5.4.jar bundle apache2 8678 org.wso2.carbon.email.verification.ui_4.5.4.jar bundle apache2 8677 org.wso2.carbon.email.verification_4.5.4.jar bundle apache2 8676 @@ -416,7 +416,7 @@ org.wso2.carbon.identity.application.mgt.stub_5.7.5.jar org.wso2.carbon.identity.application.mgt.ui_5.7.5.jar bundle apache2 10762 org.wso2.carbon.identity.application.mgt_5.7.5.jar bundle apache2 10761 org.wso2.carbon.identity.authentication_4.5.4.jar bundle apache2 8609 -org.wso2.carbon.identity.authenticator.backend.oauth_2.0.7.jar bundle apache2 10978 +org.wso2.carbon.identity.authenticator.backend.oauth_2.0.8.jar bundle apache2 10978 org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.6.jar bundle apache2 10977 org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.1.6.jar bundle apache2 10976 org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.1.6.jar bundle apache2 10975 @@ -436,7 +436,7 @@ org.wso2.carbon.identity.entitlement.stub_5.6.89.jar org.wso2.carbon.identity.entitlement_5.7.5.jar bundle apache2 10749 org.wso2.carbon.identity.governance.stub_5.7.5.jar bundle apache2 10747 org.wso2.carbon.identity.inbound.metadata.saml2_0.1.1.jar bundle apache2 10970 -org.wso2.carbon.identity.jwt.client.extension_2.0.7.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.8.jar bundle apache2 10969 org.wso2.carbon.identity.notification.mgt_5.7.5.jar bundle apache2 10742 org.wso2.carbon.identity.oauth.common_5.3.4.jar bundle apache2 10944 org.wso2.carbon.identity.oauth.dcr_5.3.4.jar bundle apache2 10943 @@ -550,10 +550,10 @@ org.wso2.carbon.ntask.core_4.5.4.jar org.wso2.carbon.ntask.solutions_4.5.4.jar bundle apache2 8566 org.wso2.carbon.operation.mgt_4.7.2.jar bundle apache2 10279 org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 -org.wso2.carbon.policy.decision.point_2.0.7.jar bundle apache2 10958 -org.wso2.carbon.policy.information.point_2.0.7.jar bundle apache2 10957 -org.wso2.carbon.policy.mgt.common_2.0.7.jar bundle apache2 10956 -org.wso2.carbon.policy.mgt.core_2.0.7.jar bundle apache2 10955 +org.wso2.carbon.policy.decision.point_2.0.8.jar bundle apache2 10958 +org.wso2.carbon.policy.information.point_2.0.8.jar bundle apache2 10957 +org.wso2.carbon.policy.mgt.common_2.0.8.jar bundle apache2 10956 +org.wso2.carbon.policy.mgt.core_2.0.8.jar bundle apache2 10955 org.wso2.carbon.priority.executors.stub_4.6.9.jar bundle apache2 10954 org.wso2.carbon.priority.executors_4.6.9.jar bundle apache2 10858 org.wso2.carbon.proxyadmin.common_4.6.9.jar bundle apache2 10857 @@ -662,7 +662,7 @@ org.wso2.carbon.user.mgt.ui_5.7.5.jar org.wso2.carbon.user.mgt.workflow.stub_5.7.5.jar bundle apache2 10702 org.wso2.carbon.user.mgt_5.7.5.jar bundle apache2 10701 org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 -org.wso2.carbon.webapp.authenticator.framework_2.0.7.jar bundle apache2 10951 +org.wso2.carbon.webapp.authenticator.framework_2.0.8.jar bundle apache2 10951 org.wso2.carbon.webapp.deployer_4.7.2.jar bundle apache2 10227 org.wso2.carbon.webapp.list.ui_4.7.2.jar bundle apache2 10226 org.wso2.carbon.webapp.mgt.stub_4.2.0.jar bundle apache2 2083 From 1015ca40dc401ed285fb8605ed17cf62e9eeda2e Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 10:28:05 +0530 Subject: [PATCH 31/47] Updating LICENSE.txt --- .../distribution/src/main/resources/LICENSE.txt | 14 +++++++------- .../distribution/src/main/resources/LICENSE.txt | 2 +- modules/core/distribution/LICENSE.txt | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/analytics/distribution/src/main/resources/LICENSE.txt b/modules/analytics/distribution/src/main/resources/LICENSE.txt index 42da7a04..15985ca4 100644 --- a/modules/analytics/distribution/src/main/resources/LICENSE.txt +++ b/modules/analytics/distribution/src/main/resources/LICENSE.txt @@ -314,13 +314,13 @@ org.wso2.carbon.datasource.reader.cassandra_4.3.6.jar org.wso2.carbon.datasource.reader.hadoop_4.3.6.jar bundle apache2 10666 org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 -org.wso2.carbon.device.mgt.input.adapter.extension_3.0.8.jar bundle apache2 11003 -org.wso2.carbon.device.mgt.input.adapter.http_3.0.8.jar bundle apache2 11002 -org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.8.jar bundle apache2 11001 -org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.8.jar bundle apache2 11000 -org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.8.jar bundle apache2 10998 -org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.8.jar bundle apache2 10997 -org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.8.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.7.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.7.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.7.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.7.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.7.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.7.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.7.jar bundle apache2 10996 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 org.wso2.carbon.event.admin_4.5.4.jar bundle apache2 8444 org.wso2.carbon.event.application.deployer_5.1.5.jar bundle apache2 10990 diff --git a/modules/broker/distribution/src/main/resources/LICENSE.txt b/modules/broker/distribution/src/main/resources/LICENSE.txt index fbabcf7c..54d603d6 100644 --- a/modules/broker/distribution/src/main/resources/LICENSE.txt +++ b/modules/broker/distribution/src/main/resources/LICENSE.txt @@ -171,7 +171,7 @@ org.wso2.carbon.andes.event.admin_3.1.3.jar org.wso2.carbon.andes.event.core_3.1.3.jar bundle apache2 11065 org.wso2.carbon.andes.event.stub_3.1.3.jar bundle apache2 11064 org.wso2.carbon.andes.event.ui_3.1.3.jar bundle apache2 11063 -org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.8.jar bundle apache2 11062 +org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.7.jar bundle apache2 11062 org.wso2.carbon.andes.mgt.stub_3.1.3.jar bundle apache2 11061 org.wso2.carbon.andes.stub_3.1.3.jar bundle apache2 11060 org.wso2.carbon.andes.ui_3.1.3.jar bundle apache2 11059 diff --git a/modules/core/distribution/LICENSE.txt b/modules/core/distribution/LICENSE.txt index ee0ce25c..f12f96cc 100644 --- a/modules/core/distribution/LICENSE.txt +++ b/modules/core/distribution/LICENSE.txt @@ -295,7 +295,7 @@ org.wso2.carbon.appmgt.core_1.2.10.jar org.wso2.carbon.appmgt.gateway.stub_1.2.10.jar bundle apache2 11030 org.wso2.carbon.appmgt.hostobjects_1.2.10.jar bundle apache2 11029 org.wso2.carbon.appmgt.impl_1.2.10.jar bundle apache2 11028 -org.wso2.carbon.appmgt.mdm.osgiconnector_3.0.8.jar bundle apache2 11027 +org.wso2.carbon.appmgt.mdm.osgiconnector_3.0.7.jar bundle apache2 11027 org.wso2.carbon.appmgt.mdm.restconnector_1.2.10.jar bundle apache2 11026 org.wso2.carbon.appmgt.mdm.wso2emm_1.1.4.jar bundle apache2 8176 org.wso2.carbon.appmgt.mobile_1.2.10.jar bundle apache2 11025 @@ -339,14 +339,14 @@ org.wso2.carbon.device.mgt.extensions.device.type.deployer_2.0.8.jar org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt_2.0.8.jar bundle apache2 11006 org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp_2.0.8.jar bundle apache2 11005 org.wso2.carbon.device.mgt.extensions_2.0.8.jar bundle apache2 11004 -org.wso2.carbon.device.mgt.input.adapter.extension_3.0.8.jar bundle apache2 11003 -org.wso2.carbon.device.mgt.input.adapter.http_3.0.8.jar bundle apache2 11002 -org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.8.jar bundle apache2 11001 -org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.8.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.7.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.7.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.7.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.7.jar bundle apache2 11000 org.wso2.carbon.device.mgt.oauth.extensions_2.0.8.jar bundle apache2 10999 -org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.8.jar bundle apache2 10998 -org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.8.jar bundle apache2 10997 -org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.8.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.7.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.7.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.7.jar bundle apache2 10996 org.wso2.carbon.device.mgt.url.printer_2.0.8.jar bundle apache2 10995 org.wso2.carbon.directory.server.manager.common_5.7.5.jar bundle apache2 10770 org.wso2.carbon.directory.server.manager.stub_5.7.5.jar bundle apache2 10769 From 61e28471def70e057d45d75a6a29721fe7b1d823 Mon Sep 17 00:00:00 2001 From: ayyoob Date: Fri, 20 Jan 2017 16:27:32 +0530 Subject: [PATCH 32/47] fixed connected cup sample issues --- .../transport/mqtt/ConnectedCupMQttTransportHandler.java | 2 +- .../private/config.json | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/distribution/src/resources/samples/connectedcup/component/agent/src/main/java/org/coffeeking/agent/transport/mqtt/ConnectedCupMQttTransportHandler.java b/modules/distribution/src/resources/samples/connectedcup/component/agent/src/main/java/org/coffeeking/agent/transport/mqtt/ConnectedCupMQttTransportHandler.java index 8804f715..b6aac275 100644 --- a/modules/distribution/src/resources/samples/connectedcup/component/agent/src/main/java/org/coffeeking/agent/transport/mqtt/ConnectedCupMQttTransportHandler.java +++ b/modules/distribution/src/resources/samples/connectedcup/component/agent/src/main/java/org/coffeeking/agent/transport/mqtt/ConnectedCupMQttTransportHandler.java @@ -41,7 +41,7 @@ public class ConnectedCupMQttTransportHandler extends MQTTTransportHandler { private static String publishTopic = "%s/" + DEVICE_TYPE + "/%s"; protected ConnectedCupMQttTransportHandler() { - super(iotServerSubscriber, DEVICE_TYPE, "tcp://localhost:1883", ""); + super(iotServerSubscriber, DEVICE_TYPE, "tcp://localhost:1886", ""); } private ScheduledFuture dataPushServiceHandler; diff --git a/modules/distribution/src/resources/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/config.json b/modules/distribution/src/resources/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/config.json index 685ee7ff..0211f4c0 100644 --- a/modules/distribution/src/resources/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/config.json +++ b/modules/distribution/src/resources/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.type-view/private/config.json @@ -1,6 +1,9 @@ { "deviceType": { "label": "Connected Cup", - "category": "virtual" + "category": "virtual", + "scopes" : [ + "perm:connectedcup:enroll" + ] } } \ No newline at end of file From fc4eb832974d1ab9fc22892674c432679c96cd13 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 18:09:16 +0530 Subject: [PATCH 33/47] update INSTALL.txt and README.txt --- modules/core/distribution/INSTALL.txt | 39 ++++++------ modules/core/distribution/README.txt | 92 ++++++++++++--------------- 2 files changed, 62 insertions(+), 69 deletions(-) diff --git a/modules/core/distribution/INSTALL.txt b/modules/core/distribution/INSTALL.txt index 959609b2..0aacac7b 100644 --- a/modules/core/distribution/INSTALL.txt +++ b/modules/core/distribution/INSTALL.txt @@ -1,26 +1,27 @@ -(1) Installing WSO2 IoT Server 3.0.0 +Installing WSO2 IoT Server 3.0.0 Running the server ---------------- -1. The directory containing this INSTALL file will be the root and it will be treated as IoT home directory and let it be IoT_HOME. +----------------- +1. The directory containing this INSTALL file will be the root and it is treated as the IoTS home directory, and is referred to as . -2. WSO2 IoT Server comes as a composition of three components namely broker, core and analytics. +2. WSO2 IoT Server comes as a composition of three components namely broker, core, and analytics. -3. Starting order of IoT components shuld be broker, core, analytics. -To start/stop/restart the IoT components one can use wso2server.sh for *nix systems & wso2server.bat for Windows systems which can be found in following locations. - IoT_HOME/broker/bin - IoT_HOME/core/bin - IoT_HOME/analytics/bin +3. The starting order of the WSO2 IoTS components should be broker, core, analytics. -4. The wso2server.sh and wso2server.bat has following commands +4. To start/stop/restart the IoTS components, run wso2server.sh for *nix systems and wso2server.bat for Windows systems, which can be found in following locations. + /broker/bin + /core/bin + /analytics/bin + +5. The wso2server.sh and wso2server.bat startup scripts have the following commands: i) ./wso2server.sh {console|start|stop|restart|status|dump|version} - iii) wso2server.bat {start|stop|version} + ii) wso2server.bat {start|stop|version} Usage: wso2server.sh [command] command: - --debug Start the server in remote debugging mode. - port: The remote debugging port. + --debug Start the server in remote debugging mode + The remote debugging port --run Run the server --start Start the server as a Unix daemon in the background --console Start the server as a Unix daemon in the foreground @@ -28,16 +29,16 @@ To start/stop/restart the IoT components one can use wso2server.sh for *nix syst --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. + --version The version of the Carbon server are you running + --n Start multiple instances of the same server after you + have successfully installed the Multiple-instances feature + from a feature repository System Requirements ------------------- 1. Minimum memory - 4GB -2. The Management Console requires full Javascript enablement of the Web browser +2. The WSO2 IOTS Management Console requires full Javascript enablement in the Web browser NOTE: On Windows Server 2003, it is not allowed to go below the medium security - level in Internet Explorer 6.x. + level when using Internet Explorer 6.x. diff --git a/modules/core/distribution/README.txt b/modules/core/distribution/README.txt index 0420ee50..d287efb0 100644 --- a/modules/core/distribution/README.txt +++ b/modules/core/distribution/README.txt @@ -1,26 +1,26 @@ WSO2 IoT Server ---------------------- -Welcome to the WSO2 IoT Server (IoTS) 3.0.0 release +Welcome to the WSO2 IoT Server (IoTS) 3.0.0 release. ======= Key Features ------------ -1. Self-service device enrollment and management with end-user IoTS console +Self-service device enrollment and management with an end-user IoTS console. Installation & Running ---------------------- -1. Extract the downloaded zip file -2. Follow the INSTALL.txt file for install instructions -3. Once the server starts, point your Web browser to https://localhost:9443/devicemgt to see available device types and operations -4. Navigate to https://localhost:9443/api-store to see the available device APIs, You can subscribe to these APIs with default application (or by creating new application). - In API store, go to my subscriptions and find client ID and secret. Which can be used to invoke these apis. +1. Extract the downloaded ZIP file. +2. Follow the INSTALL.txt file for install instructions. +3. After the server starts, point your Web browser to https://localhost:9443/devicemgt in order to see the available device types and operations +4. Navigate to https://localhost:9443/api-store to see the available device APIs. You can subscribe to these APIs with the default application (or by creating a new application). + In the API Store, go to my subscriptions and locate the client ID and secret, which can be used to invoke these APIs. System Requirements ------------------- 1. Minimum memory - 4GB -2. Portal app requires full Javascript enablement of the Web browser +2. The portal app requires full Javascript enablement on the Web browser WSO2 IoT Server (IoTS) Binary Distribution Directory Structure @@ -28,12 +28,12 @@ WSO2 IoT Server (IoTS) Binary Distribution Directory Structure IoT_HOME . ├── core //core component - ├── analytics //analytics component - ├── broker //message broker component - ├── samples //sample device types eg. connectedcup + ├── analytics //Analytics component + ├── broker //Message Broker component + ├── samples //sample device types e.g., connectedcup ├── plugins //pre-built device types -IoT core, analytics and broker has similar directory sctructure. As for example core has following structure +The IoTS Core, Analytics, and Broker have similar directory structures. For example Core has the following structure: IoT_HOME/core . ├── bin //executables @@ -50,7 +50,7 @@ IoT core, analytics and broker has similar directory sctructure. As for example - bin - Contains various scripts .sh & .bat scripts. + Contains various scripts (i.e., .sh & .bat scripts). - dbscripts Contains the database creation & seed data population SQL scripts for @@ -62,9 +62,8 @@ IoT core, analytics and broker has similar directory sctructure. As for example - 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. + modules deployed in WSO2 Carbon, and other custom deployers such as + dataservices and axis1services are stored. - carbonapps Carbon Application hot deployment directory. @@ -73,7 +72,7 @@ IoT core, analytics and broker has similar directory sctructure. As for example Contains all OSGi related libraries and configurations. - conf - Contains server configuration files. Ex: axis2.xml, carbon.xml + Contains server configuration files. e.g., axis2.xml, carbon.xml - data Contains internal LDAP related data. @@ -83,7 +82,7 @@ IoT core, analytics and broker has similar directory sctructure. As for example - deployment Contains server side and client side Axis2 repositories. - All deployment artifacts should go into this directory. + All deployment artifacts should go into this directory. - logs Contains all log files created during execution. @@ -92,16 +91,15 @@ IoT core, analytics and broker has similar directory sctructure. As for example Contains additional resources that may be required. - tenants - Directory will contain relevant tenant artifacts - in the case of a multitenant deployment. + This directory will contain relevant tenant artifacts + in the case of a multi-tenant deployment. - tmp Used for storing temporary files, and is pointed to by the - java.io.tmpdir System property. + 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. + You have the option of running WSO2 Carbon in the webapp mode (hosted as a web-app in an application server). This directory contains files required to run Carbon in the webapp mode. - LICENSE.txt Apache License 2.0 under which WSO2 Carbon is distributed. @@ -113,61 +111,55 @@ IoT core, analytics and broker has similar directory sctructure. As for example This document contains information on installing WSO2 IoT Server. - release-notes.html - Release information for WSO2 IoT Server 1.0.0-ALPHA + Release information for WSO2 IoT Server 3.0.0 -Secure sensitive information in carbon configuration files +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. +There is sensitive information such as passwords in the Carbon configuration. +You can secure them by using secure vault. Please go through the following steps to +secure them with the default mode. -1. Configure secure vault with default configurations by running ciphertool - script from bin directory. +1. Configure secure vault with the default configurations by running the ciphertool + script from the bin directory. > ciphertool.sh -Dconfigure (in UNIX) -This script would do following configurations that you need to do by manually +This script automates the following configurations that you would normally need to do manually. -(i) Replaces sensitive elements in configuration files, that have been defined in +(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. +(ii) Encrypts the plain text password which is defined in the cipher-text.properties file. +(iii) Updates the secret-conf.properties file with the default keystore and callback class. cipher-tool.properties, cipher-text.properties and secret-conf.properties files - can be found at repository/conf/security directory. + can be found in the /repository/conf/security directory. -2. Start server by running wso2server script from bin directory +2. Start the server by running the wso2server script, which is in the /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) +When running the default mode, it asks you to enter the master password +(By default, the master password is the password of the Carbon keystore and private key) -3. Change any password by running ciphertool script from bin directory. +3. Change any password by running the ciphertool script, which is in the /bin directory. > ciphertool -Dchange (in UNIX) -For more details see -http://docs.wso2.org/wiki/display/Carbon410/WSO2+Carbon+Secure+Vault +For more information, see +https://docs.wso2.com/display/ADMIN44x/Carbon+Secure+Vault+Implementation 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/ +WSO2 Inc. offers a variety of professional Training Programs for WSO2 products. +For additional support on training information please goto 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. +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/ From bd6de31582c873c2eb5b4c3071306e62860145fb Mon Sep 17 00:00:00 2001 From: Chatura Dilan Date: Fri, 20 Jan 2017 18:24:14 +0530 Subject: [PATCH 34/47] Bumping up appm version to 1.2.13 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c40b727f..ad6da51a 100644 --- a/pom.xml +++ b/pom.xml @@ -1643,7 +1643,7 @@ 1.0.1 - 1.2.12 + 1.2.13 1.4.4 From 56c6f6dee920de69eaaa90ba1aafa160a78749ee Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 19:44:28 +0530 Subject: [PATCH 35/47] Updating LICENSE.txt --- .../src/main/resources/LICENSE.txt | 16 +++++++------- .../src/main/resources/LICENSE.txt | 2 +- modules/core/distribution/LICENSE.txt | 22 +++++++++---------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/modules/analytics/distribution/src/main/resources/LICENSE.txt b/modules/analytics/distribution/src/main/resources/LICENSE.txt index 15985ca4..03b75474 100644 --- a/modules/analytics/distribution/src/main/resources/LICENSE.txt +++ b/modules/analytics/distribution/src/main/resources/LICENSE.txt @@ -314,13 +314,13 @@ org.wso2.carbon.datasource.reader.cassandra_4.3.6.jar org.wso2.carbon.datasource.reader.hadoop_4.3.6.jar bundle apache2 10666 org.wso2.carbon.deployment.synchronizer.subversion_4.5.4.jar bundle apache2 8451 org.wso2.carbon.deployment.synchronizer_4.5.4.jar bundle apache2 8450 -org.wso2.carbon.device.mgt.input.adapter.extension_3.0.7.jar bundle apache2 11003 -org.wso2.carbon.device.mgt.input.adapter.http_3.0.7.jar bundle apache2 11002 -org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.7.jar bundle apache2 11001 -org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.7.jar bundle apache2 11000 -org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.7.jar bundle apache2 10998 -org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.7.jar bundle apache2 10997 -org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.7.jar bundle apache2 10996 +org.wso2.carbon.device.mgt.input.adapter.extension_3.0.8.jar bundle apache2 11003 +org.wso2.carbon.device.mgt.input.adapter.http_3.0.8.jar bundle apache2 11002 +org.wso2.carbon.device.mgt.input.adapter.mqtt_3.0.8.jar bundle apache2 11001 +org.wso2.carbon.device.mgt.input.adapter.xmpp_3.0.8.jar bundle apache2 11000 +org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.8.jar bundle apache2 10998 +org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.8.jar bundle apache2 10997 +org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.8.jar bundle apache2 10996 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 org.wso2.carbon.event.admin_4.5.4.jar bundle apache2 8444 org.wso2.carbon.event.application.deployer_5.1.5.jar bundle apache2 10990 @@ -410,7 +410,7 @@ org.wso2.carbon.identity.authenticator.saml2.sso_5.1.3.jar org.wso2.carbon.identity.base_5.2.0.jar bundle apache2 8378 org.wso2.carbon.identity.core.ui_5.2.0.jar bundle apache2 8377 org.wso2.carbon.identity.core_5.2.0.jar bundle apache2 8376 -org.wso2.carbon.identity.jwt.client.extension_2.0.8.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.9.jar bundle apache2 10969 org.wso2.carbon.identity.oauth.stub_5.3.1.jar bundle apache2 10505 org.wso2.carbon.identity.sso.agent_5.1.0.jar bundle apache2 8353 org.wso2.carbon.identity.sso.saml.stub_5.1.1.jar bundle apache2 8352 diff --git a/modules/broker/distribution/src/main/resources/LICENSE.txt b/modules/broker/distribution/src/main/resources/LICENSE.txt index 54d603d6..fbabcf7c 100644 --- a/modules/broker/distribution/src/main/resources/LICENSE.txt +++ b/modules/broker/distribution/src/main/resources/LICENSE.txt @@ -171,7 +171,7 @@ org.wso2.carbon.andes.event.admin_3.1.3.jar org.wso2.carbon.andes.event.core_3.1.3.jar bundle apache2 11065 org.wso2.carbon.andes.event.stub_3.1.3.jar bundle apache2 11064 org.wso2.carbon.andes.event.ui_3.1.3.jar bundle apache2 11063 -org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.7.jar bundle apache2 11062 +org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization_3.0.8.jar bundle apache2 11062 org.wso2.carbon.andes.mgt.stub_3.1.3.jar bundle apache2 11061 org.wso2.carbon.andes.stub_3.1.3.jar bundle apache2 11060 org.wso2.carbon.andes.ui_3.1.3.jar bundle apache2 11059 diff --git a/modules/core/distribution/LICENSE.txt b/modules/core/distribution/LICENSE.txt index f12f96cc..a7b1ca47 100644 --- a/modules/core/distribution/LICENSE.txt +++ b/modules/core/distribution/LICENSE.txt @@ -347,15 +347,15 @@ org.wso2.carbon.device.mgt.oauth.extensions_2.0.8.jar org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.7.jar bundle apache2 10998 org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.7.jar bundle apache2 10997 org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.7.jar bundle apache2 10996 -org.wso2.carbon.device.mgt.url.printer_2.0.8.jar bundle apache2 10995 +org.wso2.carbon.device.mgt.url.printer_2.0.9.jar bundle apache2 10995 org.wso2.carbon.directory.server.manager.common_5.7.5.jar bundle apache2 10770 org.wso2.carbon.directory.server.manager.stub_5.7.5.jar bundle apache2 10769 org.wso2.carbon.directory.server.manager.ui_5.7.5.jar bundle apache2 10768 org.wso2.carbon.directory.server.manager_5.7.5.jar bundle apache2 10767 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 -org.wso2.carbon.dynamic.client.registration_2.0.8.jar bundle apache2 10994 -org.wso2.carbon.dynamic.client.web.app.registration_2.0.8.jar bundle apache2 10993 -org.wso2.carbon.email.sender.core_2.0.8.jar bundle apache2 10992 +org.wso2.carbon.dynamic.client.registration_2.0.9.jar bundle apache2 10994 +org.wso2.carbon.dynamic.client.web.app.registration_2.0.9.jar bundle apache2 10993 +org.wso2.carbon.email.sender.core_2.0.9.jar bundle apache2 10992 org.wso2.carbon.email.verification.stub_4.5.4.jar bundle apache2 8678 org.wso2.carbon.email.verification.ui_4.5.4.jar bundle apache2 8677 org.wso2.carbon.email.verification_4.5.4.jar bundle apache2 8676 @@ -416,7 +416,7 @@ org.wso2.carbon.identity.application.mgt.stub_5.7.5.jar org.wso2.carbon.identity.application.mgt.ui_5.7.5.jar bundle apache2 10762 org.wso2.carbon.identity.application.mgt_5.7.5.jar bundle apache2 10761 org.wso2.carbon.identity.authentication_4.5.4.jar bundle apache2 8609 -org.wso2.carbon.identity.authenticator.backend.oauth_2.0.8.jar bundle apache2 10978 +org.wso2.carbon.identity.authenticator.backend.oauth_2.0.9.jar bundle apache2 10978 org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.6.jar bundle apache2 10977 org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.1.6.jar bundle apache2 10976 org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.1.6.jar bundle apache2 10975 @@ -436,7 +436,7 @@ org.wso2.carbon.identity.entitlement.stub_5.6.89.jar org.wso2.carbon.identity.entitlement_5.7.5.jar bundle apache2 10749 org.wso2.carbon.identity.governance.stub_5.7.5.jar bundle apache2 10747 org.wso2.carbon.identity.inbound.metadata.saml2_0.1.1.jar bundle apache2 10970 -org.wso2.carbon.identity.jwt.client.extension_2.0.8.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.9.jar bundle apache2 10969 org.wso2.carbon.identity.notification.mgt_5.7.5.jar bundle apache2 10742 org.wso2.carbon.identity.oauth.common_5.3.4.jar bundle apache2 10944 org.wso2.carbon.identity.oauth.dcr_5.3.4.jar bundle apache2 10943 @@ -550,10 +550,10 @@ org.wso2.carbon.ntask.core_4.5.4.jar org.wso2.carbon.ntask.solutions_4.5.4.jar bundle apache2 8566 org.wso2.carbon.operation.mgt_4.7.2.jar bundle apache2 10279 org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 -org.wso2.carbon.policy.decision.point_2.0.8.jar bundle apache2 10958 -org.wso2.carbon.policy.information.point_2.0.8.jar bundle apache2 10957 -org.wso2.carbon.policy.mgt.common_2.0.8.jar bundle apache2 10956 -org.wso2.carbon.policy.mgt.core_2.0.8.jar bundle apache2 10955 +org.wso2.carbon.policy.decision.point_2.0.9.jar bundle apache2 10958 +org.wso2.carbon.policy.information.point_2.0.9.jar bundle apache2 10957 +org.wso2.carbon.policy.mgt.common_2.0.9.jar bundle apache2 10956 +org.wso2.carbon.policy.mgt.core_2.0.9.jar bundle apache2 10955 org.wso2.carbon.priority.executors.stub_4.6.9.jar bundle apache2 10954 org.wso2.carbon.priority.executors_4.6.9.jar bundle apache2 10858 org.wso2.carbon.proxyadmin.common_4.6.9.jar bundle apache2 10857 @@ -662,7 +662,7 @@ org.wso2.carbon.user.mgt.ui_5.7.5.jar org.wso2.carbon.user.mgt.workflow.stub_5.7.5.jar bundle apache2 10702 org.wso2.carbon.user.mgt_5.7.5.jar bundle apache2 10701 org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 -org.wso2.carbon.webapp.authenticator.framework_2.0.8.jar bundle apache2 10951 +org.wso2.carbon.webapp.authenticator.framework_2.0.9.jar bundle apache2 10951 org.wso2.carbon.webapp.deployer_4.7.2.jar bundle apache2 10227 org.wso2.carbon.webapp.list.ui_4.7.2.jar bundle apache2 10226 org.wso2.carbon.webapp.mgt.stub_4.2.0.jar bundle apache2 2083 From bfd3bc2ab09b646fbc370e4d757a387c3e60aa23 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Fri, 20 Jan 2017 20:16:28 +0530 Subject: [PATCH 36/47] Updated cdmf into [2.0.9] cdmf-plugins into [3.0.8] --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c40b727f..fba0a06d 100644 --- a/pom.xml +++ b/pom.xml @@ -1529,14 +1529,14 @@ 4.7.0 - 2.0.8 + 2.0.9 [2.0.0, 3.0.0) 3.0.0-SNAPSHOT - 3.0.7 + 3.0.8 6.1.35 From c91171e09cee49af5af42e762780f134189f81c3 Mon Sep 17 00:00:00 2001 From: ayyoob Date: Fri, 20 Jan 2017 21:21:15 +0530 Subject: [PATCH 37/47] replaced jaggery.conf --- modules/core/distribution/src/assembly/bin.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/core/distribution/src/assembly/bin.xml b/modules/core/distribution/src/assembly/bin.xml index edbc77f8..fb448067 100644 --- a/modules/core/distribution/src/assembly/bin.xml +++ b/modules/core/distribution/src/assembly/bin.xml @@ -492,6 +492,9 @@ ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/windows-web-agent + + **/jaggery.conf + @@ -510,6 +513,9 @@ ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/android-web-agent + + **/jaggery.conf + @@ -518,6 +524,9 @@ ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/android-web-agent + + **/jaggery.conf + @@ -548,6 +557,7 @@ publisherSite/** footer/** localstyles.css + **/jaggery.conf @@ -562,6 +572,7 @@ base-page/** login/** styles-layout.css + **/jaggery.conf @@ -579,6 +590,7 @@ login/** styles-layout.css **/site/conf/site.json + **/jaggery.conf @@ -611,6 +623,9 @@ ../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/jaggeryapps/social/ ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/social + + **/jaggery.conf + @@ -726,6 +741,7 @@ **/configs/designer.json + **/jaggery.conf From d5c5f66c1fe3abbbe10bf4e2af06fbda3e16eca6 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 12:41:56 +0530 Subject: [PATCH 38/47] Updated appm into [1.2.14] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3f1eb61a..04e286c5 100644 --- a/pom.xml +++ b/pom.xml @@ -1643,7 +1643,7 @@ 1.0.1 - 1.2.13 + 1.2.14 1.4.4 From 0ccd63936b2205985558d512d2112ddadc3bb160 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 12:43:37 +0530 Subject: [PATCH 39/47] Updated OWSAP property file --- .../conf/security/Owasp.CsrfGuard.Carbon.properties | 1 + .../conf/security/Owasp.CsrfGuard.Carbon.properties | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index d3049ce3..3c112193 100644 --- a/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/analytics/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -457,3 +457,4 @@ org.owasp.csrfguard.unprotected.passivests=%servletContext%/acs/* org.owasp.csrfguard.unprotected.deviceMgtSSOAcs=%servletContext%/devicemgt/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtAcs=%servletContext%/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/* +org.owasp.csrfguard.unprotected.portalApis=%/portal/apis/* \ No newline at end of file diff --git a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties index f6daa5c3..62cb1c57 100644 --- a/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties +++ b/modules/core/distribution/src/repository/conf/security/Owasp.CsrfGuard.Carbon.properties @@ -466,11 +466,16 @@ org.owasp.csrfguard.unprotected.deviceMgtAcs=%servletContext%/uuf/sso/acs org.owasp.csrfguard.unprotected.deviceMgtApi=%servletContext%/devicemgt/api/* org.owasp.csrfguard.unprotected.storeEventPublisher=%servletContext%/store/apis/eventpublish/* org.owasp.csrfguard.unprotected.publisherAcs=%servletContext%/publisher/acs +org.owasp.csrfguard.unprotected.publisherApi=%servletContext%/publisher/api org.owasp.csrfguard.unprotected.storeAcs=%servletContext%/store/acs org.owasp.csrfguard.unprotected.apiStoreAcs=%servletContext%/api-store/acs +org.owasp.csrfguard.unprotected.apiStoreApis=%servletContext%/api-store/apis org.owasp.csrfguard.unprotected.portalAcs=%servletContext%/portal/acs +org.owasp.csrfguard.unprotected.portalApis=%servletContext%/portal/apis org.owasp.csrfguard.unprotected.socialAcs=%servletContext%/social/acs +org.owasp.csrfguard.unprotected.socialApis=%servletContext%/social/apis org.owasp.csrfguard.unprotected.appStoreDevices=%servletContext%/store/apps/devices/* +org.owasp.csrfguard.unprotected.appStoreApis=%servletContext%/store/apis/* #carbon From 8ba75c675580fce67fe9edf96198b6dc3245d94b Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 15:02:12 +0530 Subject: [PATCH 40/47] Updated cdmf into [2.0.10-SNAPSHOT] and cdmf-plugins [3.0.9-SNAPSHOT] --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 04e286c5..5352af1b 100644 --- a/pom.xml +++ b/pom.xml @@ -1529,14 +1529,14 @@ 4.7.0 - 2.0.9 + 2.0.10-SNAPSHOT [2.0.0, 3.0.0) 3.0.0-SNAPSHOT - 3.0.8 + 3.0.9-SNAPSHOT 6.1.35 From 375f555a2c84f6e5428a3183abbda05515bf1c5c Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 15:17:06 +0530 Subject: [PATCH 41/47] Updated LICENSE.txt --- .../src/main/resources/LICENSE.txt | 2 +- modules/core/distribution/LICENSE.txt | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/analytics/distribution/src/main/resources/LICENSE.txt b/modules/analytics/distribution/src/main/resources/LICENSE.txt index 03b75474..83930ce4 100644 --- a/modules/analytics/distribution/src/main/resources/LICENSE.txt +++ b/modules/analytics/distribution/src/main/resources/LICENSE.txt @@ -410,7 +410,7 @@ org.wso2.carbon.identity.authenticator.saml2.sso_5.1.3.jar org.wso2.carbon.identity.base_5.2.0.jar bundle apache2 8378 org.wso2.carbon.identity.core.ui_5.2.0.jar bundle apache2 8377 org.wso2.carbon.identity.core_5.2.0.jar bundle apache2 8376 -org.wso2.carbon.identity.jwt.client.extension_2.0.9.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.10.jar bundle apache2 10969 org.wso2.carbon.identity.oauth.stub_5.3.1.jar bundle apache2 10505 org.wso2.carbon.identity.sso.agent_5.1.0.jar bundle apache2 8353 org.wso2.carbon.identity.sso.saml.stub_5.1.1.jar bundle apache2 8352 diff --git a/modules/core/distribution/LICENSE.txt b/modules/core/distribution/LICENSE.txt index a7b1ca47..c1b97982 100644 --- a/modules/core/distribution/LICENSE.txt +++ b/modules/core/distribution/LICENSE.txt @@ -347,15 +347,15 @@ org.wso2.carbon.device.mgt.oauth.extensions_2.0.8.jar org.wso2.carbon.device.mgt.output.adapter.mqtt_3.0.7.jar bundle apache2 10998 org.wso2.carbon.device.mgt.output.adapter.websocket_3.0.7.jar bundle apache2 10997 org.wso2.carbon.device.mgt.output.adapter.xmpp_3.0.7.jar bundle apache2 10996 -org.wso2.carbon.device.mgt.url.printer_2.0.9.jar bundle apache2 10995 +org.wso2.carbon.device.mgt.url.printer_2.0.10.jar bundle apache2 10995 org.wso2.carbon.directory.server.manager.common_5.7.5.jar bundle apache2 10770 org.wso2.carbon.directory.server.manager.stub_5.7.5.jar bundle apache2 10769 org.wso2.carbon.directory.server.manager.ui_5.7.5.jar bundle apache2 10768 org.wso2.carbon.directory.server.manager_5.7.5.jar bundle apache2 10767 org.wso2.carbon.discovery.cxf_4.7.2.jar bundle apache2 10308 -org.wso2.carbon.dynamic.client.registration_2.0.9.jar bundle apache2 10994 -org.wso2.carbon.dynamic.client.web.app.registration_2.0.9.jar bundle apache2 10993 -org.wso2.carbon.email.sender.core_2.0.9.jar bundle apache2 10992 +org.wso2.carbon.dynamic.client.registration_2.0.10.jar bundle apache2 10994 +org.wso2.carbon.dynamic.client.web.app.registration_2.0.10.jar bundle apache2 10993 +org.wso2.carbon.email.sender.core_2.0.10.jar bundle apache2 10992 org.wso2.carbon.email.verification.stub_4.5.4.jar bundle apache2 8678 org.wso2.carbon.email.verification.ui_4.5.4.jar bundle apache2 8677 org.wso2.carbon.email.verification_4.5.4.jar bundle apache2 8676 @@ -416,7 +416,7 @@ org.wso2.carbon.identity.application.mgt.stub_5.7.5.jar org.wso2.carbon.identity.application.mgt.ui_5.7.5.jar bundle apache2 10762 org.wso2.carbon.identity.application.mgt_5.7.5.jar bundle apache2 10761 org.wso2.carbon.identity.authentication_4.5.4.jar bundle apache2 8609 -org.wso2.carbon.identity.authenticator.backend.oauth_2.0.9.jar bundle apache2 10978 +org.wso2.carbon.identity.authenticator.backend.oauth_2.0.10.jar bundle apache2 10978 org.wso2.carbon.identity.authenticator.saml2.sso.common_5.1.6.jar bundle apache2 10977 org.wso2.carbon.identity.authenticator.saml2.sso.stub_5.1.6.jar bundle apache2 10976 org.wso2.carbon.identity.authenticator.saml2.sso.ui_5.1.6.jar bundle apache2 10975 @@ -436,7 +436,7 @@ org.wso2.carbon.identity.entitlement.stub_5.6.89.jar org.wso2.carbon.identity.entitlement_5.7.5.jar bundle apache2 10749 org.wso2.carbon.identity.governance.stub_5.7.5.jar bundle apache2 10747 org.wso2.carbon.identity.inbound.metadata.saml2_0.1.1.jar bundle apache2 10970 -org.wso2.carbon.identity.jwt.client.extension_2.0.9.jar bundle apache2 10969 +org.wso2.carbon.identity.jwt.client.extension_2.0.10.jar bundle apache2 10969 org.wso2.carbon.identity.notification.mgt_5.7.5.jar bundle apache2 10742 org.wso2.carbon.identity.oauth.common_5.3.4.jar bundle apache2 10944 org.wso2.carbon.identity.oauth.dcr_5.3.4.jar bundle apache2 10943 @@ -550,10 +550,10 @@ org.wso2.carbon.ntask.core_4.5.4.jar org.wso2.carbon.ntask.solutions_4.5.4.jar bundle apache2 8566 org.wso2.carbon.operation.mgt_4.7.2.jar bundle apache2 10279 org.wso2.carbon.osgi.security_4.4.11.jar bundle apache2 10365 -org.wso2.carbon.policy.decision.point_2.0.9.jar bundle apache2 10958 -org.wso2.carbon.policy.information.point_2.0.9.jar bundle apache2 10957 -org.wso2.carbon.policy.mgt.common_2.0.9.jar bundle apache2 10956 -org.wso2.carbon.policy.mgt.core_2.0.9.jar bundle apache2 10955 +org.wso2.carbon.policy.decision.point_2.0.10.jar bundle apache2 10958 +org.wso2.carbon.policy.information.point_2.0.10.jar bundle apache2 10957 +org.wso2.carbon.policy.mgt.common_2.0.10.jar bundle apache2 10956 +org.wso2.carbon.policy.mgt.core_2.0.10.jar bundle apache2 10955 org.wso2.carbon.priority.executors.stub_4.6.9.jar bundle apache2 10954 org.wso2.carbon.priority.executors_4.6.9.jar bundle apache2 10858 org.wso2.carbon.proxyadmin.common_4.6.9.jar bundle apache2 10857 @@ -662,7 +662,7 @@ org.wso2.carbon.user.mgt.ui_5.7.5.jar org.wso2.carbon.user.mgt.workflow.stub_5.7.5.jar bundle apache2 10702 org.wso2.carbon.user.mgt_5.7.5.jar bundle apache2 10701 org.wso2.carbon.utils_4.4.11.jar bundle apache2 10345 -org.wso2.carbon.webapp.authenticator.framework_2.0.9.jar bundle apache2 10951 +org.wso2.carbon.webapp.authenticator.framework_2.0.10.jar bundle apache2 10951 org.wso2.carbon.webapp.deployer_4.7.2.jar bundle apache2 10227 org.wso2.carbon.webapp.list.ui_4.7.2.jar bundle apache2 10226 org.wso2.carbon.webapp.mgt.stub_4.2.0.jar bundle apache2 2083 From 50bd257247e08bee3cb403f41e971f08d1ddab34 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 15:19:38 +0530 Subject: [PATCH 42/47] Updated cdmf and cdmf-plugins versions --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5352af1b..54b8f525 100644 --- a/pom.xml +++ b/pom.xml @@ -1529,14 +1529,14 @@ 4.7.0 - 2.0.10-SNAPSHOT + 2.0.10 [2.0.0, 3.0.0) 3.0.0-SNAPSHOT - 3.0.9-SNAPSHOT + 3.0.8 6.1.35 From e1e330e83e5c23147286d53e5ec18e89c82e8574 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 16:21:14 +0530 Subject: [PATCH 43/47] Fixed profiling issue on jss service --- modules/core/p2-profile-gen/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/core/p2-profile-gen/pom.xml b/modules/core/p2-profile-gen/pom.xml index e38839e3..8529fcd0 100644 --- a/modules/core/p2-profile-gen/pom.xml +++ b/modules/core/p2-profile-gen/pom.xml @@ -3064,6 +3064,10 @@ org.wso2.carbon.analytics.api.client.feature.group ${carbon.analytics.version} + + + org.wso2.carbon.analytics.jsservice.feature.group + ${carbon.analytics.version} @@ -3662,6 +3666,10 @@ org.wso2.carbon.analytics.api.client.feature.group ${carbon.analytics.version} + + + org.wso2.carbon.analytics.jsservice.feature.group + ${carbon.analytics.version} org.wso2.carbon.mediator.cache.feature.group From 0b61f822c64e1296fcc58999fe41cdc4cffbdc91 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 23 Jan 2017 23:20:42 +0530 Subject: [PATCH 44/47] Version bumping dashboard into [2.0.6] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 54b8f525..e440edcd 100644 --- a/pom.xml +++ b/pom.xml @@ -1634,7 +1634,7 @@ 1.2.140.wso2v3 2.8.2.wso2v1 2.0.0.wso2v1 - 2.0.6-SNAPSHOT + 2.0.6 2.1.4 [2.6.0,3.0.0) 2.3.4-spark From 9c2fc5985e0064cbb0991ca57cc96d481a88c991 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Tue, 24 Jan 2017 11:06:06 +0530 Subject: [PATCH 45/47] [-Diot.gatway.host="localhost"] -> [-Diot.gateway.host="localhost" --- modules/analytics/distribution/src/bin/wso2server.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/analytics/distribution/src/bin/wso2server.bat b/modules/analytics/distribution/src/bin/wso2server.bat index 60a12126..174a57ac 100644 --- a/modules/analytics/distribution/src/bin/wso2server.bat +++ b/modules/analytics/distribution/src/bin/wso2server.bat @@ -196,7 +196,7 @@ set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% set JAVA_ENDORSED=".\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" -set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Analytics" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gatway.host="localhost" -Diot.gateway.https.port="8243" -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dlogger.server.name="IoT-Analytics" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 :runJava echo JAVA_HOME environment variable is set to %JAVA_HOME% From 0f18eb9d5e8e9f40051e9bbd6b882e85437ec5af Mon Sep 17 00:00:00 2001 From: Menaka Jayawardena Date: Tue, 24 Jan 2017 11:21:04 +0530 Subject: [PATCH 46/47] Re-Enabling backend integration tests. --- modules/integration/pom.xml | 9 +- modules/integration/tests-artifacts/pom.xml | 2 +- .../integration-test-utils/pom.xml | 2 +- modules/integration/tests-common/pom.xml | 2 +- .../integration/tests-common/ui-pages/pom.xml | 116 ---- .../pages/EMMIntegrationUiBaseTestCase.java | 71 -- .../pages/Notification/NotificationView.java | 57 -- .../integration/ui/pages/UIElementMapper.java | 65 -- .../integration/ui/pages/home/HomePage.java | 64 -- .../ui/pages/home/MDMHomePage.java | 49 -- .../ui/pages/login/MDMLoginPage.java | 63 -- .../login/ManagementConsoleLoginPage.java | 68 -- .../PlatformConfiguration.java | 76 --- .../ui/pages/role/AddRolePage.java | 55 -- .../ui/pages/role/EditRolePage.java | 55 -- .../ui/pages/role/RoleListPage.java | 52 -- .../ui/pages/user/AddUserPage.java | 55 -- .../ui/pages/user/UserAddedPage.java | 39 -- .../ui/pages/user/UserEditPage.java | 51 -- .../ui/pages/user/UserListPage.java | 51 -- .../src/main/resources/mapper.properties | 512 --------------- .../tests-common/web-ui-pages/pom.xml | 2 +- .../integration/tests-integration-old/pom.xml | 266 -------- .../src/test/resources/automation.xml | 233 ------- .../src/test/resources/filters.txt | 23 - .../src/test/resources/instrumentation.txt | 41 -- .../src/test/resources/log4j.properties | 45 -- .../src/test/resources/testng-server-mgt.xml | 23 - .../src/test/resources/testng.xml | 112 ---- modules/integration/tests-integration/pom.xml | 214 +++--- .../iot}/integration/common/AssertUtil.java | 2 +- .../iot}/integration/common/Constants.java | 2 +- .../integration/common/IOTHttpClient.java} | 67 +- .../iot/integration/common/IOTResponse.java} | 4 +- .../iot}/integration/common/OAuthUtil.java | 2 +- .../integration/common/PayloadGenerator.java | 2 +- .../iot}/integration/common/RestClient.java | 3 +- .../iot}/integration/common/TestBase.java | 2 +- .../ConfigurationManagement.java | 6 +- .../AndroidConfigurationManagement.java | 6 +- .../device/enrollment/AndroidEnrollment.java | 6 +- .../device/enrollment/WindowsEnrollment.java | 12 +- .../device/mgt/AndroidDeviceManagement.java | 5 +- .../device/operation/AndroidOperation.java | 6 +- .../device/policy/AndroidPolicy.java | 8 +- .../extensions/AnalyticsServerExtension.java | 89 +++ .../extensions/BrokerServerExtension.java | 89 +++ .../extensions/CustomTestServerManager.java | 147 +++++ .../extensions/IOTServerExtension.java | 89 +++ .../feature/FeatureManagement.java | 9 +- .../license/LicenseManagement.java | 6 +- .../mobileDevice/MobileDeviceManagement.java | 18 +- .../MobileDeviceManagementWithNoDevices.java | 14 +- .../notification/NotificationManagement.java | 4 +- .../operation/OperationManagement.java | 16 +- .../integration/policy/PolicyManagement.java | 18 +- .../iot}/integration/role/RoleManagement.java | 17 +- .../iot}/integration/user/UserManagement.java | 6 +- .../src/test/resources/automation.xml | 49 +- .../src/test/resources/automationSchema.xsd | 0 .../src/test/resources/instrumentation.txt | 52 +- .../resources/keystores/products/wso2mdm.jks | Bin 0 -> 9485 bytes .../keystores/stratos}/client-truststore.jks | Bin .../keystores/stratos}/wso2carbon.jks | Bin .../keystores/stratos}/wso2certs.jks | Bin .../resources/keystores/stratos}/wso2emm.jks | Bin .../android-config-response-payloads.json | 0 .../android-configuration-payloads.json | 0 .../android-device-mgt-response-payloads.json | 0 .../payloads/android-enrollment-payloads.json | 0 .../android-enrollment-response-payloads.json | 0 .../payloads/android-operation-payloads.json | 0 .../android-policy-response-payloads.json | 0 .../payloads/configuration-payloads.json | 0 .../configuration-response-payloads.json | 0 .../get-notifications-response-payloads.json | 0 .../payloads/license-response-payloads.json | 0 ...t-view-device-types-response-payloads.json | 0 .../payloads/notification-payloads.json | 0 .../notification-response-payloads.json | 0 .../resources/payloads/policy-payloads.json | 0 .../payloads/policy-response-payloads.json | 0 .../resources/payloads/role-payloads.json | 0 .../resources/payloads/user-payloads.json | 0 .../payloads/user-response-payloads.json | 0 .../src/test/resources/testng.xml | 94 ++- .../enrollment/additional_device_info.xml | Bin .../windows/enrollment/discovery-post.xml | 0 .../windows/enrollment/inital_device_info.xml | Bin .../resources/windows/enrollment/ms_xcep.xml | 0 .../resources/windows/enrollment/wstep.xml | 0 modules/integration/tests-iot-web-ui/pom.xml | 2 +- .../integration/tests-ui-integration/pom.xml | 274 -------- .../emm/ui/integration/test/Constants.java | 31 - .../test/GeneralConfigurationTestCases.java | 65 -- .../emm/ui/integration/test/LoginUtils.java | 45 -- .../test/NotificationValidationTestCase.java | 58 -- .../ui/integration/test/RoleTestCases.java | 64 -- .../emm/ui/integration/test/UserTestCase.java | 63 -- .../test/login/MDMLoginTestCase.java | 54 -- .../login/ManagementConsoleLoginTestCase.java | 54 -- .../src/test/resources/automation.xml | 222 ------- .../test/resources/automationXMLSchema.xsd | 611 ------------------ .../resources/axis2config/axis2_client.xml | 300 --------- .../modules/addressing-1.6.1-wso2v10.mar | Bin 31350 -> 0 bytes ...sing-1.6.1-wso2v11-20140908.185829-596.mar | Bin 31367 -> 0 bytes .../modules/addressing-1.6.1-wso2v15.mar | Bin 31343 -> 0 bytes .../client/modules/rampart-1.6.1-wso2v8.mar | Bin 9708 -> 0 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 36522 -> 0 bytes .../keystores/products/wso2carbon.jks | Bin 33260 -> 0 bytes .../keystores/stratos/client-truststore.jks | Bin 103867 -> 0 bytes .../keystores/stratos/wso2carbon.jks | Bin 35863 -> 0 bytes .../resources/keystores/stratos/wso2certs.jks | Bin 14185 -> 0 bytes .../resources/keystores/stratos/wso2emm.jks | Bin 4993 -> 0 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 | 35 - .../src/test/resources/testng.xml | 39 -- 138 files changed, 795 insertions(+), 6495 deletions(-) delete mode 100644 modules/integration/tests-common/ui-pages/pom.xml delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java delete mode 100644 modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties delete mode 100644 modules/integration/tests-integration-old/pom.xml delete mode 100644 modules/integration/tests-integration-old/src/test/resources/automation.xml delete mode 100644 modules/integration/tests-integration-old/src/test/resources/filters.txt delete mode 100644 modules/integration/tests-integration-old/src/test/resources/instrumentation.txt delete mode 100644 modules/integration/tests-integration-old/src/test/resources/log4j.properties delete mode 100644 modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml delete mode 100644 modules/integration/tests-integration-old/src/test/resources/testng.xml rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/AssertUtil.java (97%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/Constants.java (99%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java => tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java} (74%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java => tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java} (93%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/OAuthUtil.java (98%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/PayloadGenerator.java (97%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/RestClient.java (98%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/common/TestBase.java (98%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/configuration/ConfigurationManagement.java (93%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/configuration/AndroidConfigurationManagement.java (95%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/enrollment/AndroidEnrollment.java (96%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/enrollment/WindowsEnrollment.java (94%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/mgt/AndroidDeviceManagement.java (98%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/operation/AndroidOperation.java (98%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/device/policy/AndroidPolicy.java (88%) create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/feature/FeatureManagement.java (83%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/license/LicenseManagement.java (91%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/mobileDevice/MobileDeviceManagement.java (85%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java (82%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/notification/NotificationManagement.java (97%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/operation/OperationManagement.java (89%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/policy/PolicyManagement.java (86%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/role/RoleManagement.java (82%) rename modules/integration/{tests-integration-old/src/test/java/org/wso2/mdm => tests-integration/src/test/java/org/wso2/iot}/integration/user/UserManagement.java (96%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/automationSchema.xsd (100%) create mode 100644 modules/integration/tests-integration/src/test/resources/keystores/products/wso2mdm.jks rename modules/integration/{tests-integration-old/src/test/resources/keystores/products => tests-integration/src/test/resources/keystores/stratos}/client-truststore.jks (100%) rename modules/integration/{tests-integration-old/src/test/resources/keystores/products => tests-integration/src/test/resources/keystores/stratos}/wso2carbon.jks (100%) rename modules/integration/{tests-integration-old/src/test/resources/keystores/products => tests-integration/src/test/resources/keystores/stratos}/wso2certs.jks (100%) rename modules/integration/{tests-ui-integration/src/test/resources/keystores/products => tests-integration/src/test/resources/keystores/stratos}/wso2emm.jks (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-config-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-configuration-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-device-mgt-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-enrollment-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-enrollment-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-operation-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/android-policy-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/configuration-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/configuration-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/get-notifications-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/license-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/notification-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/notification-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/policy-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/policy-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/role-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/user-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/payloads/user-response-payloads.json (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/windows/enrollment/additional_device_info.xml (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/windows/enrollment/discovery-post.xml (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/windows/enrollment/inital_device_info.xml (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/windows/enrollment/ms_xcep.xml (100%) rename modules/integration/{tests-integration-old => tests-integration}/src/test/resources/windows/enrollment/wstep.xml (100%) delete mode 100644 modules/integration/tests-ui-integration/pom.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java delete mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/automation.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v10.mar delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v11-20140908.185829-596.mar delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v15.mar delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/client/modules/rampart-1.6.1-wso2v8.mar delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/emma.properties delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/filters.txt delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/products/client-truststore.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2carbon.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2carbon.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2certs.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/wso2emm.jks delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/log4j.properties delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario-config.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml delete mode 100644 modules/integration/tests-ui-integration/src/test/resources/testng.xml diff --git a/modules/integration/pom.xml b/modules/integration/pom.xml index c82420df..0356182d 100644 --- a/modules/integration/pom.xml +++ b/modules/integration/pom.xml @@ -1,6 +1,6 @@ - + tests-integration tests-iot-web-ui diff --git a/modules/integration/tests-artifacts/pom.xml b/modules/integration/tests-artifacts/pom.xml index 1abe51e1..b82a7758 100644 --- a/modules/integration/tests-artifacts/pom.xml +++ b/modules/integration/tests-artifacts/pom.xml @@ -21,7 +21,7 @@ org.wso2.iot wso2iot-integration - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT ../pom.xml diff --git a/modules/integration/tests-common/integration-test-utils/pom.xml b/modules/integration/tests-common/integration-test-utils/pom.xml index cc62f18c..d188db50 100644 --- a/modules/integration/tests-common/integration-test-utils/pom.xml +++ b/modules/integration/tests-common/integration-test-utils/pom.xml @@ -36,6 +36,6 @@ 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 index 4692faac..027bb14a 100644 --- a/modules/integration/tests-common/pom.xml +++ b/modules/integration/tests-common/pom.xml @@ -21,7 +21,7 @@ org.wso2.iot wso2iot-integration - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT ../pom.xml diff --git a/modules/integration/tests-common/ui-pages/pom.xml b/modules/integration/tests-common/ui-pages/pom.xml deleted file mode 100644 index 13d5dcd2..00000000 --- a/modules/integration/tests-common/ui-pages/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - org.wso2.iot - tests-common - 3.0.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.iot.core.integration.ui.pages - jar - WSO2 IoT - Integration Test Common UI Pages - - - - org.wso2.carbon.automationutils - org.wso2.carbon.integration.common.admin.client - compile - - - org.wso2.carbon - org.wso2.carbon.user.mgt.stub - - - org.wso2.carbon - org.wso2.carbon.logging.view.stub - - - org.wso2.carbon - org.wso2.carbon.ndatasource.stub - - - org.wso2.carbon - org.wso2.carbon.server.admin.stub - - - org.wso2.carbon - org.wso2.carbon.throttle.stub - - - org.wso2.carbon - org.wso2.carbon.tenant.mgt.stub - - - org.wso2.carbon - org.wso2.carbon.application.mgt.stub - - - org.wso2.carbon - org.wso2.carbon.security.mgt.stub - - - org.wso2.carbon - org.wso2.carbon.identity.user.profile.stub - - - org.wso2.carbon - org.wso2.carbon.identity.user.profile.stub - - - org.slf4j - slf4j-api - - - - - org.wso2.carbon.automation - org.wso2.carbon.automation.extensions - compile - - - org.slf4j - slf4j-api - - - - - 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/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java deleted file mode 100644 index 14f29c52..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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 getWebAppURL() throws XPathExpressionException { - return automationContext.getContextUrls().getWebAppURL(); - } - - 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/iot/integration/ui/pages/Notification/NotificationView.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java deleted file mode 100644 index c226e59a..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.Notification; - - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class NotificationView { - private static final Log log = LogFactory.getLog(NotificationView.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public NotificationView(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains("notification-listing"))) { - throw new IllegalStateException("This is not the notification-listing page"); - } - } - - public void viewNotification() { - WebElement unReadNotificationTab = driver.findElement(By.id(uiElementMapper. - getElement("emm.notification.unread.identifier"))); - WebElement notificationTab = driver.findElement(By.id(uiElementMapper. - getElement("emm.notification.all.identifier"))); - - if (!unReadNotificationTab.isDisplayed()) { - throw new IllegalStateException("Notification View must be having two tabs"); - } - if (!notificationTab.isDisplayed()) { - throw new IllegalStateException("Notification View must be having two tabs"); - } - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java deleted file mode 100644 index 77170f9d..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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/iot/integration/ui/pages/home/HomePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java deleted file mode 100644 index bf4331e5..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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.openqa.selenium.WebElement; -import org.wso2.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -import org.wso2.iot.integration.ui.pages.login.ManagementConsoleLoginPage; - -/** - * 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 ManagementConsoleLoginPage logout() throws IOException { - driver.findElement(By.xpath(uiElementMapper.getElement("home.greg.sign.out.xpath"))).click(); - return new ManagementConsoleLoginPage(driver); - } - - public void checkNotificationCount(String value) { - WebElement notificationBubble = driver.findElement(By.id(uiElementMapper. - getElement("emm.notification.bubble.identifier"))); - if (!notificationBubble.getText().contains(value)) { - throw new IllegalStateException("Invalid amount of notification in home page"); - } - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java deleted file mode 100644 index c0262c22..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class MDMHomePage { - - private static final Log log = LogFactory.getLog(MDMHomePage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public MDMHomePage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!driver.findElement(By.xpath(uiElementMapper.getElement("emm.dashboard.device.div.xpath"))).getText() - .contains("DEVICES")) { - throw new IllegalStateException("This is not the home page"); - } - } - - // public MDMLoginPage logout() throws IOException { - // driver.findElement(By.xpath("/html/body/div[3]/header/div/div[2]/div/div/div[3]/a")).click(); - // return new MDMLoginPage(driver); - // } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java deleted file mode 100644 index d09d52b1..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; -import org.wso2.iot.integration.ui.pages.home.MDMHomePage; - -import java.io.IOException; - -public class MDMLoginPage { - - private static final Log log = LogFactory.getLog(MDMLoginPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public MDMLoginPage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains("mdm/login"))) { - // 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 MDMHomePage loginAs(String userName, String password) throws IOException { - WebElement userNameField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.username"))); - WebElement passwordField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.password"))); - userNameField.sendKeys(userName); - passwordField.sendKeys(password); - driver.findElement(By.xpath(uiElementMapper.getElement("emm.login.button.xpath"))).click(); - return new MDMHomePage(driver); - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java deleted file mode 100644 index 13b2d4fe..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -import org.wso2.iot.integration.ui.pages.home.HomePage; - -/** - * Login page class - contains methods to login to wso2 products. - */ -public class ManagementConsoleLoginPage { - private static final Log log = LogFactory.getLog(ManagementConsoleLoginPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public ManagementConsoleLoginPage(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/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java deleted file mode 100644 index 6a60a262..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.platformConfiguration; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class PlatformConfiguration { - - private static final Log log = LogFactory.getLog(PlatformConfiguration.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public PlatformConfiguration(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains("platform-configuration"))) { - throw new IllegalStateException("This is not the platform-configuration page"); - } - } - - public void changeGeneralConfig(String value) { - WebElement generalConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.tab.identifier")))); - WebElement inputGeneralConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.input.monitoringFr.identifier")))); - WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.button.save.identifier")))); - - generalConfigButton.click(); - inputGeneralConfig.sendKeys(value); - buttonSaveConfig.click(); - } - - public void changeAndroidConfig(String value) { - WebElement androidConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.tab.identifier")))); - WebElement inputAndroidConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.input.identifier")))); - WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.button.save.identifier")))); - - androidConfigButton.click(); - inputAndroidConfig.sendKeys(value); - buttonSaveConfig.click(); - - } - - public void changeWindowsConfig(String value) { - WebElement windowsConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.widows.tab.identifier")))); - WebElement inputWindowsConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.windows.input.identifier")))); - WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.windows.button.save.identifier")))); - - windowsConfigButton.click(); - inputWindowsConfig.sendKeys(value); - buttonSaveConfig.click(); - - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java deleted file mode 100644 index 4e31f2c1..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.role; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class AddRolePage { - private static final Log log = LogFactory.getLog(RoleListPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public AddRolePage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains("roles/add-role"))) { - throw new IllegalStateException("This is not the add role page"); - } - } - - public void addRole(String role) { - WebElement roleName = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.rolename.input"))); - roleName.sendKeys(role); - WebElement addRoleButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.role.button"))); - addRoleButton.click(); - String resultText = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.role.created.msg.div") - )).getText(); - if (!resultText.contains("ROLE WAS ADDED SUCCESSFULLY")) { - throw new IllegalStateException("Role was not added"); - } - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java deleted file mode 100644 index acb28ae2..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.role; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class EditRolePage { - private static final Log log = LogFactory.getLog(RoleListPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public EditRolePage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains("roles/edit-role"))) { - throw new IllegalStateException("This is not the edit role page"); - } - } - - public void editRole(String role) { - WebElement roleName = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.rolename.input"))); - roleName.sendKeys(role); - WebElement addRoleButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.role.button"))); - addRoleButton.click(); - String resultText = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.role.created.msg.div") - )).getText(); - if (!resultText.contains("ROLE WAS UPDATED SUCCESSFULLY")) { - throw new IllegalStateException("Role was not edited"); - } - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java deleted file mode 100644 index 479c576d..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.role; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class RoleListPage { - - private static final Log log = LogFactory.getLog(RoleListPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public RoleListPage(WebDriver driver, String url) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (!(driver.getCurrentUrl().contains(url))) { - throw new IllegalStateException("This is not the roles list page"); - } - } - - public void addRole(String role) throws Exception { - WebElement addButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.button"))); - addButton.click(); - AddRolePage rolePage = new AddRolePage(driver); - rolePage.addRole(role); - } - -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java deleted file mode 100644 index 69c09f05..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.user; - -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.wso2.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class AddUserPage { - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public AddUserPage(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("emm.user.add.button"))).getText() == null) { - throw new IllegalStateException("This is not the add user page"); - } - } - - public UserAddedPage addUser(String username, String firstName, String lastName, - String email) throws IOException { - WebElement usernameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.username"))); - WebElement firstNameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.firstname"))); - WebElement lastNameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.lastname"))); - WebElement emailField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.email"))); - usernameField.sendKeys(username); - firstNameField.sendKeys(firstName); - lastNameField.sendKeys(lastName); - emailField.sendKeys(email); - driver.findElement(By.id(uiElementMapper.getElement("emm.user.add.button"))).click(); - return new UserAddedPage(driver); - } - -} \ No newline at end of file diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java deleted file mode 100644 index ff762c9b..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.user; - -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.wso2.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class UserAddedPage { - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public UserAddedPage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - // Check that we're on the right page. - if (driver.findElement(By.tagName("canvas")) == null) { - throw new IllegalStateException("This is not the user added success page"); - } - } -} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java deleted file mode 100644 index df0dd504..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.user; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class UserEditPage { - private static final Log log = LogFactory.getLog(UserListPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public UserEditPage(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("emm.user.add.button"))).getText() == null) { - throw new IllegalStateException("This is not the add edit page"); - } - } - - public void editUser() throws IOException { - WebElement deleteButton = driver.findElement(By.xpath(uiElementMapper.getElement("emm.user.delete.button"))); - deleteButton.click(); - WebElement deleteConfirmButton = driver.findElement(By.id(uiElementMapper.getElement("emm.user.delete.button" + - ".confirm"))); - deleteConfirmButton.click(); - } -} \ No newline at end of file diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java deleted file mode 100644 index decf570a..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.user; - -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.iot.integration.ui.pages.UIElementMapper; - -import java.io.IOException; - -public class UserListPage { - private static final Log log = LogFactory.getLog(UserListPage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public UserListPage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - if (!(driver.getCurrentUrl().contains("mdm/users"))) { - // Alternatively, we could navigate to the login page, perhaps logging out first - throw new IllegalStateException("This is not the list users page"); - } - } - - public void deleteUser() throws IOException { - WebElement deleteButton = driver.findElement(By.xpath(uiElementMapper.getElement("emm.user.delete.button"))); - deleteButton.click(); - WebElement deleteConfirmButton = driver.findElement(By.id(uiElementMapper.getElement("emm.user.delete.button" + - ".confirm"))); - deleteConfirmButton.click(); - } -} 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 deleted file mode 100644 index 00598f6e..00000000 --- a/modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties +++ /dev/null @@ -1,512 +0,0 @@ -# -# Copyright (c) 2015, 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. -# - -emm.login.username=username -emm.login.password=password -emm.dashboard.device.div.xpath=/html/body/div[3]/div[7]/div[1]/div/div/div[1] -emm.login.button.xpath=/html/body/div[3]/div[3]/div/button -emm.user.add.button = add-user-btn -emm.add.user.username=username -emm.add.user.firstname=firstname -emm.add.user.lastname=lastname -emm.add.user.email=emailAddress -emm.user.delete.button=//*[@id="inosh"]/td[5]/a[3] -emm.user.delete.button.confirm=remove-user-yes-link -emm.user.delete.button.success=remove-user-success-link -emm.roles.add.button=appbar-btn- -emm.roles.add.rolename.input=rolename -emm.roles.add.role.button=add-role-btn -emm.roles.add.role.created.msg.div=role-created-msg -emm.roles.update.rolename.input=rolename -emm.roles.update.role.button=add-role-btn -emm.roles.update.role.created.msg.div=role-created-msg -emm.roles.update.role.created.success.msg=ROLE WAS UPDATED SUCCESSFULLY -emm.configuration.android.tab.identifier=id('androidConfigLink') -emm.configuration.widows.tab.identifier=id('windowsConfigLink') -emm.configuration.ios.tab.identifier=id('iosConfigLink') -emm.configuration.general.tab.identifier=id('generalConfigLink') -emm.configuration.general.input.monitoringFr.identifier=id('monitoring-config-frequency') -emm.configuration.general.button.save.identifier=id('monitoring-config-frequency') -emm.configuration.saved.lable.identifier=id('record-created-msg') -emm.configuration.saved.lable.val=Please click "Go back to configurations", if you wish to save another configuration or click "Exit" to complete the process and go back to the dashboard. -emm.configuration.saved.button.back.identifier=id('btnBack') -emm.configuration.saved.button.back.val=Go back to configurations -emm.configuration.saved.button.exit.identifier=id('btnExit') -emm.configuration.saved.button.exit.val=Exit -emm.configuration.android.select.identifier=id('android-config-notifier') -emm.configuration.android.input.identifier=id('android-config-notifier-frequency') -emm.configuration.android.button.save.identifier=id('save-android-btn') -emm.configuration.windows.input.identifier=id('windows-config-notifier-frequency') -emm.configuration.windows.button.save.identifier=id('save-windows-btn') -emm.configuration.android.button.save.identifier=id('save-android-btn') -emm.notification.bubble.identifier=notification-bubble -emm.notification.unread.identifier=unReadNotifications -emm.notification.all.identifier=allNotifications - - - - -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-common/web-ui-pages/pom.xml b/modules/integration/tests-common/web-ui-pages/pom.xml index 0dbd7992..7dcce232 100644 --- a/modules/integration/tests-common/web-ui-pages/pom.xml +++ b/modules/integration/tests-common/web-ui-pages/pom.xml @@ -22,7 +22,7 @@ org.wso2.iot tests-common - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT ../pom.xml diff --git a/modules/integration/tests-integration-old/pom.xml b/modules/integration/tests-integration-old/pom.xml deleted file mode 100644 index aa4d7c95..00000000 --- a/modules/integration/tests-integration-old/pom.xml +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - org.wso2.iot - wso2iot-integration - 3.0.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - tests-integration - jar - WSO2 IoT - Backend Integration Tests - - - - - maven-surefire-plugin - false - 2.12.4 - - -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m - false - - src/test/resources/testng-server-mgt.xml - src/test/resources/testng.xml - - - - - maven.test.haltafterfailure - false - - - carbon.zip - - ${basedir}/../../distribution/target/wso2iot-${product.iot.version}.zip - - - - framework.resource.location - - ${basedir}/src/test/resources/ - - - - usedefaultlisteners - false - - ${basedir}/target/security-verifier/ - ${basedir}/src/test/resources/instrumentation.txt - ${basedir}/src/test/resources/filters.txt - - ${basedir}/target - false - - - - maven-dependency-plugin - - - - - copy-jacoco-dependencies - compile - - copy-dependencies - - - ${project.build.directory}/jacoco - jar - org.jacoco.agent - - - - - - copy-secVerifier - compile - - copy-dependencies - - - ${basedir}/target/security-verifier - aar - SecVerifier - true - - - - - unpack-jks - compile - - unpack - - - - - org.wso2.iot - wso2iot - ${product.iot.version} - zip - true - ${basedir}/target/tobeCopied/ - **/*.jks - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - - test-jar - - - - - - org.apache.maven.plugins - maven-surefire-report-plugin - 2.7.1 - - ${basedir}/target/report - registry-api-test - - - - integration-test - - report-only - - - - - - - maven-resources-plugin - 2.6 - - - copy-resources-jks - compile - - copy-resources - - - ${basedir}/src/test/resources/keystores/products - - - - - ${basedir}/target/tobeCopied/wso2iot-${product.iot.version}/repository/resources/security/ - - - **/*.jks - - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - - test-jar - - - - - - - - - - - - org.wso2.carbon.automation - org.wso2.carbon.automation.engine - compile - - - org.wso2.carbon.automation - org.wso2.carbon.automation.extensions - compile - - - org.wso2.carbon.automation - org.wso2.carbon.automation.test.utils - compile - - - org.wso2.carbon.automationutils - org.wso2.carbon.integration.common.utils - compile - - - org.wso2.carbon.automationutils - org.wso2.carbon.integration.common.extensions - compile - - - com.google.code.gson - gson - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.common - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.core - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.certificate.mgt.core - compile - - - - - diff --git a/modules/integration/tests-integration-old/src/test/resources/automation.xml b/modules/integration/tests-integration-old/src/test/resources/automation.xml deleted file mode 100644 index c36ffbd8..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/automation.xml +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - 60000 - - standalone - - false - - 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 - - - 10863 - 10543 - - - - - - - - - - - - - - - - org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension - - - - - - - org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/integration/tests-integration-old/src/test/resources/filters.txt b/modules/integration/tests-integration-old/src/test/resources/filters.txt deleted file mode 100644 index 8813e634..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/filters.txt +++ /dev/null @@ -1,23 +0,0 @@ --org.wso2.carbon.caching.core.identity.* --org.wso2.carbon.caching.core.permissiontree.* --org.wso2.carbon.caching.infinispan.* --org.wso2.carbon.event.core.internal.delivery.jms.* --org.wso2.carbon.event.core.qpid.* --org.wso2.carbon.registry.synchronization.* --*.stub* --*.stub_ --*.stub_4.0.0 --*.stub- --org.eclipse.* --*.equinox.* --org.wso2.carbon.user.core.* --samples.* --*.log4j* --*.axis2* --*.ui* --*.tenant* --*.stratos* --*.eventing* --*tests-transports* --org.wso2.carbon.mediation.statistics* --*startup* diff --git a/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt b/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt deleted file mode 100644 index f9f1894a..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt +++ /dev/null @@ -1,41 +0,0 @@ -org.wso2.carbon.caching.core_ -org.wso2.carbon.discovery.core_ -org.wso2.carbon.discovery.proxy_ -org.wso2.carbon.email.verification_ -org.wso2.carbon.event.core_ -org.wso2.carbon.governance.custom.lifecycles.checklist_ -org.wso2.carbon.governance.gadgets.impactanalysis_ -org.wso2.carbon.governance.gadgetsource_ -org.wso2.carbon.governance.gadgets.resourceimpact_ -org.wso2.carbon.governance.generic_ -org.wso2.carbon.governance.lcm_ -org.wso2.carbon.governance.list_ -org.wso2.carbon.governance.platform.extensions_ -org.wso2.carbon.governance.registry.eventing_ -org.wso2.carbon.governance.registry.extensions_ -org.wso2.carbon.governance.services_ -org.wso2.carbon.identity.user.profile_ -org.wso2.carbon.mashup.javascript.hostobjects.registry_ -org.wso2.carbon.registry.activities_ -org.wso2.carbon.registry.common_ -org.wso2.carbon.registry.core_ -org.wso2.carbon.registry.eventing_ -org.wso2.carbon.registry.extensions_ -org.wso2.carbon.registry.handler_ -org.wso2.carbon.registry.indexing_ -org.wso2.carbon.registry.info_ -org.wso2.carbon.registry.profiles_ -org.wso2.carbon.registry.properties_ -org.wso2.carbon.registry.relations_ -org.wso2.carbon.registry.reporting_ -org.wso2.carbon.registry.resource_ -org.wso2.carbon.registry.search_ -org.wso2.carbon.registry.server_ -org.wso2.carbon.registry.servlet_ -org.wso2.carbon.registry.task_ -org.wso2.carbon.registry.uddi_ -org.wso2.carbon.registry.webdav_ -org.wso2.carbon.registry.ws.api_ -org.wso2.carbon.reporting.api_ -org.wso2.carbon.reporting.core_ -org.wso2.carbon.reporting.util_ diff --git a/modules/integration/tests-integration-old/src/test/resources/log4j.properties b/modules/integration/tests-integration-old/src/test/resources/log4j.properties deleted file mode 100644 index bc395345..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/log4j.properties +++ /dev/null @@ -1,45 +0,0 @@ -# -# Copyright (c) 2015, 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. -# - -# -# This is the log4j configuration file used by WSO2 Carbon -# -# IMPORTANT : Please do not remove or change the names of any -# of the Appenders defined here. The layout pattern & log file -# can be changed using the WSO2 Carbon Management Console, and those -# settings will override the settings in this file. -# - -log4j.rootLogger=INFO, console, Default - -log4j.logger.org.wso2=INFO -log4j.logger.org.apache.axis2.deployment.ModuleDeployer=ERROR -#Automation file apender -log4j.appender.Default=org.apache.log4j.RollingFileAppender -log4j.appender.Default.File=logs/automation.log -log4j.appender.Default.Append=true -log4j.appender.Default.MaxFileSize=10MB -log4j.appender.Default.MaxBackupIndex=10 -log4j.appender.Default.layout=org.apache.log4j.PatternLayout -log4j.appender.Default.layout.ConversionPattern=%d{ISO8601} %-5p [%c] - %m%n - - -#Automation console apender -log4j.appender.console=org.apache.log4j.ConsoleAppender -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern=%-5p [%c] - %m%n diff --git a/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml b/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml deleted file mode 100644 index fa3a3fa7..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/modules/integration/tests-integration-old/src/test/resources/testng.xml b/modules/integration/tests-integration-old/src/test/resources/testng.xml deleted file mode 100644 index 00843078..00000000 --- a/modules/integration/tests-integration-old/src/test/resources/testng.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/integration/tests-integration/pom.xml b/modules/integration/tests-integration/pom.xml index aa4d7c95..380a6f17 100644 --- a/modules/integration/tests-integration/pom.xml +++ b/modules/integration/tests-integration/pom.xml @@ -1,46 +1,47 @@ + - - - +~ Copyright (c) 2017, 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. +--> + org.wso2.iot wso2iot-integration - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT ../pom.xml 4.0.0 - tests-integration + org.wso2.carbon.iot.test.integration + WSO2 IOT - Integration Test Module + Backend Integration Tests for WSO2 IOT Server. jar - WSO2 IoT - Backend Integration Tests maven-surefire-plugin false - 2.12.4 + -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m - false + src/test/resources/testng-server-mgt.xml src/test/resources/testng.xml @@ -51,10 +52,14 @@ maven.test.haltafterfailure false + + java.io.tmpdir + ${basedir}/target/ + carbon.zip - ${basedir}/../../distribution/target/wso2iot-${product.iot.version}.zip + ${basedir}/../../distribution/target/wso2iot-${project.version}.zip @@ -63,37 +68,42 @@ ${basedir}/src/test/resources/ + + server.list + + IOT + + usedefaultlisteners false ${basedir}/target/security-verifier/ + ${basedir}/target/iot ${basedir}/src/test/resources/instrumentation.txt ${basedir}/src/test/resources/filters.txt + ${basedir}/target/iot ${basedir}/target - false maven-dependency-plugin - - copy-jacoco-dependencies + copy-emma-dependencies compile copy-dependencies - ${project.build.directory}/jacoco + ${project.build.directory}/emma jar - org.jacoco.agent + emma - copy-secVerifier compile @@ -109,7 +119,7 @@ - unpack-jks + unpack-mar-jks compile unpack @@ -119,11 +129,11 @@ org.wso2.iot wso2iot - ${product.iot.version} + ${project.version} zip true ${basedir}/target/tobeCopied/ - **/*.jks + **/*.jks,**/*.mar,**/axis2_client.xml
@@ -142,24 +152,6 @@ - - org.apache.maven.plugins - maven-surefire-report-plugin - 2.7.1 - - ${basedir}/target/report - registry-api-test - - - - integration-test - - report-only - - - - - maven-resources-plugin 2.6 @@ -176,7 +168,7 @@ - ${basedir}/target/tobeCopied/wso2iot-${product.iot.version}/repository/resources/security/ + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/ **/*.jks @@ -185,82 +177,94 @@
- - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - + copy-stratos-jks + compile - test-jar + copy-resources + + ${basedir}/src/test/resources/keystores/stratos + + + + + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/ + + + **/*.jks + + + + + + + copy-axis2files + compile + + copy-resources + + + ${basedir}/src/test/resources/axis2config + + + + + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/conf/axis2/ + + + **/*.xml + + + + + + + copy-resources-mar + compile + + copy-resources + + + ${basedir}/src/test/resources/client/modules + + + + + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/deployment/client/modules + + + **/*.mar + + + + - - - org.wso2.carbon.automation - org.wso2.carbon.automation.engine - compile + org.wso2.iot + org.wso2.carbon.iot.core.integration.ui.pages org.wso2.carbon.automation - org.wso2.carbon.automation.extensions - compile + org.wso2.carbon.automation.engine org.wso2.carbon.automation org.wso2.carbon.automation.test.utils - compile - - - org.wso2.carbon.automationutils - org.wso2.carbon.integration.common.utils - compile org.wso2.carbon.automationutils org.wso2.carbon.integration.common.extensions - compile com.google.code.gson gson - compile - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.common - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.core - compile - - - org.wso2.carbon.devicemgt - org.wso2.carbon.certificate.mgt.core - compile - - - diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java similarity index 97% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java index 18f088c4..5a7874b1 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java similarity index 99% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java index 787a14cf..537c9538 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import java.io.File; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java similarity index 74% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java index 01142195..404175e6 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; @@ -27,27 +27,24 @@ import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.carbon.automation.engine.context.TestUserMode; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; /** * This class creates a customised Http Client Class */ -public class MDMHttpClient { +public class IOTHttpClient { private static final String AUTHORIZATION = "Authorization"; - private static Log log = LogFactory.getLog(MDMHttpClient.class); + private static Log log = LogFactory.getLog(IOTHttpClient.class); private String backEndUrl; private String authrizationString; private Map requestHeaders = new HashMap(); - public MDMHttpClient(String backEndUrl, String contentType, String authorization) { + public IOTHttpClient(String backEndUrl, String contentType, String authorization) { this.backEndUrl = backEndUrl; this.requestHeaders.put(Constants.CONTENT_TYPE, contentType); @@ -77,7 +74,7 @@ public class MDMHttpClient { this.requestHeaders.remove(headerName); } - public MDMResponse post(String endpoint, String body) { + public IOTResponse post(String endpoint, String body) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -89,20 +86,20 @@ public class MDMHttpClient { StringRequestEntity requestEntity = new StringRequestEntity(body, requestHeaders.get(Constants.CONTENT_TYPE), Constants.UTF8); method.setRequestEntity(requestEntity); - MDMResponse mdmResponse = new MDMResponse(); - mdmResponse.setStatus(client.executeMethod(method)); - mdmResponse.setBody(method.getResponseBodyAsString()); - return mdmResponse; + IOTResponse iotResponse = new IOTResponse(); + iotResponse.setStatus(client.executeMethod(method)); + iotResponse.setBody(method.getResponseBodyAsString()); + return iotResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at MDMResponse post for GeneralSecurityException", e); + log.error("Failure occurred at IOTResponse post for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occured at MDMResponse post for IOException", e); + log.error("Failure occured at IOTResponse post for IOException", e); } return null; } - public MDMResponse put(String endpoint, String body) { + public IOTResponse put(String endpoint, String body) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -114,20 +111,20 @@ public class MDMHttpClient { StringRequestEntity requestEntity = new StringRequestEntity( body, requestHeaders.get(Constants.CONTENT_TYPE), Constants.UTF8); method.setRequestEntity(requestEntity); - MDMResponse mdmResponse = new MDMResponse(); - mdmResponse.setStatus(client.executeMethod(method)); - mdmResponse.setBody(method.getResponseBodyAsString()); - return mdmResponse; + IOTResponse iotResponse = new IOTResponse(); + iotResponse.setStatus(client.executeMethod(method)); + iotResponse.setBody(method.getResponseBodyAsString()); + return iotResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at MDMResponse put for GeneralSecurityException", e); + log.error("Failure occurred at IOTResponse put for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at MDMResponse put for IO Exception", e); + log.error("Failure occurred at IOTResponse put for IO Exception", e); } return null; } - public MDMResponse get(String endpoint) { + public IOTResponse get(String endpoint) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -139,21 +136,21 @@ public class MDMHttpClient { method.setRequestHeader(AUTHORIZATION, authrizationString); method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); - MDMResponse mdmResponse = new MDMResponse(); - mdmResponse.setStatus(client.executeMethod(method)); - mdmResponse.setBody(new String(method.getResponseBody())); - return mdmResponse; + IOTResponse iotResponse = new IOTResponse(); + iotResponse.setStatus(client.executeMethod(method)); + iotResponse.setBody(new String(method.getResponseBody())); + return iotResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at MDMResponse get for GeneralSecurityException", e); + log.error("Failure occurred at IOTResponse get for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at MDMResponse get for IOException", e); + log.error("Failure occurred at IOTResponse get for IOException", e); } return null; } - public MDMResponse delete(String endpoint) { + public IOTResponse delete(String endpoint) { HttpClient client = new HttpClient(); @@ -170,15 +167,15 @@ public class MDMHttpClient { method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); - MDMResponse mdmResponse = new MDMResponse(); - mdmResponse.setStatus(client.executeMethod(method)); - mdmResponse.setBody(method.getResponseBodyAsString()); - return mdmResponse; + IOTResponse iotResponse = new IOTResponse(); + iotResponse.setStatus(client.executeMethod(method)); + iotResponse.setBody(method.getResponseBodyAsString()); + return iotResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at MDMResponse delete for GeneralSecurityException", e); + log.error("Failure occurred at IOTResponse delete for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at MDMResponse delete for IOException", e); + log.error("Failure occurred at IOTResponse delete for IOException", e); } return null; } diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java similarity index 93% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java index 8380a8a1..8affc40a 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java @@ -15,12 +15,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; /** * This class contains the functions to handle a HTTP Response */ -public class MDMResponse { +public class IOTResponse { private int status; private String body; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java similarity index 98% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java index 95665a75..bfa54cdb 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import org.apache.commons.net.util.Base64; import org.json.JSONObject; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java similarity index 97% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java index 5999297c..74c26f46 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java similarity index 98% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java index a6b4e7de..620d59b6 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java @@ -15,9 +15,8 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; -import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; import org.wso2.carbon.automation.test.utils.http.client.HttpRequestUtil; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java similarity index 98% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java index 1e91f6b4..6883e190 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.common; +package org.wso2.iot.integration.common; import org.wso2.carbon.automation.engine.context.AutomationContext; import org.wso2.carbon.automation.engine.context.TestUserMode; diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java similarity index 93% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java index f44dde62..0fe0525d 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.configuration; +package org.wso2.iot.integration.configuration; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for configuration management backend services. @@ -33,7 +33,7 @@ public class ConfigurationManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.ConfigurationManagement.CONFIGURATION_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.ConfigurationManagement.CONFIGURATION_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java similarity index 95% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java index b7a7a325..11d8ca8a 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.device.configuration; +package org.wso2.iot.integration.device.configuration; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for Android configuration management backend services. @@ -33,7 +33,7 @@ public class AndroidConfigurationManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.AndroidConfigurationManagement.DEVICE_CONFIGURATION_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.AndroidConfigurationManagement.DEVICE_CONFIGURATION_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java similarity index 96% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java index 7f01d7ce..b2205cee 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.device.enrollment; +package org.wso2.iot.integration.device.enrollment; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This contains testing of Android device enrollment which is necessary to run prior to all other Android related @@ -33,7 +33,7 @@ import org.wso2.mdm.integration.common.*; public class AndroidEnrollment extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java similarity index 94% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java index 24a53d95..fe465ae4 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.device.enrollment; +package org.wso2.iot.integration.device.enrollment; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -25,10 +25,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.Constants; -import org.wso2.mdm.integration.common.OAuthUtil; -import org.wso2.mdm.integration.common.RestClient; -import org.wso2.mdm.integration.common.TestBase; +import org.wso2.iot.integration.common.Constants; +import org.wso2.iot.integration.common.OAuthUtil; +import org.wso2.iot.integration.common.RestClient; +import org.wso2.iot.integration.common.TestBase; import java.io.File; import java.net.URL; @@ -42,7 +42,7 @@ public class WindowsEnrollment extends TestBase { private static String bsd; private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.WindowsEnrollment.WINDOWS_ENROLLMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.WindowsEnrollment.WINDOWS_ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java similarity index 98% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java index 58f18ae1..5b20f691 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.device.mgt; +package org.wso2.iot.integration.device.mgt; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -27,8 +27,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; - +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for Android device management backend services. diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java similarity index 98% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java index dcf980c0..fdb46a6e 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.device.operation; +package org.wso2.iot.integration.device.operation; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -26,7 +26,7 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This contain tests to check operations supported by Android. Test are executed against a previously enrolled device @@ -34,7 +34,7 @@ import org.wso2.mdm.integration.common.*; public class AndroidOperation extends TestBase { private RestClient client; - @BeforeTest(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeTest(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java similarity index 88% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java index a112e819..ab3d6ea1 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java @@ -16,15 +16,13 @@ * under the License. */ -package org.wso2.mdm.integration.device.policy; +package org.wso2.iot.integration.device.policy; -import junit.framework.Assert; -import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This contain tests to check policy endpoints supported by Android. @@ -34,7 +32,7 @@ public class AndroidPolicy extends TestBase { private RestClient client; - @BeforeTest(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeTest(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java new file mode 100644 index 00000000..a4248b10 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2017, 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.iot.integration.extensions; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.context.ContextXpathConstants; +import org.wso2.carbon.automation.engine.context.TestUserMode; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; +import org.wso2.carbon.automation.extensions.ExtensionConstants; +import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; + +import javax.xml.xpath.XPathExpressionException; + +/** + * Test Automation server extension to start the DAS. + * This will set the carbon_home to {carbonHome}/core and port offset : 2 + */ +public class AnalyticsServerExtension extends ExecutionListenerExtension { + + private CustomTestServerManager serverManager; + private static final Log log = LogFactory.getLog(CarbonServerExtension.class); + private String executionEnvironment; + private AutomationContext automationContext; + + + @Override + public void initiate() throws AutomationFrameworkException { + try { + automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); + if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { + getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "2"); + } + serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); + executionEnvironment = + automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); + + } catch (XPathExpressionException e) { + handleException("Error while initiating test environment", e); + } + } + + @Override + public void onExecutionStart() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + String carbonHome = serverManager.startServer("analytics"); + log.info(carbonHome); + System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); + } + } catch (Exception e) { + handleException("Fail to start carbon server ", e); + } + } + + @Override + public void onExecutionFinish() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + serverManager.stopServer(); + } + } catch (Exception e) { + handleException("Fail to stop carbon server ", e); + } + } + + private static void handleException(String msg, Exception e) { + log.error(msg, e); + throw new RuntimeException(msg, e); + } +} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java new file mode 100644 index 00000000..2bb86d87 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2017, 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.iot.integration.extensions; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.context.ContextXpathConstants; +import org.wso2.carbon.automation.engine.context.TestUserMode; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; +import org.wso2.carbon.automation.extensions.ExtensionConstants; +import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; + +import javax.xml.xpath.XPathExpressionException; + +/** + * Test Automation server extension to start the Broker. + * This will set the carbon_home to {carbonHome}/core and port offset : 3 + */ +public class BrokerServerExtension extends ExecutionListenerExtension { + + private CustomTestServerManager serverManager; + private static final Log log = LogFactory.getLog(CarbonServerExtension.class); + private String executionEnvironment; + private AutomationContext automationContext; + + + @Override + public void initiate() throws AutomationFrameworkException { + try { + automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); + if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { + getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "3"); + } + serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); + executionEnvironment = + automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); + + } catch (XPathExpressionException e) { + handleException("Error while initiating test environment", e); + } + } + + @Override + public void onExecutionStart() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + String carbonHome = serverManager.startServer("broker"); + log.info(carbonHome); + System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); + } + } catch (Exception e) { + handleException("Fail to start carbon server ", e); + } + } + + @Override + public void onExecutionFinish() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + serverManager.stopServer(); + } + } catch (Exception e) { + handleException("Fail to stop carbon server ", e); + } + } + + private static void handleException(String msg, Exception e) { + log.error(msg, e); + throw new RuntimeException(msg, e); + } +} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java new file mode 100644 index 00000000..7f383780 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2005-2017, 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.iot.integration.extensions; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.automation.engine.FrameworkConstants; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.extensions.ExtensionConstants; +import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager; + +import javax.xml.xpath.XPathExpressionException; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class CustomTestServerManager { + protected CarbonServerManager carbonServer; + protected String carbonZip; + protected int portOffset; + protected Map commandMap = new HashMap(); + private static final Log log = LogFactory.getLog(CustomTestServerManager.class); + protected String carbonHome; + + public CustomTestServerManager(AutomationContext context) { + carbonServer = new CarbonServerManager(context); + } + + public CustomTestServerManager(AutomationContext context, String carbonZip) { + carbonServer = new CarbonServerManager(context); + this.carbonZip = carbonZip; + } + + public CustomTestServerManager(AutomationContext context, int portOffset) { + carbonServer = new CarbonServerManager(context); + this.portOffset = portOffset; + commandMap.put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, String.valueOf(portOffset)); + } + + public CustomTestServerManager(AutomationContext context, String carbonZip, + Map commandMap) { + carbonServer = new CarbonServerManager(context); + this.carbonZip = carbonZip; + if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) { + this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND)); + } else { + throw new IllegalArgumentException("portOffset value must be set in command list"); + } + this.commandMap = commandMap; + } + + public String getCarbonZip() { + return carbonZip; + } + + public String getCarbonHome() { + return carbonHome; + } + + public int getPortOffset() { + return portOffset; + } + + public void configureServer() throws AutomationFrameworkException { + + } + + + public Map getCommands() { + return commandMap; + } + + /** + * This method is called for starting a Carbon server in preparation for execution of a + * TestSuite + *

+ * Add the @BeforeSuite TestNG annotation in the method overriding this method + * @param server : The server which needs to be start. + * @return The CARBON_HOME + * @throws IOException If an error occurs while copying the deployment artifacts into the + * Carbon server + */ + public String startServer(String server) + throws AutomationFrameworkException, IOException, XPathExpressionException { + if(carbonHome == null) { + if (carbonZip == null) { + carbonZip = System.getProperty(FrameworkConstants.SYSTEM_PROPERTY_CARBON_ZIP_LOCATION); + } + if (carbonZip == null) { + throw new IllegalArgumentException("carbon zip file cannot find in the given location"); + } + carbonHome = carbonServer.setUpCarbonHome(carbonZip) + "/" + server; + configureServer(); + } + log.info("Carbon Home - " + carbonHome ); + if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) { + this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND)); + } else { + this.portOffset = 0; + } + carbonServer.startServerUsingCarbonHome(carbonHome, commandMap); + return carbonHome; + } + + /** + * Restarting server already started by the method startServer + * @throws AutomationFrameworkException + */ + public void restartGracefully() throws AutomationFrameworkException { + if(carbonHome == null) { + throw new AutomationFrameworkException("No Running Server found to restart. " + + "Please make sure whether server is started"); + } + carbonServer.restartGracefully(); + } + + /** + * This method is called for stopping a Carbon server + *

+ * Add the @AfterSuite annotation in the method overriding this method + * + * @throws AutomationFrameworkException If an error occurs while shutting down the server + */ + public void stopServer() throws AutomationFrameworkException { + carbonServer.serverShutdown(portOffset); + } + + + + +} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java new file mode 100644 index 00000000..e8df4bad --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2017, 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.iot.integration.extensions; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.context.ContextXpathConstants; +import org.wso2.carbon.automation.engine.context.TestUserMode; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; +import org.wso2.carbon.automation.extensions.ExtensionConstants; +import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; + +import javax.xml.xpath.XPathExpressionException; + +/** + * Test Automation server extension to start the IOT core. + * This will set the carbon_home to {carbonHome}/core and port offset : 0 + */ +public class IOTServerExtension extends ExecutionListenerExtension { + + private CustomTestServerManager serverManager; + private static final Log log = LogFactory.getLog(CarbonServerExtension.class); + private String executionEnvironment; + private AutomationContext automationContext; + + + @Override + public void initiate() throws AutomationFrameworkException { + try { + automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); + if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { + getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "0"); + } + serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); + executionEnvironment = + automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); + + } catch (XPathExpressionException e) { + handleException("Error while initiating test environment", e); + } + } + + @Override + public void onExecutionStart() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + String carbonHome = serverManager.startServer("core"); + log.info(carbonHome); + System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); + } + } catch (Exception e) { + handleException("Fail to start carbon server ", e); + } + } + + @Override + public void onExecutionFinish() throws AutomationFrameworkException { + try { + if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { + serverManager.stopServer(); + } + } catch (Exception e) { + handleException("Fail to stop carbon server ", e); + } + } + + private static void handleException(String msg, Exception e) { + log.error(msg, e); + throw new RuntimeException(msg, e); + } +} diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java similarity index 83% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java index 415cfb1c..64511e45 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.feature; +package org.wso2.iot.integration.feature; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -23,7 +23,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.Constants; +import org.wso2.iot.integration.common.OAuthUtil; +import org.wso2.iot.integration.common.RestClient; +import org.wso2.iot.integration.common.TestBase; /** * This class contains integration tests for feature management backend services. @@ -32,7 +35,7 @@ public class FeatureManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.FeatureManagement.FEATURE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.FeatureManagement.FEATURE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java similarity index 91% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java index 3aae4a03..a96e2abd 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.license; +package org.wso2.iot.integration.license; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -23,7 +23,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for license management backend services. @@ -32,7 +32,7 @@ public class LicenseManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.LicenseManagement.LICENSE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.LicenseManagement.LICENSE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java similarity index 85% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java index 762fec4e..caf575f6 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.mobileDevice; +package org.wso2.iot.integration.mobileDevice; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -23,19 +23,19 @@ import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for API Device management backend services. */ public class MobileDeviceManagement extends TestBase { - private MDMHttpClient client; + private IOTHttpClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Add an Android device.") @@ -44,7 +44,7 @@ public class MobileDeviceManagement extends TestBase { Constants.AndroidEnrollment.ENROLLMENT_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST); enrollmentData.addProperty(Constants.DEVICE_IDENTIFIER_KEY, Constants.DEVICE_ID); - MDMResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); + IOTResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); AssertUtil.jsonPayloadCompare(PayloadGenerator.getJsonPayload( Constants.AndroidEnrollment.ENROLLMENT_RESPONSE_PAYLOAD_FILE_NAME, @@ -53,7 +53,7 @@ public class MobileDeviceManagement extends TestBase { @Test(dependsOnMethods = {"addEnrollment"}, description = "Test count devices") public void testCountDevices() throws Exception { - MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); + IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertTrue(response.getBody().toString().equals(Constants.MobileDeviceManagement.NO_OF_DEVICES)); @@ -61,13 +61,13 @@ public class MobileDeviceManagement extends TestBase { @Test(dependsOnMethods = {"addEnrollment"}, description = "Test view devices") public void testViewDevices() throws Exception { - MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); + IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } @Test(dependsOnMethods = {"addEnrollment"}, description = "Test view device types") public void testViewDeviceTypes() throws Exception { - MDMResponse response = client.get(Constants.MobileDeviceManagement.VIEW_DEVICE_TYPES_ENDPOINT); + IOTResponse response = client.get(Constants.MobileDeviceManagement.VIEW_DEVICE_TYPES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(PayloadGenerator.getJsonPayloadToString (Constants.MobileDeviceManagement.VIEW_DEVICE_RESPONSE_PAYLOAD_FILE_NAME), response.getBody()); diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java similarity index 82% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java index 6e3ea8e2..2f32fe27 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java @@ -16,38 +16,38 @@ * under the License. */ -package org.wso2.mdm.integration.mobileDevice; +package org.wso2.iot.integration.mobileDevice; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for API Mobile Device Management with No Devices Enrolled. */ public class MobileDeviceManagementWithNoDevices extends TestBase { - private MDMHttpClient client; + private IOTHttpClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test count devices with no added devices") public void testCountDevicesWithNoDevices() throws Exception { - MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); + IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(Constants.ZERO, response.getBody()); } @Test(description = "Test view devices with no added devices") public void testViewDevicesWithNoDevices() throws Exception { - MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); + IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(response.getBody(), Constants.NULL); } diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java similarity index 97% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java index b0d5fe8b..9056f8a0 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.notification; +package org.wso2.iot.integration.notification; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for notification management backend services. diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java similarity index 89% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java index 833e229f..a7e39941 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.operation; +package org.wso2.iot.integration.operation; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -25,7 +25,7 @@ import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -35,14 +35,14 @@ import org.testng.annotations.Test; public class OperationManagement extends TestBase { private JsonObject device; - private MDMHttpClient client; + private IOTHttpClient client; private RestClient rclient; - @BeforeClass(alwaysRun = true, groups = {Constants.OperationManagement.OPERATION_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.OperationManagement.OPERATION_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); this.rclient = new RestClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @@ -52,7 +52,7 @@ public class OperationManagement extends TestBase { Constants.AndroidEnrollment.ENROLLMENT_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST); enrollmentData.addProperty(Constants.DEVICE_IDENTIFIER_KEY, Constants.DEVICE_ID); - MDMResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); + IOTResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); AssertUtil.jsonPayloadCompare(PayloadGenerator.getJsonPayload( Constants.AndroidEnrollment.ENROLLMENT_RESPONSE_PAYLOAD_FILE_NAME, @@ -75,7 +75,7 @@ public class OperationManagement extends TestBase { @Test(dependsOnMethods = {"testInstallApps"}, description = "Test get device apps with wrong Device ID") public void testGetDeviceAppsWithWrongDeviceID() throws Exception { - MDMResponse response = client.get(Constants.OperationManagement.GET_DEVICE_APPS_ENDPOINT + + IOTResponse response = client.get(Constants.OperationManagement.GET_DEVICE_APPS_ENDPOINT + Constants.NUMBER_NOT_EQUAL_TO_DEVICE_ID + Constants.OperationManagement.PATH_APPS); Assert.assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); @@ -83,7 +83,7 @@ public class OperationManagement extends TestBase { @Test(dependsOnMethods = {"testInstallApps"}, description = "Test get operations for device with wrong Device ID") public void testGetDeviceOperationsWithWrongDeviceID() throws Exception { - MDMResponse response = client.get(Constants.OperationManagement.GET_DEVICE_OPERATIONS_ENDPOINT + Constants.DEVICE_IMEI); + IOTResponse response = client.get(Constants.OperationManagement.GET_DEVICE_OPERATIONS_ENDPOINT + Constants.DEVICE_IMEI); Assert.assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); } } \ No newline at end of file diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java similarity index 86% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java index f7b338f9..70ec513a 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java @@ -15,33 +15,33 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.policy; +package org.wso2.iot.integration.policy; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for policy management backend services. */ public class PolicyManagement extends TestBase { - private MDMHttpClient client; + private IOTHttpClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.PolicyManagement.POLICY_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.PolicyManagement.POLICY_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test add policy.") public void testAddPolicy() throws Exception { - MDMResponse response = client.post(Constants.PolicyManagement.ADD_POLICY_ENDPOINT, + IOTResponse response = client.post(Constants.PolicyManagement.ADD_POLICY_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.PolicyManagement.POLICY_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST).toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); @@ -52,7 +52,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test view policy list.", dependsOnMethods = {"testAddPolicy"}) public void testViewPolicyList() throws Exception { - MDMResponse response = client.get(Constants.PolicyManagement.VIEW_POLICY_LIST_ENDPOINT); + IOTResponse response = client.get(Constants.PolicyManagement.VIEW_POLICY_LIST_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } @@ -60,7 +60,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test update policy.", dependsOnMethods = {"testViewPolicyList"}) public void testUpdatePolicy() throws Exception { - MDMResponse response = client.put(Constants.PolicyManagement.UPDATE_POLICY_ENDPOINT, + IOTResponse response = client.put(Constants.PolicyManagement.UPDATE_POLICY_ENDPOINT, PayloadGenerator.getJsonPayload( Constants.PolicyManagement.POLICY_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_PUT).toString()); @@ -72,7 +72,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test remove policy.", dependsOnMethods = {"testUpdatePolicy"}) public void testRemovePolicy() throws Exception { - MDMResponse response = client.post(Constants.PolicyManagement.REMOVE_POLICY_ENDPOINT, + IOTResponse response = client.post(Constants.PolicyManagement.REMOVE_POLICY_ENDPOINT, Constants.PolicyManagement.REMOVE_POLICY_PAYLOAD_FILE_NAME); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(PayloadGenerator.getJsonPayload(Constants.PolicyManagement.POLICY_RESPONSE_PAYLOAD_FILE_NAME, diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java similarity index 82% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java index 999f888f..185bca4c 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java @@ -15,33 +15,32 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.mdm.integration.role; +package org.wso2.iot.integration.role; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for role management backend services. */ public class RoleManagement extends TestBase { - private MDMHttpClient client; + private IOTHttpClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.RoleManagement.ROLE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.RoleManagement.ROLE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test add role.") public void testAddRole() throws Exception { - MDMResponse response = client.post(Constants.RoleManagement.ADD_ROLE_ENDPOINT, + IOTResponse response = client.post(Constants.RoleManagement.ADD_ROLE_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.RoleManagement.ROLE_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST).toString()); Assert.assertEquals(HttpStatus.SC_CREATED, response.getStatus()); @@ -49,7 +48,7 @@ public class RoleManagement extends TestBase { @Test(description = "Test update permission role.", dependsOnMethods = {"testAddRole"}) public void testUpdateRolePermission() throws Exception { - MDMResponse response = client.put(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_ENDPOINT, + IOTResponse response = client.put(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_PUT).toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); @@ -57,7 +56,7 @@ public class RoleManagement extends TestBase { @Test(description = "Test remove user.", dependsOnMethods = {"testUpdateRolePermission"}) public void testRemoveRole() throws Exception { - MDMResponse response = client.delete(Constants.RoleManagement.REMOVE_ROLE_ENDPOINT); + IOTResponse response = client.delete(Constants.RoleManagement.REMOVE_ROLE_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } } \ No newline at end of file diff --git a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java similarity index 96% rename from modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java rename to modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java index dcd5ed48..debc6222 100644 --- a/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.mdm.integration.user; +package org.wso2.iot.integration.user; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.mdm.integration.common.*; +import org.wso2.iot.integration.common.*; /** * This class contains integration tests for user management backend services. @@ -33,7 +33,7 @@ public class UserManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = {Constants.UserManagement.USER_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = { Constants.UserManagement.USER_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/resources/automation.xml b/modules/integration/tests-integration/src/test/resources/automation.xml index c36ffbd8..09c68d76 100644 --- a/modules/integration/tests-integration/src/test/resources/automation.xml +++ b/modules/integration/tests-integration/src/test/resources/automation.xml @@ -1,6 +1,6 @@ - - + @@ -25,15 +24,11 @@ - 60000 + 300000 standalone - - false @@ -50,7 +45,7 @@ - http://10.100.2.51:4444/wd/hub/ + http://10.100.2.51:4444/wd/hub/ @@ -169,39 +164,35 @@ - + - + localhost - 10863 - 10543 + 9763 + 9446 + 9443 + 9445 - + + + - - - - org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension - - - - - - - org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension - + org.wso2.iot.integration.extensions.BrokerServerExtension + org.wso2.iot.integration.extensions.IOTServerExtension + org.wso2.iot.integration.extensions.AnalyticsServerExtension + org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension @@ -209,13 +200,13 @@ - + - + diff --git a/modules/integration/tests-integration-old/src/test/resources/automationSchema.xsd b/modules/integration/tests-integration/src/test/resources/automationSchema.xsd similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/automationSchema.xsd rename to modules/integration/tests-integration/src/test/resources/automationSchema.xsd diff --git a/modules/integration/tests-integration/src/test/resources/instrumentation.txt b/modules/integration/tests-integration/src/test/resources/instrumentation.txt index 917b2bb7..f9f1894a 100644 --- a/modules/integration/tests-integration/src/test/resources/instrumentation.txt +++ b/modules/integration/tests-integration/src/test/resources/instrumentation.txt @@ -1,11 +1,41 @@ -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_ +org.wso2.carbon.caching.core_ +org.wso2.carbon.discovery.core_ +org.wso2.carbon.discovery.proxy_ +org.wso2.carbon.email.verification_ +org.wso2.carbon.event.core_ +org.wso2.carbon.governance.custom.lifecycles.checklist_ +org.wso2.carbon.governance.gadgets.impactanalysis_ +org.wso2.carbon.governance.gadgetsource_ +org.wso2.carbon.governance.gadgets.resourceimpact_ +org.wso2.carbon.governance.generic_ +org.wso2.carbon.governance.lcm_ +org.wso2.carbon.governance.list_ +org.wso2.carbon.governance.platform.extensions_ +org.wso2.carbon.governance.registry.eventing_ +org.wso2.carbon.governance.registry.extensions_ +org.wso2.carbon.governance.services_ +org.wso2.carbon.identity.user.profile_ +org.wso2.carbon.mashup.javascript.hostobjects.registry_ +org.wso2.carbon.registry.activities_ +org.wso2.carbon.registry.common_ +org.wso2.carbon.registry.core_ +org.wso2.carbon.registry.eventing_ +org.wso2.carbon.registry.extensions_ +org.wso2.carbon.registry.handler_ +org.wso2.carbon.registry.indexing_ +org.wso2.carbon.registry.info_ +org.wso2.carbon.registry.profiles_ +org.wso2.carbon.registry.properties_ +org.wso2.carbon.registry.relations_ +org.wso2.carbon.registry.reporting_ +org.wso2.carbon.registry.resource_ +org.wso2.carbon.registry.search_ +org.wso2.carbon.registry.server_ +org.wso2.carbon.registry.servlet_ +org.wso2.carbon.registry.task_ +org.wso2.carbon.registry.uddi_ +org.wso2.carbon.registry.webdav_ +org.wso2.carbon.registry.ws.api_ +org.wso2.carbon.reporting.api_ +org.wso2.carbon.reporting.core_ +org.wso2.carbon.reporting.util_ diff --git a/modules/integration/tests-integration/src/test/resources/keystores/products/wso2mdm.jks b/modules/integration/tests-integration/src/test/resources/keystores/products/wso2mdm.jks new file mode 100644 index 0000000000000000000000000000000000000000..66b68ea395562b9716c8c579b944ae19b5dbf296 GIT binary patch literal 9485 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 W`0v%-2|WuF22km0Do6xx&3^&4V5S-X literal 0 HcmV?d00001 diff --git a/modules/integration/tests-integration-old/src/test/resources/keystores/products/client-truststore.jks b/modules/integration/tests-integration/src/test/resources/keystores/stratos/client-truststore.jks similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/keystores/products/client-truststore.jks rename to modules/integration/tests-integration/src/test/resources/keystores/stratos/client-truststore.jks diff --git a/modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2carbon.jks b/modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2carbon.jks similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2carbon.jks rename to modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2carbon.jks diff --git a/modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2certs.jks b/modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2certs.jks similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2certs.jks rename to modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2certs.jks diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks b/modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2emm.jks similarity index 100% rename from modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks rename to modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2emm.jks diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-config-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-config-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-config-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-config-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-configuration-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-configuration-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-configuration-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-configuration-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-device-mgt-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-device-mgt-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-device-mgt-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-device-mgt-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-operation-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-operation-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-operation-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-operation-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/android-policy-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/android-policy-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/android-policy-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/android-policy-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/configuration-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/configuration-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/configuration-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/configuration-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/configuration-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/configuration-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/configuration-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/configuration-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/get-notifications-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/get-notifications-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/get-notifications-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/get-notifications-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/license-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/license-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/license-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/license-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/notification-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/notification-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/notification-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/notification-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/notification-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/notification-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/notification-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/notification-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/policy-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/policy-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/policy-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/policy-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/policy-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/policy-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/policy-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/policy-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/role-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/role-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/role-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/role-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/user-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/user-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/user-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/user-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/payloads/user-response-payloads.json b/modules/integration/tests-integration/src/test/resources/payloads/user-response-payloads.json similarity index 100% rename from modules/integration/tests-integration-old/src/test/resources/payloads/user-response-payloads.json rename to modules/integration/tests-integration/src/test/resources/payloads/user-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/testng.xml b/modules/integration/tests-integration/src/test/resources/testng.xml index 2cfc4734..41878cf0 100644 --- a/modules/integration/tests-integration/src/test/resources/testng.xml +++ b/modules/integration/tests-integration/src/test/resources/testng.xml @@ -1,5 +1,5 @@ - - - org.wso2.iot - wso2iot-integration - 3.0.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - WSO2 IoT - Integration Test UI Module - org.wso2.carbon.iot.core.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/wso2iot-${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.iot - wso2iot - ${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/wso2iot-${project.version}/repository/resources/security/ - - - **/*.jks - - - - - - - copy-axis2files - compile - - copy-resources - - - ${basedir}/src/test/resources/axis2config - - - - - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/conf/axis2/ - - - **/*.xml - - - - - - - copy-resources-mar - compile - - copy-resources - - - ${basedir}/src/test/resources/client/modules - - - - - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/deployment/client/modules - - - **/*.mar - - - - - - - - - - - - - org.wso2.iot - org.wso2.carbon.iot.core.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.automationutils - org.wso2.carbon.integration.common.extensions - - - - - true - - - diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java deleted file mode 100644 index 9cbfaacd..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2015, 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; - -public class Constants { - public static final String MDM_LOGIN_PATH = "/mdm/login"; - public static final String LOGIN_GROUP = "login-group"; - public static final String MDM_ROLES_URL = "/mdm/roles"; - public static final String MDM_USER_ADD_URL = "/mdm/users/add-user"; - public static final String MDM_USER_URL = "/mdm/users/"; - public static final String MDM_ROLES_EDIT_URL = "/mdm/roles/edit-role/"; - public static final String MDM_PLATFORM_CONFIG_URL = "/mdm/platform-configuration"; - public static final String MDM_NOTIFICATION_URL = "/mdm/notification-listing"; - public static final String MDM_HOME_URL = "/mdm"; -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java deleted file mode 100644 index 57677181..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.platformConfiguration.PlatformConfiguration; - - -public class GeneralConfigurationTestCases extends EMMIntegrationUiBaseTestCase { - private static String configValue = "3600"; - private WebDriver driver; - - @BeforeClass(alwaysRun = true) - public void setUp() throws Exception { - super.init(); - driver = BrowserManager.getWebDriver(); - LoginUtils.login(driver, automationContext, getWebAppURL()); - } - - @Test(description = "verify updating general platform configuration in emm") - public void testChangeGeneralConfig() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); - PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); - platformConfiguration.changeGeneralConfig(configValue); - } - - @Test(description = "verify updating android platform configuration in emm") - public void testChangeAndroidConfig() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); - PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); - platformConfiguration.changeAndroidConfig(configValue); - } - - @Test(description = "verify updating windows platform configuration in emm") - public void testChangeWindowsConfig() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); - PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); - platformConfiguration.changeWindowsConfig(configValue); - } - - @AfterClass(alwaysRun = true) - public void tearDown() throws Exception { - driver.quit(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java deleted file mode 100644 index fbedbd30..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2015, 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.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.iot.integration.ui.pages.UIElementMapper; -import org.wso2.iot.integration.ui.pages.login.MDMLoginPage; - -public class LoginUtils { - private static UIElementMapper uiElementMapper; - - public static void login(WebDriver driver, AutomationContext automationContext, - String webAppURL) throws Exception { - uiElementMapper = UIElementMapper.getInstance(); - driver.get(webAppURL + Constants.MDM_LOGIN_PATH); - MDMLoginPage test = new MDMLoginPage(driver); - WebElement - userNameField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.username"))); - WebElement passwordField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.password"))); - userNameField - .sendKeys(new CharSequence[]{automationContext.getSuperTenant().getTenantAdmin().getUserName()}); - passwordField.sendKeys(new CharSequence[]{ - automationContext.getSuperTenant().getTenantAdmin().getPassword()}); - driver.findElement(By.xpath(uiElementMapper.getElement("emm.login.button.xpath"))).click(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java deleted file mode 100644 index 6fe06dbd..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, 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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.Notification.NotificationView; - -public class NotificationValidationTestCase extends EMMIntegrationUiBaseTestCase { - private static String notificationValue = "0"; - private WebDriver driver; - - @BeforeClass(alwaysRun = true) - public void setUp() throws Exception { - super.init(); - driver = BrowserManager.getWebDriver(); - LoginUtils.login(driver, automationContext, getWebAppURL()); - } - -// @Test(description = "verify notification count in emm") -// public void viewNotificationCount() throws Exception { -// driver.get(getWebAppURL() + Constants.MDM_HOME_URL); -// HomePage homePage = new HomePage(driver); -// homePage.checkNotificationCount(notificationValue); -// } - - @Test(description = "verify notification visibility in emm") - public void verifyNotificationView() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_NOTIFICATION_URL); - NotificationView notificationView = new NotificationView(driver); - notificationView.viewNotification(); - } - - @AfterClass(alwaysRun = true) - public void tearDown() throws Exception { - driver.quit(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java deleted file mode 100644 index 8e55569f..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2015, 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.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.role.EditRolePage; -import org.wso2.iot.integration.ui.pages.role.RoleListPage; - -public class RoleTestCases extends EMMIntegrationUiBaseTestCase { - - private static final Log log = LogFactory.getLog(RoleTestCases.class); - private static String roleName = "role-manager"; - private static String roleNameEdit = "role-wso2-manager"; - private WebDriver driver; - - @BeforeClass(alwaysRun = true) - public void setUp() throws Exception { - super.init(); - driver = BrowserManager.getWebDriver(); - LoginUtils.login(driver, automationContext, getWebAppURL()); - } - - @Test(description = "verify add role to emm") - public void testAddRole() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_ROLES_URL); - RoleListPage roleListPage = new RoleListPage(driver, Constants.MDM_ROLES_URL); - roleListPage.addRole(roleName); - } - - @Test(description = "verify edit role to emm", dependsOnMethods = {"testAddRole"}) - public void testEditRole() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_ROLES_EDIT_URL + roleName); - EditRolePage rolePage = new EditRolePage(driver); - rolePage.editRole(roleNameEdit); - } - - @AfterClass(alwaysRun = true) - public void tearDown() throws Exception { - driver.quit(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java deleted file mode 100644 index 5966f8b3..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2015, 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.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.user.AddUserPage; -import org.wso2.iot.integration.ui.pages.user.UserListPage; - -public class UserTestCase extends EMMIntegrationUiBaseTestCase { - - private static final Log log = LogFactory.getLog(UserTestCase.class); - private WebDriver driver; - - @BeforeClass(alwaysRun = true) - public void setUp() throws Exception { - super.init(); - driver = BrowserManager.getWebDriver(); - LoginUtils.login(driver, automationContext, getWebAppURL()); - } - - @Test(description = "verify add user to emm console") - public void testAddUser() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_USER_ADD_URL); - AddUserPage addUserPage = new AddUserPage(driver); - addUserPage.addUser("inosh", "Inosh", "Perera", "inosh@wso2.com"); - } - - @Test(description = "verify delete user to emm console", dependsOnMethods = {"testAddUser"}) - public void testDeleteUser() throws Exception { - driver.get(getWebAppURL() + Constants.MDM_USER_URL); - UserListPage userListPage = new UserListPage(driver); - userListPage.deleteUser(); - driver.close(); - } - - @AfterClass(alwaysRun = true) - public void tearDown() throws Exception { - driver.quit(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java deleted file mode 100644 index 274848bc..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, 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.login; - -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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.home.MDMHomePage; -import org.wso2.iot.integration.ui.pages.login.MDMLoginPage; -import org.wso2.emm.ui.integration.test.Constants; - -public class MDMLoginTestCase extends EMMIntegrationUiBaseTestCase { - - private WebDriver driver; - - @BeforeClass(alwaysRun = true, groups = {Constants.LOGIN_GROUP}) - public void setUp() throws Exception { - super.init(); - driver = BrowserManager.getWebDriver(); - driver.get(getWebAppURL() + Constants.MDM_LOGIN_PATH); - } - - @Test(groups = {Constants.LOGIN_GROUP}, description = "verify login to emm console") - public void testLogin() throws Exception { - MDMLoginPage test = new MDMLoginPage(driver); - MDMHomePage home = test.loginAs(automationContext.getSuperTenant().getTenantAdmin().getUserName(), - automationContext.getSuperTenant().getTenantAdmin().getPassword()); - driver.close(); - } - - @AfterClass(alwaysRun = true) - public void tearDown() throws Exception { - driver.quit(); - } -} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java deleted file mode 100644 index 12675813..00000000 --- a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, 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.login; - -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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; -import org.wso2.iot.integration.ui.pages.home.HomePage; -import org.wso2.iot.integration.ui.pages.login.ManagementConsoleLoginPage; - -public class ManagementConsoleLoginTestCase 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's management console") - public void testLogin() throws Exception { - ManagementConsoleLoginPage test = new ManagementConsoleLoginPage(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 deleted file mode 100644 index d29cbab1..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/automation.xml +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - 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.automation.extensions.servers.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 deleted file mode 100644 index b800b2ba..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/automationXMLSchema.xsd +++ /dev/null @@ -1,611 +0,0 @@ - - - - - - - ================================================= - 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 deleted file mode 100644 index a8b584d0..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - 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 deleted file mode 100644 index 57f857642523329ef13c8bf2e2f440a8b0c7480c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31350 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 TaEM>7P~U&_e|>WPb@cxLBN-UW 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 deleted file mode 100644 index 4ca7737a6e76fee83b452384465db57ea1e3d981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31367 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 X+7zTg!G2Mpd^`+3z9G8&`t^SR2-5-g diff --git a/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v15.mar b/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v15.mar deleted file mode 100644 index 68f5cbd6ebbd9e59283ffca7546a7161df4cd4c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31343 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 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 deleted file mode 100644 index 60cd6cdf8894a651e7c3c0083bedb6b53a1e56d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 deleted file mode 100644 index 54913a22..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/filters.txt +++ /dev/null @@ -1,17 +0,0 @@ --*.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 deleted file mode 100644 index 917b2bb7..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/instrumentation.txt +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index 9e3a51db3e8329a40eebef8e585a4bcbed7f97fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36522 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 diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks deleted file mode 100644 index ab222fdd343e6a44d2c1c0b82fbc7e2538509618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103867 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 hO}sl5RmlQbI~fLQ+6dKrrAx7vL7% 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%0AN@CsM=Q$5-?s4<_^K8iH4;O_Y$dR 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 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 deleted file mode 100644 index ae5670b037e576e9555ec42c10e2bf6bd97b50f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 deleted file mode 100644 index 4a232f73..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario1-policy.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 2d076e06..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario10-policy.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 794d52ee..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario11-policy.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 6ac14ecd..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario12-policy.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index dbefeda8..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario13-policy.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index bafd7263..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario14-policy.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 47fb6711..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario15-policy.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index dc383d79..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario16-policy.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 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 deleted file mode 100644 index 637cf81d..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario17-policy.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - -
- 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 deleted file mode 100644 index 08a45d55..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario2-policy.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 0bfd14eb..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario3-policy.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 deleted file mode 100644 index 9ee47cc2..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario4-policy.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 deleted file mode 100644 index 9454c745..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario5-policy.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 7de14746..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario6-policy.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 deleted file mode 100644 index db95d371..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario7-policy.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 1fdfd940..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario8-policy.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 deleted file mode 100644 index 73fa833b..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/security/policies/scenario9-policy.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 75264212..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/modules/integration/tests-ui-integration/src/test/resources/testng.xml b/modules/integration/tests-ui-integration/src/test/resources/testng.xml deleted file mode 100644 index 14718b73..00000000 --- a/modules/integration/tests-ui-integration/src/test/resources/testng.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - From 030938e83e9b2805ee5404cabfed632299cf8e09 Mon Sep 17 00:00:00 2001 From: Ayyoob Hamza Date: Tue, 24 Jan 2017 11:48:53 +0530 Subject: [PATCH 47/47] Revert "Re-Enabling backend integration tests." --- modules/integration/pom.xml | 9 +- modules/integration/tests-artifacts/pom.xml | 2 +- .../integration-test-utils/pom.xml | 2 +- modules/integration/tests-common/pom.xml | 2 +- .../integration/tests-common/ui-pages/pom.xml | 116 ++++ .../pages/EMMIntegrationUiBaseTestCase.java | 71 ++ .../pages/Notification/NotificationView.java | 57 ++ .../integration/ui/pages/UIElementMapper.java | 65 ++ .../integration/ui/pages/home/HomePage.java | 64 ++ .../ui/pages/home/MDMHomePage.java | 49 ++ .../ui/pages/login/MDMLoginPage.java | 63 ++ .../login/ManagementConsoleLoginPage.java | 68 ++ .../PlatformConfiguration.java | 76 +++ .../ui/pages/role/AddRolePage.java | 55 ++ .../ui/pages/role/EditRolePage.java | 55 ++ .../ui/pages/role/RoleListPage.java | 52 ++ .../ui/pages/user/AddUserPage.java | 55 ++ .../ui/pages/user/UserAddedPage.java | 39 ++ .../ui/pages/user/UserEditPage.java | 51 ++ .../ui/pages/user/UserListPage.java | 51 ++ .../src/main/resources/mapper.properties | 512 +++++++++++++++ .../tests-common/web-ui-pages/pom.xml | 2 +- .../integration/tests-integration-old/pom.xml | 266 ++++++++ .../mdm}/integration/common/AssertUtil.java | 2 +- .../mdm}/integration/common/Constants.java | 2 +- .../integration/common/MDMHttpClient.java} | 67 +- .../mdm/integration/common/MDMResponse.java} | 4 +- .../mdm}/integration/common/OAuthUtil.java | 2 +- .../integration/common/PayloadGenerator.java | 2 +- .../mdm}/integration/common/RestClient.java | 3 +- .../mdm}/integration/common/TestBase.java | 2 +- .../ConfigurationManagement.java | 6 +- .../AndroidConfigurationManagement.java | 6 +- .../device/enrollment/AndroidEnrollment.java | 6 +- .../device/enrollment/WindowsEnrollment.java | 12 +- .../device/mgt/AndroidDeviceManagement.java | 5 +- .../device/operation/AndroidOperation.java | 6 +- .../device/policy/AndroidPolicy.java | 8 +- .../feature/FeatureManagement.java | 9 +- .../license/LicenseManagement.java | 6 +- .../mobileDevice/MobileDeviceManagement.java | 18 +- .../MobileDeviceManagementWithNoDevices.java | 14 +- .../notification/NotificationManagement.java | 4 +- .../operation/OperationManagement.java | 16 +- .../integration/policy/PolicyManagement.java | 18 +- .../mdm}/integration/role/RoleManagement.java | 17 +- .../mdm}/integration/user/UserManagement.java | 6 +- .../src/test/resources/automation.xml | 233 +++++++ .../src/test/resources/automationSchema.xsd | 0 .../src/test/resources/filters.txt | 23 + .../src/test/resources/instrumentation.txt | 41 ++ .../keystores/products}/client-truststore.jks | Bin .../keystores/products}/wso2carbon.jks | Bin .../keystores/products}/wso2certs.jks | Bin .../src/test/resources/log4j.properties | 45 ++ .../android-config-response-payloads.json | 0 .../android-configuration-payloads.json | 0 .../android-device-mgt-response-payloads.json | 0 .../payloads/android-enrollment-payloads.json | 0 .../android-enrollment-response-payloads.json | 0 .../payloads/android-operation-payloads.json | 0 .../android-policy-response-payloads.json | 0 .../payloads/configuration-payloads.json | 0 .../configuration-response-payloads.json | 0 .../get-notifications-response-payloads.json | 0 .../payloads/license-response-payloads.json | 0 ...t-view-device-types-response-payloads.json | 0 .../payloads/notification-payloads.json | 0 .../notification-response-payloads.json | 0 .../resources/payloads/policy-payloads.json | 0 .../payloads/policy-response-payloads.json | 0 .../resources/payloads/role-payloads.json | 0 .../resources/payloads/user-payloads.json | 0 .../payloads/user-response-payloads.json | 0 .../src/test/resources/testng-server-mgt.xml | 23 + .../src/test/resources/testng.xml | 112 ++++ .../enrollment/additional_device_info.xml | Bin .../windows/enrollment/discovery-post.xml | 0 .../windows/enrollment/inital_device_info.xml | Bin .../resources/windows/enrollment/ms_xcep.xml | 0 .../resources/windows/enrollment/wstep.xml | 0 modules/integration/tests-integration/pom.xml | 224 ++++--- .../extensions/AnalyticsServerExtension.java | 89 --- .../extensions/BrokerServerExtension.java | 89 --- .../extensions/CustomTestServerManager.java | 147 ----- .../extensions/IOTServerExtension.java | 89 --- .../src/test/resources/automation.xml | 49 +- .../src/test/resources/instrumentation.txt | 52 +- .../resources/keystores/products/wso2mdm.jks | Bin 9485 -> 0 bytes .../src/test/resources/testng.xml | 94 +-- modules/integration/tests-iot-web-ui/pom.xml | 2 +- .../integration/tests-ui-integration/pom.xml | 274 ++++++++ .../emm/ui/integration/test/Constants.java | 31 + .../test/GeneralConfigurationTestCases.java | 65 ++ .../emm/ui/integration/test/LoginUtils.java | 45 ++ .../test/NotificationValidationTestCase.java | 58 ++ .../ui/integration/test/RoleTestCases.java | 64 ++ .../emm/ui/integration/test/UserTestCase.java | 63 ++ .../test/login/MDMLoginTestCase.java | 54 ++ .../login/ManagementConsoleLoginTestCase.java | 54 ++ .../src/test/resources/automation.xml | 222 +++++++ .../test/resources/automationXMLSchema.xsd | 611 ++++++++++++++++++ .../resources/axis2config/axis2_client.xml | 300 +++++++++ .../modules/addressing-1.6.1-wso2v10.mar | Bin 0 -> 31350 bytes ...sing-1.6.1-wso2v11-20140908.185829-596.mar | Bin 0 -> 31367 bytes .../modules/addressing-1.6.1-wso2v15.mar | Bin 0 -> 31343 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 .../keystores/stratos/client-truststore.jks | Bin 0 -> 103867 bytes .../keystores/stratos/wso2carbon.jks | Bin 0 -> 35863 bytes .../resources/keystores/stratos/wso2certs.jks | Bin 0 -> 14185 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 | 35 + .../src/test/resources/testng.xml | 39 ++ 138 files changed, 6500 insertions(+), 800 deletions(-) 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/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java create mode 100644 modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties create mode 100644 modules/integration/tests-integration-old/pom.xml rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/AssertUtil.java (97%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/Constants.java (99%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java => tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java} (74%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java => tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java} (93%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/OAuthUtil.java (98%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/PayloadGenerator.java (97%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/RestClient.java (98%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/common/TestBase.java (98%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/configuration/ConfigurationManagement.java (93%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/configuration/AndroidConfigurationManagement.java (95%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/enrollment/AndroidEnrollment.java (96%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/enrollment/WindowsEnrollment.java (94%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/mgt/AndroidDeviceManagement.java (98%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/operation/AndroidOperation.java (98%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/device/policy/AndroidPolicy.java (88%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/feature/FeatureManagement.java (83%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/license/LicenseManagement.java (91%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/mobileDevice/MobileDeviceManagement.java (85%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java (82%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/notification/NotificationManagement.java (97%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/operation/OperationManagement.java (89%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/policy/PolicyManagement.java (86%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/role/RoleManagement.java (82%) rename modules/integration/{tests-integration/src/test/java/org/wso2/iot => tests-integration-old/src/test/java/org/wso2/mdm}/integration/user/UserManagement.java (96%) create mode 100644 modules/integration/tests-integration-old/src/test/resources/automation.xml rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/automationSchema.xsd (100%) create mode 100644 modules/integration/tests-integration-old/src/test/resources/filters.txt create mode 100644 modules/integration/tests-integration-old/src/test/resources/instrumentation.txt rename modules/integration/{tests-integration/src/test/resources/keystores/stratos => tests-integration-old/src/test/resources/keystores/products}/client-truststore.jks (100%) rename modules/integration/{tests-integration/src/test/resources/keystores/stratos => tests-integration-old/src/test/resources/keystores/products}/wso2carbon.jks (100%) rename modules/integration/{tests-integration/src/test/resources/keystores/stratos => tests-integration-old/src/test/resources/keystores/products}/wso2certs.jks (100%) create mode 100644 modules/integration/tests-integration-old/src/test/resources/log4j.properties rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-config-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-configuration-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-device-mgt-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-enrollment-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-enrollment-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-operation-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/android-policy-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/configuration-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/configuration-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/get-notifications-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/license-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/notification-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/notification-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/policy-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/policy-response-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/role-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/user-payloads.json (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/payloads/user-response-payloads.json (100%) create mode 100644 modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml create mode 100644 modules/integration/tests-integration-old/src/test/resources/testng.xml rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/windows/enrollment/additional_device_info.xml (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/windows/enrollment/discovery-post.xml (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/windows/enrollment/inital_device_info.xml (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/windows/enrollment/ms_xcep.xml (100%) rename modules/integration/{tests-integration => tests-integration-old}/src/test/resources/windows/enrollment/wstep.xml (100%) delete mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java delete mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java delete mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java delete mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java delete mode 100644 modules/integration/tests-integration/src/test/resources/keystores/products/wso2mdm.jks 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/Constants.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java create mode 100644 modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.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/addressing-1.6.1-wso2v15.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 rename modules/integration/{tests-integration/src/test/resources/keystores/stratos => tests-ui-integration/src/test/resources/keystores/products}/wso2emm.jks (100%) 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/wso2certs.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 diff --git a/modules/integration/pom.xml b/modules/integration/pom.xml index 0356182d..c82420df 100644 --- a/modules/integration/pom.xml +++ b/modules/integration/pom.xml @@ -1,6 +1,6 @@ + tests-iot-web-ui diff --git a/modules/integration/tests-artifacts/pom.xml b/modules/integration/tests-artifacts/pom.xml index b82a7758..1abe51e1 100644 --- a/modules/integration/tests-artifacts/pom.xml +++ b/modules/integration/tests-artifacts/pom.xml @@ -21,7 +21,7 @@ org.wso2.iot wso2iot-integration - 3.1.0-SNAPSHOT + 3.0.0-SNAPSHOT ../pom.xml diff --git a/modules/integration/tests-common/integration-test-utils/pom.xml b/modules/integration/tests-common/integration-test-utils/pom.xml index d188db50..cc62f18c 100644 --- a/modules/integration/tests-common/integration-test-utils/pom.xml +++ b/modules/integration/tests-common/integration-test-utils/pom.xml @@ -36,6 +36,6 @@ 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 index 027bb14a..4692faac 100644 --- a/modules/integration/tests-common/pom.xml +++ b/modules/integration/tests-common/pom.xml @@ -21,7 +21,7 @@ org.wso2.iot wso2iot-integration - 3.1.0-SNAPSHOT + 3.0.0-SNAPSHOT ../pom.xml 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 00000000..13d5dcd2 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/pom.xml @@ -0,0 +1,116 @@ + + + + + + + org.wso2.iot + tests-common + 3.0.0-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.iot.core.integration.ui.pages + jar + WSO2 IoT - Integration Test Common UI Pages + + + + org.wso2.carbon.automationutils + org.wso2.carbon.integration.common.admin.client + compile + + + org.wso2.carbon + org.wso2.carbon.user.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.logging.view.stub + + + org.wso2.carbon + org.wso2.carbon.ndatasource.stub + + + org.wso2.carbon + org.wso2.carbon.server.admin.stub + + + org.wso2.carbon + org.wso2.carbon.throttle.stub + + + org.wso2.carbon + org.wso2.carbon.tenant.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.application.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.security.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.identity.user.profile.stub + + + org.wso2.carbon + org.wso2.carbon.identity.user.profile.stub + + + org.slf4j + slf4j-api + + + + + org.wso2.carbon.automation + org.wso2.carbon.automation.extensions + compile + + + org.slf4j + slf4j-api + + + + + 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/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java new file mode 100644 index 00000000..14f29c52 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/EMMIntegrationUiBaseTestCase.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2015, 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.iot.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 getWebAppURL() throws XPathExpressionException { + return automationContext.getContextUrls().getWebAppURL(); + } + + 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/iot/integration/ui/pages/Notification/NotificationView.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java new file mode 100644 index 00000000..c226e59a --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/Notification/NotificationView.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.Notification; + + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class NotificationView { + private static final Log log = LogFactory.getLog(NotificationView.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public NotificationView(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("notification-listing"))) { + throw new IllegalStateException("This is not the notification-listing page"); + } + } + + public void viewNotification() { + WebElement unReadNotificationTab = driver.findElement(By.id(uiElementMapper. + getElement("emm.notification.unread.identifier"))); + WebElement notificationTab = driver.findElement(By.id(uiElementMapper. + getElement("emm.notification.all.identifier"))); + + if (!unReadNotificationTab.isDisplayed()) { + throw new IllegalStateException("Notification View must be having two tabs"); + } + if (!notificationTab.isDisplayed()) { + throw new IllegalStateException("Notification View must be having two tabs"); + } + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java new file mode 100644 index 00000000..77170f9d --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/UIElementMapper.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2015, 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.iot.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/iot/integration/ui/pages/home/HomePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java new file mode 100644 index 00000000..bf4331e5 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/HomePage.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2015, 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.iot.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.openqa.selenium.WebElement; +import org.wso2.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +import org.wso2.iot.integration.ui.pages.login.ManagementConsoleLoginPage; + +/** + * 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 ManagementConsoleLoginPage logout() throws IOException { + driver.findElement(By.xpath(uiElementMapper.getElement("home.greg.sign.out.xpath"))).click(); + return new ManagementConsoleLoginPage(driver); + } + + public void checkNotificationCount(String value) { + WebElement notificationBubble = driver.findElement(By.id(uiElementMapper. + getElement("emm.notification.bubble.identifier"))); + if (!notificationBubble.getText().contains(value)) { + throw new IllegalStateException("Invalid amount of notification in home page"); + } + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java new file mode 100644 index 00000000..c0262c22 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/MDMHomePage.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class MDMHomePage { + + private static final Log log = LogFactory.getLog(MDMHomePage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public MDMHomePage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!driver.findElement(By.xpath(uiElementMapper.getElement("emm.dashboard.device.div.xpath"))).getText() + .contains("DEVICES")) { + throw new IllegalStateException("This is not the home page"); + } + } + + // public MDMLoginPage logout() throws IOException { + // driver.findElement(By.xpath("/html/body/div[3]/header/div/div[2]/div/div/div[3]/a")).click(); + // return new MDMLoginPage(driver); + // } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java new file mode 100644 index 00000000..d09d52b1 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/MDMLoginPage.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; +import org.wso2.iot.integration.ui.pages.home.MDMHomePage; + +import java.io.IOException; + +public class MDMLoginPage { + + private static final Log log = LogFactory.getLog(MDMLoginPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public MDMLoginPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("mdm/login"))) { + // 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 MDMHomePage loginAs(String userName, String password) throws IOException { + WebElement userNameField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.username"))); + WebElement passwordField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.password"))); + userNameField.sendKeys(userName); + passwordField.sendKeys(password); + driver.findElement(By.xpath(uiElementMapper.getElement("emm.login.button.xpath"))).click(); + return new MDMHomePage(driver); + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java new file mode 100644 index 00000000..13b2d4fe --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/login/ManagementConsoleLoginPage.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2015, 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.iot.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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +import org.wso2.iot.integration.ui.pages.home.HomePage; + +/** + * Login page class - contains methods to login to wso2 products. + */ +public class ManagementConsoleLoginPage { + private static final Log log = LogFactory.getLog(ManagementConsoleLoginPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public ManagementConsoleLoginPage(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/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java new file mode 100644 index 00000000..6a60a262 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/platformConfiguration/PlatformConfiguration.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.platformConfiguration; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class PlatformConfiguration { + + private static final Log log = LogFactory.getLog(PlatformConfiguration.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public PlatformConfiguration(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("platform-configuration"))) { + throw new IllegalStateException("This is not the platform-configuration page"); + } + } + + public void changeGeneralConfig(String value) { + WebElement generalConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.tab.identifier")))); + WebElement inputGeneralConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.input.monitoringFr.identifier")))); + WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.general.button.save.identifier")))); + + generalConfigButton.click(); + inputGeneralConfig.sendKeys(value); + buttonSaveConfig.click(); + } + + public void changeAndroidConfig(String value) { + WebElement androidConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.tab.identifier")))); + WebElement inputAndroidConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.input.identifier")))); + WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.android.button.save.identifier")))); + + androidConfigButton.click(); + inputAndroidConfig.sendKeys(value); + buttonSaveConfig.click(); + + } + + public void changeWindowsConfig(String value) { + WebElement windowsConfigButton = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.widows.tab.identifier")))); + WebElement inputWindowsConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.windows.input.identifier")))); + WebElement buttonSaveConfig = driver.findElement(By.xpath((uiElementMapper.getElement("emm.configuration.windows.button.save.identifier")))); + + windowsConfigButton.click(); + inputWindowsConfig.sendKeys(value); + buttonSaveConfig.click(); + + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java new file mode 100644 index 00000000..4e31f2c1 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/AddRolePage.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.role; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class AddRolePage { + private static final Log log = LogFactory.getLog(RoleListPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public AddRolePage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("roles/add-role"))) { + throw new IllegalStateException("This is not the add role page"); + } + } + + public void addRole(String role) { + WebElement roleName = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.rolename.input"))); + roleName.sendKeys(role); + WebElement addRoleButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.role.button"))); + addRoleButton.click(); + String resultText = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.role.created.msg.div") + )).getText(); + if (!resultText.contains("ROLE WAS ADDED SUCCESSFULLY")) { + throw new IllegalStateException("Role was not added"); + } + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java new file mode 100644 index 00000000..acb28ae2 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/EditRolePage.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.role; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class EditRolePage { + private static final Log log = LogFactory.getLog(RoleListPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public EditRolePage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains("roles/edit-role"))) { + throw new IllegalStateException("This is not the edit role page"); + } + } + + public void editRole(String role) { + WebElement roleName = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.rolename.input"))); + roleName.sendKeys(role); + WebElement addRoleButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.role.button"))); + addRoleButton.click(); + String resultText = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.role.created.msg.div") + )).getText(); + if (!resultText.contains("ROLE WAS UPDATED SUCCESSFULLY")) { + throw new IllegalStateException("Role was not edited"); + } + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java new file mode 100644 index 00000000..479c576d --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/role/RoleListPage.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.role; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class RoleListPage { + + private static final Log log = LogFactory.getLog(RoleListPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public RoleListPage(WebDriver driver, String url) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (!(driver.getCurrentUrl().contains(url))) { + throw new IllegalStateException("This is not the roles list page"); + } + } + + public void addRole(String role) throws Exception { + WebElement addButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.add.button"))); + addButton.click(); + AddRolePage rolePage = new AddRolePage(driver); + rolePage.addRole(role); + } + +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java new file mode 100644 index 00000000..69c09f05 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/AddUserPage.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.user; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.wso2.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class AddUserPage { + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public AddUserPage(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("emm.user.add.button"))).getText() == null) { + throw new IllegalStateException("This is not the add user page"); + } + } + + public UserAddedPage addUser(String username, String firstName, String lastName, + String email) throws IOException { + WebElement usernameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.username"))); + WebElement firstNameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.firstname"))); + WebElement lastNameField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.lastname"))); + WebElement emailField = driver.findElement(By.id(uiElementMapper.getElement("emm.add.user.email"))); + usernameField.sendKeys(username); + firstNameField.sendKeys(firstName); + lastNameField.sendKeys(lastName); + emailField.sendKeys(email); + driver.findElement(By.id(uiElementMapper.getElement("emm.user.add.button"))).click(); + return new UserAddedPage(driver); + } + +} \ No newline at end of file diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java new file mode 100644 index 00000000..ff762c9b --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserAddedPage.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.user; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.wso2.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class UserAddedPage { + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public UserAddedPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + // Check that we're on the right page. + if (driver.findElement(By.tagName("canvas")) == null) { + throw new IllegalStateException("This is not the user added success page"); + } + } +} diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java new file mode 100644 index 00000000..df0dd504 --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserEditPage.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.user; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class UserEditPage { + private static final Log log = LogFactory.getLog(UserListPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public UserEditPage(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("emm.user.add.button"))).getText() == null) { + throw new IllegalStateException("This is not the add edit page"); + } + } + + public void editUser() throws IOException { + WebElement deleteButton = driver.findElement(By.xpath(uiElementMapper.getElement("emm.user.delete.button"))); + deleteButton.click(); + WebElement deleteConfirmButton = driver.findElement(By.id(uiElementMapper.getElement("emm.user.delete.button" + + ".confirm"))); + deleteConfirmButton.click(); + } +} \ No newline at end of file diff --git a/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java new file mode 100644 index 00000000..decf570a --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/user/UserListPage.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.user; + +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.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class UserListPage { + private static final Log log = LogFactory.getLog(UserListPage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public UserListPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + if (!(driver.getCurrentUrl().contains("mdm/users"))) { + // Alternatively, we could navigate to the login page, perhaps logging out first + throw new IllegalStateException("This is not the list users page"); + } + } + + public void deleteUser() throws IOException { + WebElement deleteButton = driver.findElement(By.xpath(uiElementMapper.getElement("emm.user.delete.button"))); + deleteButton.click(); + WebElement deleteConfirmButton = driver.findElement(By.id(uiElementMapper.getElement("emm.user.delete.button" + + ".confirm"))); + deleteConfirmButton.click(); + } +} 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 00000000..00598f6e --- /dev/null +++ b/modules/integration/tests-common/ui-pages/src/main/resources/mapper.properties @@ -0,0 +1,512 @@ +# +# Copyright (c) 2015, 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. +# + +emm.login.username=username +emm.login.password=password +emm.dashboard.device.div.xpath=/html/body/div[3]/div[7]/div[1]/div/div/div[1] +emm.login.button.xpath=/html/body/div[3]/div[3]/div/button +emm.user.add.button = add-user-btn +emm.add.user.username=username +emm.add.user.firstname=firstname +emm.add.user.lastname=lastname +emm.add.user.email=emailAddress +emm.user.delete.button=//*[@id="inosh"]/td[5]/a[3] +emm.user.delete.button.confirm=remove-user-yes-link +emm.user.delete.button.success=remove-user-success-link +emm.roles.add.button=appbar-btn- +emm.roles.add.rolename.input=rolename +emm.roles.add.role.button=add-role-btn +emm.roles.add.role.created.msg.div=role-created-msg +emm.roles.update.rolename.input=rolename +emm.roles.update.role.button=add-role-btn +emm.roles.update.role.created.msg.div=role-created-msg +emm.roles.update.role.created.success.msg=ROLE WAS UPDATED SUCCESSFULLY +emm.configuration.android.tab.identifier=id('androidConfigLink') +emm.configuration.widows.tab.identifier=id('windowsConfigLink') +emm.configuration.ios.tab.identifier=id('iosConfigLink') +emm.configuration.general.tab.identifier=id('generalConfigLink') +emm.configuration.general.input.monitoringFr.identifier=id('monitoring-config-frequency') +emm.configuration.general.button.save.identifier=id('monitoring-config-frequency') +emm.configuration.saved.lable.identifier=id('record-created-msg') +emm.configuration.saved.lable.val=Please click "Go back to configurations", if you wish to save another configuration or click "Exit" to complete the process and go back to the dashboard. +emm.configuration.saved.button.back.identifier=id('btnBack') +emm.configuration.saved.button.back.val=Go back to configurations +emm.configuration.saved.button.exit.identifier=id('btnExit') +emm.configuration.saved.button.exit.val=Exit +emm.configuration.android.select.identifier=id('android-config-notifier') +emm.configuration.android.input.identifier=id('android-config-notifier-frequency') +emm.configuration.android.button.save.identifier=id('save-android-btn') +emm.configuration.windows.input.identifier=id('windows-config-notifier-frequency') +emm.configuration.windows.button.save.identifier=id('save-windows-btn') +emm.configuration.android.button.save.identifier=id('save-android-btn') +emm.notification.bubble.identifier=notification-bubble +emm.notification.unread.identifier=unReadNotifications +emm.notification.all.identifier=allNotifications + + + + +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-common/web-ui-pages/pom.xml b/modules/integration/tests-common/web-ui-pages/pom.xml index 7dcce232..0dbd7992 100644 --- a/modules/integration/tests-common/web-ui-pages/pom.xml +++ b/modules/integration/tests-common/web-ui-pages/pom.xml @@ -22,7 +22,7 @@ org.wso2.iot tests-common - 3.1.0-SNAPSHOT + 3.0.0-SNAPSHOT ../pom.xml diff --git a/modules/integration/tests-integration-old/pom.xml b/modules/integration/tests-integration-old/pom.xml new file mode 100644 index 00000000..aa4d7c95 --- /dev/null +++ b/modules/integration/tests-integration-old/pom.xml @@ -0,0 +1,266 @@ + + + + + + org.wso2.iot + wso2iot-integration + 3.0.0-SNAPSHOT + ../pom.xml + + + 4.0.0 + tests-integration + jar + WSO2 IoT - Backend Integration Tests + + + + + maven-surefire-plugin + false + 2.12.4 + + -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m + false + + src/test/resources/testng-server-mgt.xml + src/test/resources/testng.xml + + + + + maven.test.haltafterfailure + false + + + carbon.zip + + ${basedir}/../../distribution/target/wso2iot-${product.iot.version}.zip + + + + framework.resource.location + + ${basedir}/src/test/resources/ + + + + usedefaultlisteners + false + + ${basedir}/target/security-verifier/ + ${basedir}/src/test/resources/instrumentation.txt + ${basedir}/src/test/resources/filters.txt + + ${basedir}/target + false + + + + maven-dependency-plugin + + + + + copy-jacoco-dependencies + compile + + copy-dependencies + + + ${project.build.directory}/jacoco + jar + org.jacoco.agent + + + + + + copy-secVerifier + compile + + copy-dependencies + + + ${basedir}/target/security-verifier + aar + SecVerifier + true + + + + + unpack-jks + compile + + unpack + + + + + org.wso2.iot + wso2iot + ${product.iot.version} + zip + true + ${basedir}/target/tobeCopied/ + **/*.jks + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + test-jar + + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.7.1 + + ${basedir}/target/report + registry-api-test + + + + integration-test + + report-only + + + + + + + maven-resources-plugin + 2.6 + + + copy-resources-jks + compile + + copy-resources + + + ${basedir}/src/test/resources/keystores/products + + + + + ${basedir}/target/tobeCopied/wso2iot-${product.iot.version}/repository/resources/security/ + + + **/*.jks + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + test-jar + + + + + + + + + + + + org.wso2.carbon.automation + org.wso2.carbon.automation.engine + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.extensions + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.test.utils + compile + + + org.wso2.carbon.automationutils + org.wso2.carbon.integration.common.utils + compile + + + org.wso2.carbon.automationutils + org.wso2.carbon.integration.common.extensions + compile + + + com.google.code.gson + gson + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.device.mgt.core + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.device.mgt.common + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.policy.mgt.common + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.policy.mgt.core + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.certificate.mgt.core + compile + + + + + diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java similarity index 97% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java index 5a7874b1..18f088c4 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/AssertUtil.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/AssertUtil.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java similarity index 99% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java index 537c9538..787a14cf 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/Constants.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/Constants.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import java.io.File; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java similarity index 74% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java index 404175e6..01142195 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTHttpClient.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMHttpClient.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; @@ -27,24 +27,27 @@ import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.carbon.automation.engine.context.TestUserMode; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; /** * This class creates a customised Http Client Class */ -public class IOTHttpClient { +public class MDMHttpClient { private static final String AUTHORIZATION = "Authorization"; - private static Log log = LogFactory.getLog(IOTHttpClient.class); + private static Log log = LogFactory.getLog(MDMHttpClient.class); private String backEndUrl; private String authrizationString; private Map requestHeaders = new HashMap(); - public IOTHttpClient(String backEndUrl, String contentType, String authorization) { + public MDMHttpClient(String backEndUrl, String contentType, String authorization) { this.backEndUrl = backEndUrl; this.requestHeaders.put(Constants.CONTENT_TYPE, contentType); @@ -74,7 +77,7 @@ public class IOTHttpClient { this.requestHeaders.remove(headerName); } - public IOTResponse post(String endpoint, String body) { + public MDMResponse post(String endpoint, String body) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -86,20 +89,20 @@ public class IOTHttpClient { StringRequestEntity requestEntity = new StringRequestEntity(body, requestHeaders.get(Constants.CONTENT_TYPE), Constants.UTF8); method.setRequestEntity(requestEntity); - IOTResponse iotResponse = new IOTResponse(); - iotResponse.setStatus(client.executeMethod(method)); - iotResponse.setBody(method.getResponseBodyAsString()); - return iotResponse; + MDMResponse mdmResponse = new MDMResponse(); + mdmResponse.setStatus(client.executeMethod(method)); + mdmResponse.setBody(method.getResponseBodyAsString()); + return mdmResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at IOTResponse post for GeneralSecurityException", e); + log.error("Failure occurred at MDMResponse post for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occured at IOTResponse post for IOException", e); + log.error("Failure occured at MDMResponse post for IOException", e); } return null; } - public IOTResponse put(String endpoint, String body) { + public MDMResponse put(String endpoint, String body) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -111,20 +114,20 @@ public class IOTHttpClient { StringRequestEntity requestEntity = new StringRequestEntity( body, requestHeaders.get(Constants.CONTENT_TYPE), Constants.UTF8); method.setRequestEntity(requestEntity); - IOTResponse iotResponse = new IOTResponse(); - iotResponse.setStatus(client.executeMethod(method)); - iotResponse.setBody(method.getResponseBodyAsString()); - return iotResponse; + MDMResponse mdmResponse = new MDMResponse(); + mdmResponse.setStatus(client.executeMethod(method)); + mdmResponse.setBody(method.getResponseBodyAsString()); + return mdmResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at IOTResponse put for GeneralSecurityException", e); + log.error("Failure occurred at MDMResponse put for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at IOTResponse put for IO Exception", e); + log.error("Failure occurred at MDMResponse put for IO Exception", e); } return null; } - public IOTResponse get(String endpoint) { + public MDMResponse get(String endpoint) { HttpClient client = new HttpClient(); try { ProtocolSocketFactory socketFactory = new EasySSLProtocolSocketFactory(); @@ -136,21 +139,21 @@ public class IOTHttpClient { method.setRequestHeader(AUTHORIZATION, authrizationString); method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); - IOTResponse iotResponse = new IOTResponse(); - iotResponse.setStatus(client.executeMethod(method)); - iotResponse.setBody(new String(method.getResponseBody())); - return iotResponse; + MDMResponse mdmResponse = new MDMResponse(); + mdmResponse.setStatus(client.executeMethod(method)); + mdmResponse.setBody(new String(method.getResponseBody())); + return mdmResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at IOTResponse get for GeneralSecurityException", e); + log.error("Failure occurred at MDMResponse get for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at IOTResponse get for IOException", e); + log.error("Failure occurred at MDMResponse get for IOException", e); } return null; } - public IOTResponse delete(String endpoint) { + public MDMResponse delete(String endpoint) { HttpClient client = new HttpClient(); @@ -167,15 +170,15 @@ public class IOTHttpClient { method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); - IOTResponse iotResponse = new IOTResponse(); - iotResponse.setStatus(client.executeMethod(method)); - iotResponse.setBody(method.getResponseBodyAsString()); - return iotResponse; + MDMResponse mdmResponse = new MDMResponse(); + mdmResponse.setStatus(client.executeMethod(method)); + mdmResponse.setBody(method.getResponseBodyAsString()); + return mdmResponse; } catch (GeneralSecurityException e) { - log.error("Failure occurred at IOTResponse delete for GeneralSecurityException", e); + log.error("Failure occurred at MDMResponse delete for GeneralSecurityException", e); } catch (IOException e) { - log.error("Failure occurred at IOTResponse delete for IOException", e); + log.error("Failure occurred at MDMResponse delete for IOException", e); } return null; } diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java similarity index 93% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java index 8affc40a..8380a8a1 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/IOTResponse.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/MDMResponse.java @@ -15,12 +15,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; /** * This class contains the functions to handle a HTTP Response */ -public class IOTResponse { +public class MDMResponse { private int status; private String body; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java similarity index 98% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java index bfa54cdb..95665a75 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/OAuthUtil.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/OAuthUtil.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import org.apache.commons.net.util.Base64; import org.json.JSONObject; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java similarity index 97% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java index 74c26f46..5999297c 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/PayloadGenerator.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/PayloadGenerator.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java similarity index 98% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java index 620d59b6..a6b4e7de 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/RestClient.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/RestClient.java @@ -15,8 +15,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; import org.wso2.carbon.automation.test.utils.http.client.HttpRequestUtil; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java similarity index 98% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java index 6883e190..1e91f6b4 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/common/TestBase.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/common/TestBase.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.common; +package org.wso2.mdm.integration.common; import org.wso2.carbon.automation.engine.context.AutomationContext; import org.wso2.carbon.automation.engine.context.TestUserMode; diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java similarity index 93% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java index 0fe0525d..f44dde62 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/configuration/ConfigurationManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/configuration/ConfigurationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.configuration; +package org.wso2.mdm.integration.configuration; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for configuration management backend services. @@ -33,7 +33,7 @@ public class ConfigurationManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.ConfigurationManagement.CONFIGURATION_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.ConfigurationManagement.CONFIGURATION_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java similarity index 95% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java index 11d8ca8a..b7a7a325 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/configuration/AndroidConfigurationManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/configuration/AndroidConfigurationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.device.configuration; +package org.wso2.mdm.integration.device.configuration; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for Android configuration management backend services. @@ -33,7 +33,7 @@ public class AndroidConfigurationManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.AndroidConfigurationManagement.DEVICE_CONFIGURATION_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.AndroidConfigurationManagement.DEVICE_CONFIGURATION_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java similarity index 96% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java index b2205cee..7f01d7ce 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/AndroidEnrollment.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/AndroidEnrollment.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.device.enrollment; +package org.wso2.mdm.integration.device.enrollment; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This contains testing of Android device enrollment which is necessary to run prior to all other Android related @@ -33,7 +33,7 @@ import org.wso2.iot.integration.common.*; public class AndroidEnrollment extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java similarity index 94% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java index fe465ae4..24a53d95 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/enrollment/WindowsEnrollment.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/enrollment/WindowsEnrollment.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.device.enrollment; +package org.wso2.mdm.integration.device.enrollment; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -25,10 +25,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.Constants; -import org.wso2.iot.integration.common.OAuthUtil; -import org.wso2.iot.integration.common.RestClient; -import org.wso2.iot.integration.common.TestBase; +import org.wso2.mdm.integration.common.Constants; +import org.wso2.mdm.integration.common.OAuthUtil; +import org.wso2.mdm.integration.common.RestClient; +import org.wso2.mdm.integration.common.TestBase; import java.io.File; import java.net.URL; @@ -42,7 +42,7 @@ public class WindowsEnrollment extends TestBase { private static String bsd; private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.WindowsEnrollment.WINDOWS_ENROLLMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.WindowsEnrollment.WINDOWS_ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java similarity index 98% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java index 5b20f691..58f18ae1 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/mgt/AndroidDeviceManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/mgt/AndroidDeviceManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.device.mgt; +package org.wso2.mdm.integration.device.mgt; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -27,7 +27,8 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; + /** * This class contains integration tests for Android device management backend services. diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java similarity index 98% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java index fdb46a6e..dcf980c0 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/operation/AndroidOperation.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/operation/AndroidOperation.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.device.operation; +package org.wso2.mdm.integration.device.operation; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -26,7 +26,7 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This contain tests to check operations supported by Android. Test are executed against a previously enrolled device @@ -34,7 +34,7 @@ import org.wso2.iot.integration.common.*; public class AndroidOperation extends TestBase { private RestClient client; - @BeforeTest(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeTest(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java similarity index 88% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java index ab3d6ea1..a112e819 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/device/policy/AndroidPolicy.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/device/policy/AndroidPolicy.java @@ -16,13 +16,15 @@ * under the License. */ -package org.wso2.iot.integration.device.policy; +package org.wso2.mdm.integration.device.policy; +import junit.framework.Assert; +import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This contain tests to check policy endpoints supported by Android. @@ -32,7 +34,7 @@ public class AndroidPolicy extends TestBase { private RestClient client; - @BeforeTest(alwaysRun = true, groups = { Constants.AndroidEnrollment.ENROLLMENT_GROUP}) + @BeforeTest(alwaysRun = true, groups = {Constants.AndroidEnrollment.ENROLLMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java similarity index 83% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java index 64511e45..415cfb1c 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/feature/FeatureManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/feature/FeatureManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.feature; +package org.wso2.mdm.integration.feature; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -23,10 +23,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.Constants; -import org.wso2.iot.integration.common.OAuthUtil; -import org.wso2.iot.integration.common.RestClient; -import org.wso2.iot.integration.common.TestBase; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for feature management backend services. @@ -35,7 +32,7 @@ public class FeatureManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.FeatureManagement.FEATURE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.FeatureManagement.FEATURE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java similarity index 91% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java index a96e2abd..3aae4a03 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/license/LicenseManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/license/LicenseManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.license; +package org.wso2.mdm.integration.license; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -23,7 +23,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for license management backend services. @@ -32,7 +32,7 @@ public class LicenseManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.LicenseManagement.LICENSE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.LicenseManagement.LICENSE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java similarity index 85% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java index caf575f6..762fec4e 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.mobileDevice; +package org.wso2.mdm.integration.mobileDevice; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -23,19 +23,19 @@ import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for API Device management backend services. */ public class MobileDeviceManagement extends TestBase { - private IOTHttpClient client; + private MDMHttpClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Add an Android device.") @@ -44,7 +44,7 @@ public class MobileDeviceManagement extends TestBase { Constants.AndroidEnrollment.ENROLLMENT_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST); enrollmentData.addProperty(Constants.DEVICE_IDENTIFIER_KEY, Constants.DEVICE_ID); - IOTResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); + MDMResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); AssertUtil.jsonPayloadCompare(PayloadGenerator.getJsonPayload( Constants.AndroidEnrollment.ENROLLMENT_RESPONSE_PAYLOAD_FILE_NAME, @@ -53,7 +53,7 @@ public class MobileDeviceManagement extends TestBase { @Test(dependsOnMethods = {"addEnrollment"}, description = "Test count devices") public void testCountDevices() throws Exception { - IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); + MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertTrue(response.getBody().toString().equals(Constants.MobileDeviceManagement.NO_OF_DEVICES)); @@ -61,13 +61,13 @@ public class MobileDeviceManagement extends TestBase { @Test(dependsOnMethods = {"addEnrollment"}, description = "Test view devices") public void testViewDevices() throws Exception { - IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); + MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } @Test(dependsOnMethods = {"addEnrollment"}, description = "Test view device types") public void testViewDeviceTypes() throws Exception { - IOTResponse response = client.get(Constants.MobileDeviceManagement.VIEW_DEVICE_TYPES_ENDPOINT); + MDMResponse response = client.get(Constants.MobileDeviceManagement.VIEW_DEVICE_TYPES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(PayloadGenerator.getJsonPayloadToString (Constants.MobileDeviceManagement.VIEW_DEVICE_RESPONSE_PAYLOAD_FILE_NAME), response.getBody()); diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java similarity index 82% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java index 2f32fe27..6e3ea8e2 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/mobileDevice/MobileDeviceManagementWithNoDevices.java @@ -16,38 +16,38 @@ * under the License. */ -package org.wso2.iot.integration.mobileDevice; +package org.wso2.mdm.integration.mobileDevice; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for API Mobile Device Management with No Devices Enrolled. */ public class MobileDeviceManagementWithNoDevices extends TestBase { - private IOTHttpClient client; + private MDMHttpClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.MobileDeviceManagement.MOBILE_DEVICE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test count devices with no added devices") public void testCountDevicesWithNoDevices() throws Exception { - IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); + MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_DEVICE_COUNT_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(Constants.ZERO, response.getBody()); } @Test(description = "Test view devices with no added devices") public void testViewDevicesWithNoDevices() throws Exception { - IOTResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); + MDMResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(response.getBody(), Constants.NULL); } diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java similarity index 97% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java index 9056f8a0..b0d5fe8b 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/notification/NotificationManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/notification/NotificationManagement.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.notification; +package org.wso2.mdm.integration.notification; import com.google.gson.JsonObject; import junit.framework.Assert; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for notification management backend services. diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java similarity index 89% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java index a7e39941..833e229f 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/operation/OperationManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/operation/OperationManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.operation; +package org.wso2.mdm.integration.operation; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -25,7 +25,7 @@ import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -35,14 +35,14 @@ import org.testng.annotations.Test; public class OperationManagement extends TestBase { private JsonObject device; - private IOTHttpClient client; + private MDMHttpClient client; private RestClient rclient; - @BeforeClass(alwaysRun = true, groups = { Constants.OperationManagement.OPERATION_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.OperationManagement.OPERATION_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); this.rclient = new RestClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @@ -52,7 +52,7 @@ public class OperationManagement extends TestBase { Constants.AndroidEnrollment.ENROLLMENT_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST); enrollmentData.addProperty(Constants.DEVICE_IDENTIFIER_KEY, Constants.DEVICE_ID); - IOTResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); + MDMResponse response = client.post(Constants.AndroidEnrollment.ENROLLMENT_ENDPOINT, enrollmentData.toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); AssertUtil.jsonPayloadCompare(PayloadGenerator.getJsonPayload( Constants.AndroidEnrollment.ENROLLMENT_RESPONSE_PAYLOAD_FILE_NAME, @@ -75,7 +75,7 @@ public class OperationManagement extends TestBase { @Test(dependsOnMethods = {"testInstallApps"}, description = "Test get device apps with wrong Device ID") public void testGetDeviceAppsWithWrongDeviceID() throws Exception { - IOTResponse response = client.get(Constants.OperationManagement.GET_DEVICE_APPS_ENDPOINT + + MDMResponse response = client.get(Constants.OperationManagement.GET_DEVICE_APPS_ENDPOINT + Constants.NUMBER_NOT_EQUAL_TO_DEVICE_ID + Constants.OperationManagement.PATH_APPS); Assert.assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); @@ -83,7 +83,7 @@ public class OperationManagement extends TestBase { @Test(dependsOnMethods = {"testInstallApps"}, description = "Test get operations for device with wrong Device ID") public void testGetDeviceOperationsWithWrongDeviceID() throws Exception { - IOTResponse response = client.get(Constants.OperationManagement.GET_DEVICE_OPERATIONS_ENDPOINT + Constants.DEVICE_IMEI); + MDMResponse response = client.get(Constants.OperationManagement.GET_DEVICE_OPERATIONS_ENDPOINT + Constants.DEVICE_IMEI); Assert.assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); } } \ No newline at end of file diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java similarity index 86% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java index 70ec513a..f7b338f9 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/policy/PolicyManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/policy/PolicyManagement.java @@ -15,33 +15,33 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.policy; +package org.wso2.mdm.integration.policy; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for policy management backend services. */ public class PolicyManagement extends TestBase { - private IOTHttpClient client; + private MDMHttpClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.PolicyManagement.POLICY_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.PolicyManagement.POLICY_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test add policy.") public void testAddPolicy() throws Exception { - IOTResponse response = client.post(Constants.PolicyManagement.ADD_POLICY_ENDPOINT, + MDMResponse response = client.post(Constants.PolicyManagement.ADD_POLICY_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.PolicyManagement.POLICY_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST).toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); @@ -52,7 +52,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test view policy list.", dependsOnMethods = {"testAddPolicy"}) public void testViewPolicyList() throws Exception { - IOTResponse response = client.get(Constants.PolicyManagement.VIEW_POLICY_LIST_ENDPOINT); + MDMResponse response = client.get(Constants.PolicyManagement.VIEW_POLICY_LIST_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } @@ -60,7 +60,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test update policy.", dependsOnMethods = {"testViewPolicyList"}) public void testUpdatePolicy() throws Exception { - IOTResponse response = client.put(Constants.PolicyManagement.UPDATE_POLICY_ENDPOINT, + MDMResponse response = client.put(Constants.PolicyManagement.UPDATE_POLICY_ENDPOINT, PayloadGenerator.getJsonPayload( Constants.PolicyManagement.POLICY_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_PUT).toString()); @@ -72,7 +72,7 @@ public class PolicyManagement extends TestBase { @Test(description = "Test remove policy.", dependsOnMethods = {"testUpdatePolicy"}) public void testRemovePolicy() throws Exception { - IOTResponse response = client.post(Constants.PolicyManagement.REMOVE_POLICY_ENDPOINT, + MDMResponse response = client.post(Constants.PolicyManagement.REMOVE_POLICY_ENDPOINT, Constants.PolicyManagement.REMOVE_POLICY_PAYLOAD_FILE_NAME); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); Assert.assertEquals(PayloadGenerator.getJsonPayload(Constants.PolicyManagement.POLICY_RESPONSE_PAYLOAD_FILE_NAME, diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java similarity index 82% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java index 185bca4c..999f888f 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/role/RoleManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/role/RoleManagement.java @@ -15,32 +15,33 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.role; +package org.wso2.mdm.integration.role; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.iot.integration.common.*; +import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for role management backend services. */ public class RoleManagement extends TestBase { - private IOTHttpClient client; + private MDMHttpClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.RoleManagement.ROLE_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.RoleManagement.ROLE_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); - this.client = new IOTHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); + this.client = new MDMHttpClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString); } @Test(description = "Test add role.") public void testAddRole() throws Exception { - IOTResponse response = client.post(Constants.RoleManagement.ADD_ROLE_ENDPOINT, + MDMResponse response = client.post(Constants.RoleManagement.ADD_ROLE_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.RoleManagement.ROLE_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_POST).toString()); Assert.assertEquals(HttpStatus.SC_CREATED, response.getStatus()); @@ -48,7 +49,7 @@ public class RoleManagement extends TestBase { @Test(description = "Test update permission role.", dependsOnMethods = {"testAddRole"}) public void testUpdateRolePermission() throws Exception { - IOTResponse response = client.put(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_ENDPOINT, + MDMResponse response = client.put(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_ENDPOINT, PayloadGenerator.getJsonPayload(Constants.RoleManagement.UPDATE_ROLE_PERMISSION_PAYLOAD_FILE_NAME, Constants.HTTP_METHOD_PUT).toString()); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); @@ -56,7 +57,7 @@ public class RoleManagement extends TestBase { @Test(description = "Test remove user.", dependsOnMethods = {"testUpdateRolePermission"}) public void testRemoveRole() throws Exception { - IOTResponse response = client.delete(Constants.RoleManagement.REMOVE_ROLE_ENDPOINT); + MDMResponse response = client.delete(Constants.RoleManagement.REMOVE_ROLE_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getStatus()); } } \ No newline at end of file diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java similarity index 96% rename from modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java rename to modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java index debc6222..dcd5ed48 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/user/UserManagement.java +++ b/modules/integration/tests-integration-old/src/test/java/org/wso2/mdm/integration/user/UserManagement.java @@ -16,7 +16,7 @@ * under the License. */ -package org.wso2.iot.integration.user; +package org.wso2.mdm.integration.user; import junit.framework.Assert; import org.apache.commons.httpclient.HttpStatus; @@ -24,7 +24,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.automation.engine.context.TestUserMode; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.iot.integration.common.*; +import org.wso2.mdm.integration.common.*; /** * This class contains integration tests for user management backend services. @@ -33,7 +33,7 @@ public class UserManagement extends TestBase { private RestClient client; - @BeforeClass(alwaysRun = true, groups = { Constants.UserManagement.USER_MANAGEMENT_GROUP}) + @BeforeClass(alwaysRun = true, groups = {Constants.UserManagement.USER_MANAGEMENT_GROUP}) public void initTest() throws Exception { super.init(TestUserMode.SUPER_TENANT_ADMIN); String accessTokenString = "Bearer " + OAuthUtil.getOAuthToken(backendHTTPSURL, backendHTTPSURL); diff --git a/modules/integration/tests-integration-old/src/test/resources/automation.xml b/modules/integration/tests-integration-old/src/test/resources/automation.xml new file mode 100644 index 00000000..c36ffbd8 --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/automation.xml @@ -0,0 +1,233 @@ + + + + + + + + + + 60000 + + standalone + + false + + 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 + + + 10863 + 10543 + + + + + + + + + + + + + + + + org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension + + + + + + + org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/integration/tests-integration/src/test/resources/automationSchema.xsd b/modules/integration/tests-integration-old/src/test/resources/automationSchema.xsd similarity index 100% rename from modules/integration/tests-integration/src/test/resources/automationSchema.xsd rename to modules/integration/tests-integration-old/src/test/resources/automationSchema.xsd diff --git a/modules/integration/tests-integration-old/src/test/resources/filters.txt b/modules/integration/tests-integration-old/src/test/resources/filters.txt new file mode 100644 index 00000000..8813e634 --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/filters.txt @@ -0,0 +1,23 @@ +-org.wso2.carbon.caching.core.identity.* +-org.wso2.carbon.caching.core.permissiontree.* +-org.wso2.carbon.caching.infinispan.* +-org.wso2.carbon.event.core.internal.delivery.jms.* +-org.wso2.carbon.event.core.qpid.* +-org.wso2.carbon.registry.synchronization.* +-*.stub* +-*.stub_ +-*.stub_4.0.0 +-*.stub- +-org.eclipse.* +-*.equinox.* +-org.wso2.carbon.user.core.* +-samples.* +-*.log4j* +-*.axis2* +-*.ui* +-*.tenant* +-*.stratos* +-*.eventing* +-*tests-transports* +-org.wso2.carbon.mediation.statistics* +-*startup* diff --git a/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt b/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt new file mode 100644 index 00000000..f9f1894a --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/instrumentation.txt @@ -0,0 +1,41 @@ +org.wso2.carbon.caching.core_ +org.wso2.carbon.discovery.core_ +org.wso2.carbon.discovery.proxy_ +org.wso2.carbon.email.verification_ +org.wso2.carbon.event.core_ +org.wso2.carbon.governance.custom.lifecycles.checklist_ +org.wso2.carbon.governance.gadgets.impactanalysis_ +org.wso2.carbon.governance.gadgetsource_ +org.wso2.carbon.governance.gadgets.resourceimpact_ +org.wso2.carbon.governance.generic_ +org.wso2.carbon.governance.lcm_ +org.wso2.carbon.governance.list_ +org.wso2.carbon.governance.platform.extensions_ +org.wso2.carbon.governance.registry.eventing_ +org.wso2.carbon.governance.registry.extensions_ +org.wso2.carbon.governance.services_ +org.wso2.carbon.identity.user.profile_ +org.wso2.carbon.mashup.javascript.hostobjects.registry_ +org.wso2.carbon.registry.activities_ +org.wso2.carbon.registry.common_ +org.wso2.carbon.registry.core_ +org.wso2.carbon.registry.eventing_ +org.wso2.carbon.registry.extensions_ +org.wso2.carbon.registry.handler_ +org.wso2.carbon.registry.indexing_ +org.wso2.carbon.registry.info_ +org.wso2.carbon.registry.profiles_ +org.wso2.carbon.registry.properties_ +org.wso2.carbon.registry.relations_ +org.wso2.carbon.registry.reporting_ +org.wso2.carbon.registry.resource_ +org.wso2.carbon.registry.search_ +org.wso2.carbon.registry.server_ +org.wso2.carbon.registry.servlet_ +org.wso2.carbon.registry.task_ +org.wso2.carbon.registry.uddi_ +org.wso2.carbon.registry.webdav_ +org.wso2.carbon.registry.ws.api_ +org.wso2.carbon.reporting.api_ +org.wso2.carbon.reporting.core_ +org.wso2.carbon.reporting.util_ diff --git a/modules/integration/tests-integration/src/test/resources/keystores/stratos/client-truststore.jks b/modules/integration/tests-integration-old/src/test/resources/keystores/products/client-truststore.jks similarity index 100% rename from modules/integration/tests-integration/src/test/resources/keystores/stratos/client-truststore.jks rename to modules/integration/tests-integration-old/src/test/resources/keystores/products/client-truststore.jks diff --git a/modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2carbon.jks b/modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2carbon.jks similarity index 100% rename from modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2carbon.jks rename to modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2carbon.jks diff --git a/modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2certs.jks b/modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2certs.jks similarity index 100% rename from modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2certs.jks rename to modules/integration/tests-integration-old/src/test/resources/keystores/products/wso2certs.jks diff --git a/modules/integration/tests-integration-old/src/test/resources/log4j.properties b/modules/integration/tests-integration-old/src/test/resources/log4j.properties new file mode 100644 index 00000000..bc395345 --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/log4j.properties @@ -0,0 +1,45 @@ +# +# Copyright (c) 2015, 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. +# + +# +# This is the log4j configuration file used by WSO2 Carbon +# +# IMPORTANT : Please do not remove or change the names of any +# of the Appenders defined here. The layout pattern & log file +# can be changed using the WSO2 Carbon Management Console, and those +# settings will override the settings in this file. +# + +log4j.rootLogger=INFO, console, Default + +log4j.logger.org.wso2=INFO +log4j.logger.org.apache.axis2.deployment.ModuleDeployer=ERROR +#Automation file apender +log4j.appender.Default=org.apache.log4j.RollingFileAppender +log4j.appender.Default.File=logs/automation.log +log4j.appender.Default.Append=true +log4j.appender.Default.MaxFileSize=10MB +log4j.appender.Default.MaxBackupIndex=10 +log4j.appender.Default.layout=org.apache.log4j.PatternLayout +log4j.appender.Default.layout.ConversionPattern=%d{ISO8601} %-5p [%c] - %m%n + + +#Automation console apender +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%-5p [%c] - %m%n diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-config-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-config-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-config-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-config-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-configuration-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-configuration-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-configuration-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-configuration-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-device-mgt-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-device-mgt-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-device-mgt-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-device-mgt-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-enrollment-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-enrollment-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-operation-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-operation-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-operation-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-operation-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/android-policy-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/android-policy-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/android-policy-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/android-policy-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/configuration-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/configuration-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/configuration-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/configuration-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/configuration-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/configuration-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/configuration-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/configuration-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/get-notifications-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/get-notifications-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/get-notifications-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/get-notifications-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/license-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/license-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/license-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/license-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/mobile-device-mgt-view-device-types-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/notification-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/notification-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/notification-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/notification-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/notification-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/notification-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/notification-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/notification-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/policy-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/policy-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/policy-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/policy-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/policy-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/policy-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/policy-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/policy-response-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/role-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/role-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/role-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/role-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/user-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/user-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/user-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/user-payloads.json diff --git a/modules/integration/tests-integration/src/test/resources/payloads/user-response-payloads.json b/modules/integration/tests-integration-old/src/test/resources/payloads/user-response-payloads.json similarity index 100% rename from modules/integration/tests-integration/src/test/resources/payloads/user-response-payloads.json rename to modules/integration/tests-integration-old/src/test/resources/payloads/user-response-payloads.json diff --git a/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml b/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml new file mode 100644 index 00000000..fa3a3fa7 --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/testng-server-mgt.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-integration-old/src/test/resources/testng.xml b/modules/integration/tests-integration-old/src/test/resources/testng.xml new file mode 100644 index 00000000..00843078 --- /dev/null +++ b/modules/integration/tests-integration-old/src/test/resources/testng.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/integration/tests-integration/src/test/resources/windows/enrollment/additional_device_info.xml b/modules/integration/tests-integration-old/src/test/resources/windows/enrollment/additional_device_info.xml similarity index 100% rename from modules/integration/tests-integration/src/test/resources/windows/enrollment/additional_device_info.xml rename to modules/integration/tests-integration-old/src/test/resources/windows/enrollment/additional_device_info.xml diff --git a/modules/integration/tests-integration/src/test/resources/windows/enrollment/discovery-post.xml b/modules/integration/tests-integration-old/src/test/resources/windows/enrollment/discovery-post.xml similarity index 100% rename from modules/integration/tests-integration/src/test/resources/windows/enrollment/discovery-post.xml rename to modules/integration/tests-integration-old/src/test/resources/windows/enrollment/discovery-post.xml diff --git a/modules/integration/tests-integration/src/test/resources/windows/enrollment/inital_device_info.xml b/modules/integration/tests-integration-old/src/test/resources/windows/enrollment/inital_device_info.xml similarity index 100% rename from modules/integration/tests-integration/src/test/resources/windows/enrollment/inital_device_info.xml rename to modules/integration/tests-integration-old/src/test/resources/windows/enrollment/inital_device_info.xml diff --git a/modules/integration/tests-integration/src/test/resources/windows/enrollment/ms_xcep.xml b/modules/integration/tests-integration-old/src/test/resources/windows/enrollment/ms_xcep.xml similarity index 100% rename from modules/integration/tests-integration/src/test/resources/windows/enrollment/ms_xcep.xml rename to modules/integration/tests-integration-old/src/test/resources/windows/enrollment/ms_xcep.xml diff --git a/modules/integration/tests-integration/src/test/resources/windows/enrollment/wstep.xml b/modules/integration/tests-integration-old/src/test/resources/windows/enrollment/wstep.xml similarity index 100% rename from modules/integration/tests-integration/src/test/resources/windows/enrollment/wstep.xml rename to modules/integration/tests-integration-old/src/test/resources/windows/enrollment/wstep.xml diff --git a/modules/integration/tests-integration/pom.xml b/modules/integration/tests-integration/pom.xml index 380a6f17..aa4d7c95 100644 --- a/modules/integration/tests-integration/pom.xml +++ b/modules/integration/tests-integration/pom.xml @@ -1,47 +1,46 @@ - - + ~ Copyright (c) 2015, 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. + --> + + + org.wso2.iot wso2iot-integration - 3.1.0-SNAPSHOT + 3.0.0-SNAPSHOT ../pom.xml 4.0.0 - org.wso2.carbon.iot.test.integration - WSO2 IOT - Integration Test Module - Backend Integration Tests for WSO2 IOT Server. + tests-integration jar + WSO2 IoT - Backend Integration Tests maven-surefire-plugin false + 2.12.4 - -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m - + false src/test/resources/testng-server-mgt.xml src/test/resources/testng.xml @@ -52,14 +51,10 @@ maven.test.haltafterfailure false - - java.io.tmpdir - ${basedir}/target/ - carbon.zip - ${basedir}/../../distribution/target/wso2iot-${project.version}.zip + ${basedir}/../../distribution/target/wso2iot-${product.iot.version}.zip @@ -68,42 +63,37 @@ ${basedir}/src/test/resources/ - - server.list - - IOT - - usedefaultlisteners false ${basedir}/target/security-verifier/ - ${basedir}/target/iot ${basedir}/src/test/resources/instrumentation.txt ${basedir}/src/test/resources/filters.txt - ${basedir}/target/iot ${basedir}/target + false maven-dependency-plugin + - copy-emma-dependencies + copy-jacoco-dependencies compile copy-dependencies - ${project.build.directory}/emma + ${project.build.directory}/jacoco jar - emma + org.jacoco.agent + copy-secVerifier compile @@ -119,7 +109,7 @@ - unpack-mar-jks + unpack-jks compile unpack @@ -129,11 +119,11 @@ org.wso2.iot wso2iot - ${project.version} + ${product.iot.version} zip true ${basedir}/target/tobeCopied/ - **/*.jks,**/*.mar,**/axis2_client.xml + **/*.jks @@ -152,6 +142,24 @@ + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.7.1 + + ${basedir}/target/report + registry-api-test + + + + integration-test + + report-only + + + + + maven-resources-plugin 2.6 @@ -168,7 +176,7 @@ - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/ + ${basedir}/target/tobeCopied/wso2iot-${product.iot.version}/repository/resources/security/ **/*.jks @@ -177,94 +185,82 @@ - - copy-stratos-jks - compile - - copy-resources - - - ${basedir}/src/test/resources/keystores/stratos - - - - - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/ - - - **/*.jks - - - - - - - copy-axis2files - compile - - copy-resources - - - ${basedir}/src/test/resources/axis2config - - - - - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/conf/axis2/ - - - **/*.xml - - - - - - - copy-resources-mar - compile - - copy-resources - - - ${basedir}/src/test/resources/client/modules - - - - - ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/deployment/client/modules - - - **/*.mar - - - - - + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + test-jar + + + + + + - - org.wso2.iot - org.wso2.carbon.iot.core.integration.ui.pages - org.wso2.carbon.automation org.wso2.carbon.automation.engine + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.extensions + compile org.wso2.carbon.automation org.wso2.carbon.automation.test.utils + compile + + + org.wso2.carbon.automationutils + org.wso2.carbon.integration.common.utils + compile org.wso2.carbon.automationutils org.wso2.carbon.integration.common.extensions + compile com.google.code.gson gson + compile + + org.wso2.carbon.devicemgt + org.wso2.carbon.device.mgt.core + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.device.mgt.common + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.policy.mgt.common + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.policy.mgt.core + compile + + + org.wso2.carbon.devicemgt + org.wso2.carbon.certificate.mgt.core + compile + + + diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java deleted file mode 100644 index a4248b10..00000000 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/AnalyticsServerExtension.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2017, 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.iot.integration.extensions; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.carbon.automation.engine.context.ContextXpathConstants; -import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; -import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; -import org.wso2.carbon.automation.extensions.ExtensionConstants; -import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; - -import javax.xml.xpath.XPathExpressionException; - -/** - * Test Automation server extension to start the DAS. - * This will set the carbon_home to {carbonHome}/core and port offset : 2 - */ -public class AnalyticsServerExtension extends ExecutionListenerExtension { - - private CustomTestServerManager serverManager; - private static final Log log = LogFactory.getLog(CarbonServerExtension.class); - private String executionEnvironment; - private AutomationContext automationContext; - - - @Override - public void initiate() throws AutomationFrameworkException { - try { - automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); - if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { - getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "2"); - } - serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); - executionEnvironment = - automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); - - } catch (XPathExpressionException e) { - handleException("Error while initiating test environment", e); - } - } - - @Override - public void onExecutionStart() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - String carbonHome = serverManager.startServer("analytics"); - log.info(carbonHome); - System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); - } - } catch (Exception e) { - handleException("Fail to start carbon server ", e); - } - } - - @Override - public void onExecutionFinish() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - serverManager.stopServer(); - } - } catch (Exception e) { - handleException("Fail to stop carbon server ", e); - } - } - - private static void handleException(String msg, Exception e) { - log.error(msg, e); - throw new RuntimeException(msg, e); - } -} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java deleted file mode 100644 index 2bb86d87..00000000 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/BrokerServerExtension.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2017, 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.iot.integration.extensions; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.carbon.automation.engine.context.ContextXpathConstants; -import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; -import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; -import org.wso2.carbon.automation.extensions.ExtensionConstants; -import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; - -import javax.xml.xpath.XPathExpressionException; - -/** - * Test Automation server extension to start the Broker. - * This will set the carbon_home to {carbonHome}/core and port offset : 3 - */ -public class BrokerServerExtension extends ExecutionListenerExtension { - - private CustomTestServerManager serverManager; - private static final Log log = LogFactory.getLog(CarbonServerExtension.class); - private String executionEnvironment; - private AutomationContext automationContext; - - - @Override - public void initiate() throws AutomationFrameworkException { - try { - automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); - if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { - getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "3"); - } - serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); - executionEnvironment = - automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); - - } catch (XPathExpressionException e) { - handleException("Error while initiating test environment", e); - } - } - - @Override - public void onExecutionStart() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - String carbonHome = serverManager.startServer("broker"); - log.info(carbonHome); - System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); - } - } catch (Exception e) { - handleException("Fail to start carbon server ", e); - } - } - - @Override - public void onExecutionFinish() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - serverManager.stopServer(); - } - } catch (Exception e) { - handleException("Fail to stop carbon server ", e); - } - } - - private static void handleException(String msg, Exception e) { - log.error(msg, e); - throw new RuntimeException(msg, e); - } -} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java deleted file mode 100644 index 7f383780..00000000 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/CustomTestServerManager.java +++ /dev/null @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2005-2017, 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.iot.integration.extensions; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.automation.engine.FrameworkConstants; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; -import org.wso2.carbon.automation.extensions.ExtensionConstants; -import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager; - -import javax.xml.xpath.XPathExpressionException; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class CustomTestServerManager { - protected CarbonServerManager carbonServer; - protected String carbonZip; - protected int portOffset; - protected Map commandMap = new HashMap(); - private static final Log log = LogFactory.getLog(CustomTestServerManager.class); - protected String carbonHome; - - public CustomTestServerManager(AutomationContext context) { - carbonServer = new CarbonServerManager(context); - } - - public CustomTestServerManager(AutomationContext context, String carbonZip) { - carbonServer = new CarbonServerManager(context); - this.carbonZip = carbonZip; - } - - public CustomTestServerManager(AutomationContext context, int portOffset) { - carbonServer = new CarbonServerManager(context); - this.portOffset = portOffset; - commandMap.put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, String.valueOf(portOffset)); - } - - public CustomTestServerManager(AutomationContext context, String carbonZip, - Map commandMap) { - carbonServer = new CarbonServerManager(context); - this.carbonZip = carbonZip; - if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) { - this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND)); - } else { - throw new IllegalArgumentException("portOffset value must be set in command list"); - } - this.commandMap = commandMap; - } - - public String getCarbonZip() { - return carbonZip; - } - - public String getCarbonHome() { - return carbonHome; - } - - public int getPortOffset() { - return portOffset; - } - - public void configureServer() throws AutomationFrameworkException { - - } - - - public Map getCommands() { - return commandMap; - } - - /** - * This method is called for starting a Carbon server in preparation for execution of a - * TestSuite - *

- * Add the @BeforeSuite TestNG annotation in the method overriding this method - * @param server : The server which needs to be start. - * @return The CARBON_HOME - * @throws IOException If an error occurs while copying the deployment artifacts into the - * Carbon server - */ - public String startServer(String server) - throws AutomationFrameworkException, IOException, XPathExpressionException { - if(carbonHome == null) { - if (carbonZip == null) { - carbonZip = System.getProperty(FrameworkConstants.SYSTEM_PROPERTY_CARBON_ZIP_LOCATION); - } - if (carbonZip == null) { - throw new IllegalArgumentException("carbon zip file cannot find in the given location"); - } - carbonHome = carbonServer.setUpCarbonHome(carbonZip) + "/" + server; - configureServer(); - } - log.info("Carbon Home - " + carbonHome ); - if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) { - this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND)); - } else { - this.portOffset = 0; - } - carbonServer.startServerUsingCarbonHome(carbonHome, commandMap); - return carbonHome; - } - - /** - * Restarting server already started by the method startServer - * @throws AutomationFrameworkException - */ - public void restartGracefully() throws AutomationFrameworkException { - if(carbonHome == null) { - throw new AutomationFrameworkException("No Running Server found to restart. " + - "Please make sure whether server is started"); - } - carbonServer.restartGracefully(); - } - - /** - * This method is called for stopping a Carbon server - *

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 hO}sl5RmlQbI~fLQ+6dKrrAx7vL7% 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%0AN@CsM=Q$5-?s4<_^K8iH4;O_Y$dR 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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 00000000..4a232f73 --- /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 00000000..2d076e06 --- /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 00000000..794d52ee --- /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 00000000..6ac14ecd --- /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 00000000..dbefeda8 --- /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 00000000..bafd7263 --- /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 00000000..47fb6711 --- /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 00000000..dc383d79 --- /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 00000000..637cf81d --- /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 00000000..08a45d55 --- /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 00000000..0bfd14eb --- /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 00000000..9ee47cc2 --- /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 00000000..9454c745 --- /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 00000000..7de14746 --- /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 00000000..db95d371 --- /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 00000000..1fdfd940 --- /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 00000000..73fa833b --- /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 00000000..75264212 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/testng-server-mgt.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + 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 00000000..14718b73 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/testng.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + +

- * Add the @AfterSuite annotation in the method overriding this method - * - * @throws AutomationFrameworkException If an error occurs while shutting down the server - */ - public void stopServer() throws AutomationFrameworkException { - carbonServer.serverShutdown(portOffset); - } - - - - -} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java deleted file mode 100644 index e8df4bad..00000000 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/extensions/IOTServerExtension.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2017, 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.iot.integration.extensions; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment; -import org.wso2.carbon.automation.engine.context.AutomationContext; -import org.wso2.carbon.automation.engine.context.ContextXpathConstants; -import org.wso2.carbon.automation.engine.context.TestUserMode; -import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; -import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension; -import org.wso2.carbon.automation.extensions.ExtensionConstants; -import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension; - -import javax.xml.xpath.XPathExpressionException; - -/** - * Test Automation server extension to start the IOT core. - * This will set the carbon_home to {carbonHome}/core and port offset : 0 - */ -public class IOTServerExtension extends ExecutionListenerExtension { - - private CustomTestServerManager serverManager; - private static final Log log = LogFactory.getLog(CarbonServerExtension.class); - private String executionEnvironment; - private AutomationContext automationContext; - - - @Override - public void initiate() throws AutomationFrameworkException { - try { - automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER); - if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) { - getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "0"); - } - serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters()); - executionEnvironment = - automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT); - - } catch (XPathExpressionException e) { - handleException("Error while initiating test environment", e); - } - } - - @Override - public void onExecutionStart() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - String carbonHome = serverManager.startServer("core"); - log.info(carbonHome); - System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome); - } - } catch (Exception e) { - handleException("Fail to start carbon server ", e); - } - } - - @Override - public void onExecutionFinish() throws AutomationFrameworkException { - try { - if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) { - serverManager.stopServer(); - } - } catch (Exception e) { - handleException("Fail to stop carbon server ", e); - } - } - - private static void handleException(String msg, Exception e) { - log.error(msg, e); - throw new RuntimeException(msg, e); - } -} diff --git a/modules/integration/tests-integration/src/test/resources/automation.xml b/modules/integration/tests-integration/src/test/resources/automation.xml index 09c68d76..c36ffbd8 100644 --- a/modules/integration/tests-integration/src/test/resources/automation.xml +++ b/modules/integration/tests-integration/src/test/resources/automation.xml @@ -1,6 +1,6 @@ - + + @@ -24,11 +25,15 @@ - 300000 + 60000 standalone + + false @@ -45,7 +50,7 @@ - http://10.100.2.51:4444/wd/hub/ + http://10.100.2.51:4444/wd/hub/ @@ -164,35 +169,39 @@ - + - + localhost - 9763 - 9446 - 9443 - 9445 + 10863 + 10543 - - + - + + - org.wso2.iot.integration.extensions.BrokerServerExtension - org.wso2.iot.integration.extensions.IOTServerExtension - org.wso2.iot.integration.extensions.AnalyticsServerExtension - org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension + + org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension + + + + + + + org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension + @@ -200,13 +209,13 @@ - + - + diff --git a/modules/integration/tests-integration/src/test/resources/instrumentation.txt b/modules/integration/tests-integration/src/test/resources/instrumentation.txt index f9f1894a..917b2bb7 100644 --- a/modules/integration/tests-integration/src/test/resources/instrumentation.txt +++ b/modules/integration/tests-integration/src/test/resources/instrumentation.txt @@ -1,41 +1,11 @@ -org.wso2.carbon.caching.core_ -org.wso2.carbon.discovery.core_ -org.wso2.carbon.discovery.proxy_ -org.wso2.carbon.email.verification_ -org.wso2.carbon.event.core_ -org.wso2.carbon.governance.custom.lifecycles.checklist_ -org.wso2.carbon.governance.gadgets.impactanalysis_ -org.wso2.carbon.governance.gadgetsource_ -org.wso2.carbon.governance.gadgets.resourceimpact_ -org.wso2.carbon.governance.generic_ -org.wso2.carbon.governance.lcm_ -org.wso2.carbon.governance.list_ -org.wso2.carbon.governance.platform.extensions_ -org.wso2.carbon.governance.registry.eventing_ -org.wso2.carbon.governance.registry.extensions_ -org.wso2.carbon.governance.services_ -org.wso2.carbon.identity.user.profile_ -org.wso2.carbon.mashup.javascript.hostobjects.registry_ -org.wso2.carbon.registry.activities_ -org.wso2.carbon.registry.common_ -org.wso2.carbon.registry.core_ -org.wso2.carbon.registry.eventing_ -org.wso2.carbon.registry.extensions_ -org.wso2.carbon.registry.handler_ -org.wso2.carbon.registry.indexing_ -org.wso2.carbon.registry.info_ -org.wso2.carbon.registry.profiles_ -org.wso2.carbon.registry.properties_ -org.wso2.carbon.registry.relations_ -org.wso2.carbon.registry.reporting_ -org.wso2.carbon.registry.resource_ -org.wso2.carbon.registry.search_ -org.wso2.carbon.registry.server_ -org.wso2.carbon.registry.servlet_ -org.wso2.carbon.registry.task_ -org.wso2.carbon.registry.uddi_ -org.wso2.carbon.registry.webdav_ -org.wso2.carbon.registry.ws.api_ -org.wso2.carbon.reporting.api_ -org.wso2.carbon.reporting.core_ -org.wso2.carbon.reporting.util_ +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-integration/src/test/resources/keystores/products/wso2mdm.jks b/modules/integration/tests-integration/src/test/resources/keystores/products/wso2mdm.jks deleted file mode 100644 index 66b68ea395562b9716c8c579b944ae19b5dbf296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9485 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 W`0v%-2|WuF22km0Do6xx&3^&4V5S-X diff --git a/modules/integration/tests-integration/src/test/resources/testng.xml b/modules/integration/tests-integration/src/test/resources/testng.xml index 41878cf0..2cfc4734 100644 --- a/modules/integration/tests-integration/src/test/resources/testng.xml +++ b/modules/integration/tests-integration/src/test/resources/testng.xml @@ -1,5 +1,5 @@ + + + org.wso2.iot + wso2iot-integration + 3.0.0-SNAPSHOT + ../pom.xml + + + 4.0.0 + WSO2 IoT - Integration Test UI Module + org.wso2.carbon.iot.core.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/wso2iot-${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.iot + wso2iot + ${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/wso2iot-${project.version}/repository/resources/security/ + + + **/*.jks + + + + + + + copy-axis2files + compile + + copy-resources + + + ${basedir}/src/test/resources/axis2config + + + + + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/conf/axis2/ + + + **/*.xml + + + + + + + copy-resources-mar + compile + + copy-resources + + + ${basedir}/src/test/resources/client/modules + + + + + ${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/deployment/client/modules + + + **/*.mar + + + + + + + + + + + + + org.wso2.iot + org.wso2.carbon.iot.core.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.automationutils + org.wso2.carbon.integration.common.extensions + + + + + true + + + diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java new file mode 100644 index 00000000..9cbfaacd --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/Constants.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2015, 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; + +public class Constants { + public static final String MDM_LOGIN_PATH = "/mdm/login"; + public static final String LOGIN_GROUP = "login-group"; + public static final String MDM_ROLES_URL = "/mdm/roles"; + public static final String MDM_USER_ADD_URL = "/mdm/users/add-user"; + public static final String MDM_USER_URL = "/mdm/users/"; + public static final String MDM_ROLES_EDIT_URL = "/mdm/roles/edit-role/"; + public static final String MDM_PLATFORM_CONFIG_URL = "/mdm/platform-configuration"; + public static final String MDM_NOTIFICATION_URL = "/mdm/notification-listing"; + public static final String MDM_HOME_URL = "/mdm"; +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java new file mode 100644 index 00000000..57677181 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/GeneralConfigurationTestCases.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.platformConfiguration.PlatformConfiguration; + + +public class GeneralConfigurationTestCases extends EMMIntegrationUiBaseTestCase { + private static String configValue = "3600"; + private WebDriver driver; + + @BeforeClass(alwaysRun = true) + public void setUp() throws Exception { + super.init(); + driver = BrowserManager.getWebDriver(); + LoginUtils.login(driver, automationContext, getWebAppURL()); + } + + @Test(description = "verify updating general platform configuration in emm") + public void testChangeGeneralConfig() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); + PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); + platformConfiguration.changeGeneralConfig(configValue); + } + + @Test(description = "verify updating android platform configuration in emm") + public void testChangeAndroidConfig() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); + PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); + platformConfiguration.changeAndroidConfig(configValue); + } + + @Test(description = "verify updating windows platform configuration in emm") + public void testChangeWindowsConfig() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_PLATFORM_CONFIG_URL); + PlatformConfiguration platformConfiguration = new PlatformConfiguration(driver); + platformConfiguration.changeWindowsConfig(configValue); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java new file mode 100644 index 00000000..fbedbd30 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/LoginUtils.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2015, 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.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.wso2.carbon.automation.engine.context.AutomationContext; +import org.wso2.iot.integration.ui.pages.UIElementMapper; +import org.wso2.iot.integration.ui.pages.login.MDMLoginPage; + +public class LoginUtils { + private static UIElementMapper uiElementMapper; + + public static void login(WebDriver driver, AutomationContext automationContext, + String webAppURL) throws Exception { + uiElementMapper = UIElementMapper.getInstance(); + driver.get(webAppURL + Constants.MDM_LOGIN_PATH); + MDMLoginPage test = new MDMLoginPage(driver); + WebElement + userNameField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.username"))); + WebElement passwordField = driver.findElement(By.name(uiElementMapper.getElement("emm.login.password"))); + userNameField + .sendKeys(new CharSequence[]{automationContext.getSuperTenant().getTenantAdmin().getUserName()}); + passwordField.sendKeys(new CharSequence[]{ + automationContext.getSuperTenant().getTenantAdmin().getPassword()}); + driver.findElement(By.xpath(uiElementMapper.getElement("emm.login.button.xpath"))).click(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java new file mode 100644 index 00000000..6fe06dbd --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/NotificationValidationTestCase.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2015, 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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.Notification.NotificationView; + +public class NotificationValidationTestCase extends EMMIntegrationUiBaseTestCase { + private static String notificationValue = "0"; + private WebDriver driver; + + @BeforeClass(alwaysRun = true) + public void setUp() throws Exception { + super.init(); + driver = BrowserManager.getWebDriver(); + LoginUtils.login(driver, automationContext, getWebAppURL()); + } + +// @Test(description = "verify notification count in emm") +// public void viewNotificationCount() throws Exception { +// driver.get(getWebAppURL() + Constants.MDM_HOME_URL); +// HomePage homePage = new HomePage(driver); +// homePage.checkNotificationCount(notificationValue); +// } + + @Test(description = "verify notification visibility in emm") + public void verifyNotificationView() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_NOTIFICATION_URL); + NotificationView notificationView = new NotificationView(driver); + notificationView.viewNotification(); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java new file mode 100644 index 00000000..8e55569f --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/RoleTestCases.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2015, 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.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.role.EditRolePage; +import org.wso2.iot.integration.ui.pages.role.RoleListPage; + +public class RoleTestCases extends EMMIntegrationUiBaseTestCase { + + private static final Log log = LogFactory.getLog(RoleTestCases.class); + private static String roleName = "role-manager"; + private static String roleNameEdit = "role-wso2-manager"; + private WebDriver driver; + + @BeforeClass(alwaysRun = true) + public void setUp() throws Exception { + super.init(); + driver = BrowserManager.getWebDriver(); + LoginUtils.login(driver, automationContext, getWebAppURL()); + } + + @Test(description = "verify add role to emm") + public void testAddRole() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_ROLES_URL); + RoleListPage roleListPage = new RoleListPage(driver, Constants.MDM_ROLES_URL); + roleListPage.addRole(roleName); + } + + @Test(description = "verify edit role to emm", dependsOnMethods = {"testAddRole"}) + public void testEditRole() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_ROLES_EDIT_URL + roleName); + EditRolePage rolePage = new EditRolePage(driver); + rolePage.editRole(roleNameEdit); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java new file mode 100644 index 00000000..5966f8b3 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/UserTestCase.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2015, 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.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.user.AddUserPage; +import org.wso2.iot.integration.ui.pages.user.UserListPage; + +public class UserTestCase extends EMMIntegrationUiBaseTestCase { + + private static final Log log = LogFactory.getLog(UserTestCase.class); + private WebDriver driver; + + @BeforeClass(alwaysRun = true) + public void setUp() throws Exception { + super.init(); + driver = BrowserManager.getWebDriver(); + LoginUtils.login(driver, automationContext, getWebAppURL()); + } + + @Test(description = "verify add user to emm console") + public void testAddUser() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_USER_ADD_URL); + AddUserPage addUserPage = new AddUserPage(driver); + addUserPage.addUser("inosh", "Inosh", "Perera", "inosh@wso2.com"); + } + + @Test(description = "verify delete user to emm console", dependsOnMethods = {"testAddUser"}) + public void testDeleteUser() throws Exception { + driver.get(getWebAppURL() + Constants.MDM_USER_URL); + UserListPage userListPage = new UserListPage(driver); + userListPage.deleteUser(); + driver.close(); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java new file mode 100644 index 00000000..274848bc --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/MDMLoginTestCase.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, 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.login; + +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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.home.MDMHomePage; +import org.wso2.iot.integration.ui.pages.login.MDMLoginPage; +import org.wso2.emm.ui.integration.test.Constants; + +public class MDMLoginTestCase extends EMMIntegrationUiBaseTestCase { + + private WebDriver driver; + + @BeforeClass(alwaysRun = true, groups = {Constants.LOGIN_GROUP}) + public void setUp() throws Exception { + super.init(); + driver = BrowserManager.getWebDriver(); + driver.get(getWebAppURL() + Constants.MDM_LOGIN_PATH); + } + + @Test(groups = {Constants.LOGIN_GROUP}, description = "verify login to emm console") + public void testLogin() throws Exception { + MDMLoginPage test = new MDMLoginPage(driver); + MDMHomePage home = test.loginAs(automationContext.getSuperTenant().getTenantAdmin().getUserName(), + automationContext.getSuperTenant().getTenantAdmin().getPassword()); + driver.close(); + } + + @AfterClass(alwaysRun = true) + public void tearDown() throws Exception { + driver.quit(); + } +} diff --git a/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java new file mode 100644 index 00000000..12675813 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/java/org/wso2/emm/ui/integration/test/login/ManagementConsoleLoginTestCase.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, 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.login; + +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.iot.integration.ui.pages.EMMIntegrationUiBaseTestCase; +import org.wso2.iot.integration.ui.pages.home.HomePage; +import org.wso2.iot.integration.ui.pages.login.ManagementConsoleLoginPage; + +public class ManagementConsoleLoginTestCase 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's management console") + public void testLogin() throws Exception { + ManagementConsoleLoginPage test = new ManagementConsoleLoginPage(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 00000000..d29cbab1 --- /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.automation.extensions.servers.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 00000000..b800b2ba --- /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 00000000..a8b584d0 --- /dev/null +++ b/modules/integration/tests-ui-integration/src/test/resources/axis2config/axis2_client.xml @@ -0,0 +1,300 @@ + + + + + + + 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 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 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/addressing-1.6.1-wso2v15.mar b/modules/integration/tests-ui-integration/src/test/resources/client/modules/addressing-1.6.1-wso2v15.mar new file mode 100644 index 0000000000000000000000000000000000000000..68f5cbd6ebbd9e59283ffca7546a7161df4cd4c1 GIT binary patch literal 31343 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 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 00000000..54913a22 --- /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 00000000..917b2bb7 --- /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-integration/src/test/resources/keystores/stratos/wso2emm.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks similarity index 100% rename from modules/integration/tests-integration/src/test/resources/keystores/stratos/wso2emm.jks rename to modules/integration/tests-ui-integration/src/test/resources/keystores/products/wso2emm.jks diff --git a/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks b/modules/integration/tests-ui-integration/src/test/resources/keystores/stratos/client-truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..ab222fdd343e6a44d2c1c0b82fbc7e2538509618 GIT binary patch literal 103867 zcmdqJ1z1*Hw=PU~cQ;7$&@ElkAq`Rw%|nNvbceKbNOy^Vbc3Qa(g-Lep_DY72T))1 z{q}zMIsdo!b;+yH(E2}ZG&b?CzYx0}B!!$Lg&KI66cS