Add ES features to pack.

Known issue: apim dependencies are not satisfying. Waiting for apim fix
application-manager-new
charithag 9 years ago
parent 45881b32ee
commit 6893ea0d0d

@ -96,37 +96,76 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!--============ Added with ES Features ===============-->
<execution>
<!-- Creating Device Management schema -->
<id>create-device-mgt-schema</id>
<id>2-identity-h2-table-gen</id>
<phase>package</phase>
<configuration>
<target>
<echo message="########### Create Identity Database ##############"/>
<copy todir="target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity"
overwrite="false">
<fileset
dir="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/">
</fileset>
</copy>
<path id="h2.classpath">
<path refid="maven.compile.classpath"/>
</path>
<echo message="########### Create Identity Database ##############"/>
<sql driver="org.h2.Driver"
url="jdbc:h2:${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/database/WSO2CARBON_DB"
userid="wso2carbon" password="wso2carbon" autocommit="true" onerror="continue">
<classpath>
<path refid="h2.classpath"/>
</classpath>
<fileset
file="target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/h2.sql"/>
</sql>
<!--sql driver="org.h2.Driver" url="jdbc:h2:${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/database/WSO2CARBON_DB" userid="wso2carbon" password="wso2carbon" autocommit="true" onerror="continue">
<classpath>
<path refid="h2.classpath" />
</classpath>
<fileset file="target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/h2.sql" />
</sql-->
<echo message="##################### END ########################"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="db.dir"
value="target/wso2carbon-core-${carbon.kernel.version}/repository/database"/>
<property name="userid" value="wso2carbon"/>
<property name="password" value="wso2carbon"/>
<property name="dbURL"
value="jdbc:h2:file:${basedir}/${db.dir}/WSO2DM_DB;DB_CLOSE_ON_EXIT=FALSE"/>
</execution>
<sql driver="org.h2.Driver" url="${dbURL}" userid="${userid}" password="${password}"
autocommit="true" onerror="continue">
<classpath refid="maven.dependency.classpath"/>
<classpath refid="maven.compile.classpath"/>
<classpath refid="maven.runtime.classpath"/>
<!--============ Added with ES Features ===============-->
<execution>
<id>social-h2-table-gen</id>
<phase>package</phase>
<configuration>
<target>
<echo message="########### Create Social Database ##############"/>
<copy todir="target/wso2carbon-core-${carbon.kernel.version}/dbscripts/social"
overwrite="false">
<fileset
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm/h2.sql"/>
</sql>
</tasks>
dir="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/social/">
</fileset>
</copy>
<path id="h2.classpath">
<path refid="maven.compile.classpath"/>
</path>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!--============ End with ES Features ===============-->
<execution>
<!-- Creating IDP Management schema -->
<id>create-idp-mgt-schema</id>
<!-- Creating Device Management schema -->
<id>create-device-mgt-schema</id>
<phase>package</phase>
<goals>
<goal>run</goal>
@ -138,7 +177,7 @@
<property name="userid" value="wso2carbon"/>
<property name="password" value="wso2carbon"/>
<property name="dbURL"
value="jdbc:h2:file:${basedir}/${db.dir}/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE"/>
value="jdbc:h2:file:${basedir}/${db.dir}/WSO2DM_DB;DB_CLOSE_ON_EXIT=FALSE"/>
<sql driver="org.h2.Driver" url="${dbURL}" userid="${userid}" password="${password}"
autocommit="true" onerror="continue">
@ -146,11 +185,39 @@
<classpath refid="maven.compile.classpath"/>
<classpath refid="maven.runtime.classpath"/>
<fileset
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/application-mgt/h2.sql"/>
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm/h2.sql"/>
</sql>
</tasks>
</configuration>
</execution>
<!--<execution>-->
<!--&lt;!&ndash; Creating IDP Management schema &ndash;&gt;-->
<!--<id>create-idp-mgt-schema</id>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>run</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<tasks>-->
<!--<property name="db.dir"-->
<!--value="target/wso2carbon-core-${carbon.kernel.version}/repository/database"/>-->
<!--<property name="userid" value="wso2carbon"/>-->
<!--<property name="password" value="wso2carbon"/>-->
<!--<property name="dbURL"-->
<!--value="jdbc:h2:file:${basedir}/${db.dir}/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE"/>-->
<!--<sql driver="org.h2.Driver" url="${dbURL}" userid="${userid}" password="${password}"-->
<!--autocommit="true" onerror="continue">-->
<!--<classpath refid="maven.dependency.classpath"/>-->
<!--<classpath refid="maven.compile.classpath"/>-->
<!--<classpath refid="maven.runtime.classpath"/>-->
<!--<fileset-->
<!--file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/application-mgt/h2.sql"/>-->
<!--</sql>-->
<!--</tasks>-->
<!--</configuration>-->
<!--</execution>-->
<execution>
<!-- Creating API Management schema -->
<id>create-api-mgt-schema</id>
@ -457,6 +524,12 @@
<fileset dir="src/lib"/>
</copy>
<copy todir="target/wso2carbon-core-${carbon.kernel.version}/repository/conf/datasources"
overwrite="true">
<fileset dir="src/repository/conf/datasources"/>
<!-- Copy master-datasources.xml and cdm-datasources.xml to target -->
</copy>
<!--<copy todir="target/wso2carbon-core-${carbon.kernel.version}/modules" overwrite="true">
<fileset dir="src/repository/modules"></fileset>
</copy>
@ -485,22 +558,30 @@
<copy todir="target/wso2carbon-core-${carbon.kernel.version}/repository/conf/iot"
overwrite="true">
<fileset file="../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/iot-config.xml"/>
<fileset
file="../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/iot-config.xml"/>
</copy>
<subant target="deploy">
<fileset dir="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino" includes="build.xml"/>
<fileset dir="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino"
includes="build.xml"/>
</subant>
<subant target="deploy">
<fileset dir="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi" includes="build.xml"/>
<fileset dir="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi"
includes="build.xml"/>
</subant>
<copy todir="../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/"
overwrite="true">
<fileset file="target/wso2carbon-core-${carbon.kernel.version}/repository/conf/iot/iot-config.xml"/>
<fileset
file="target/wso2carbon-core-${carbon.kernel.version}/repository/conf/iot/iot-config.xml"/>
</copy>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino/build.xml" toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino/build.xml.disable"/>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi/build.xml" toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi/build.xml.disable"/>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/sample_pom.xml" toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/pom.xml" overwrite="true"/>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino/build.xml"
toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/arduino/build.xml.disable"/>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi/build.xml"
toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/raspberrypi/build.xml.disable"/>
<move file="target/wso2carbon-core-${carbon.kernel.version}/samples/sample_pom.xml"
toFile="target/wso2carbon-core-${carbon.kernel.version}/samples/pom.xml"
overwrite="true"/>
</tasks>
</configuration>
<goals>

@ -20,16 +20,32 @@
<exclude>**/axis2services/version/**</exclude>
<!--<exclude>**/pom.xml</exclude>-->
<exclude>**/version.txt</exclude>
<exclude>**/master-datasources.xml</exclude>
<!--<exclude>**/master-datasources.xml</exclude>-->
<exclude>**/carbon.xml</exclude>
<exclude>**/registry.xml</exclude>
<exclude>**/client-truststore.jks</exclude>
<exclude>**/wso2carbon.jks</exclude>
<exclude>**/WSO2AM_DB.h2.db</exclude>
<!--<exclude>**/FireAlarmDM_DB.h2.db</exclude>-->
<exclude>**/WSO2DM_DB.h2.db</exclude>
<exclude>**/conf/axis2/axis2_client.xml</exclude>
<exclude>**/conf/etc/launch.ini</exclude>
<exclude>**/client-truststore.jks</exclude>
<exclude>**/wso2carbon.jks</exclude>
<!-- Store Features -->
<exclude>**/registry.xml</exclude>
<exclude>**/axis2/axis2.xml</exclude>
<exclude>**/org.wso2.carbon.identity.relyingparty.ui-3.1.0.SNAPSHOT.jar</exclude>
<exclude>**/org.wso2.carbon.identity.user.registration.ui-3.1.0.SNAPSHOT.jar
</exclude>
<exclude>**/log4j.properties</exclude>
<exclude>**/email/email-admin-config.xml</exclude>
<exclude>**/claim-config.xml</exclude>
<exclude>**/ciphertool.bat</exclude>
<exclude>**/ciphertool.sh</exclude>
<exclude>**/cipher-text.properties</exclude>
<exclude>**/cipher-tool.properties</exclude>
<exclude>**/lib/org.wso2.ciphertool-1.0.0-wso2v3.jar</exclude>
</excludes>
</fileSet>
@ -63,9 +79,15 @@
<include>**/stratos.xml</include>
<include>**/multitenancy-packages.xml</include>
<include>**/usage-throttling-agent-config.xml</include>
<include>**/cloud-services-desc.xml</include>
<!--Commented out in order to add ES specific xml file-->
<!--<include>**/cloud-services-desc.xml</include>-->
<!--============ Added with ES Features ===============-->
</includes>
<filtered>true</filtered>
<!--============ Added with ES Features ===============-->
<excludes>
<exclude>**/tenant-mgt.xml</exclude>
</excludes>
<!--============ Added with ES Features ===============-->
</fileSet>
<fileSet>
<directory>
@ -76,6 +98,15 @@
<include>**/tenant-mgt.xml</include>
</includes>
</fileSet>
<!-- End of Multitenancy related file -->
<fileSet>
<directory>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/resources
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/resources
</outputDirectory>
</fileSet>
<fileSet>
<directory>src/repository/resources/styles/css</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/resources/allthemes/Default/admin
@ -113,11 +144,7 @@
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/modules/</outputDirectory>
<includes>
<include>**/carbon/</include>
<include>**/jaggery-test/</include>
<include>**/process/</include>
<include>**/uuid/</include>
<include>**/i18n/</include>
<include>*/**</include>
</includes>
</fileSet>
<fileSet>
@ -125,8 +152,7 @@
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf</outputDirectory>
<includes>
<include>**/api-manager.xml</include>
<include>**/security/</include>
<!-- <include>**/emm-config.xml</include>-->
<include>**/sso-idp-config.xml</include>
</includes>
</fileSet>
<fileSet>
@ -137,6 +163,11 @@
<includes>
<include>**/entitlement.properties</include>
<include>**/trusted-idp-config.xml</include>
<!--============ Added with ES Features ===============-->
<include>**/cipher-text.properties</include>
<include>**/cipher-tool.properties</include>
<include>**/cipher-standalone-config.properties</include>
<!--============ Added with ES Features ===============-->
</includes>
</fileSet>
<fileSet>
@ -148,15 +179,16 @@
<include>**/**</include>
</includes>
</fileSet>
<fileSet>
<directory>src/repository/conf/datasources</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/datasources
</outputDirectory>
<includes>
<include>**/master-datasources.xml</include>
<include>**/cdm-datasources.xml</include>
</includes>
</fileSet>
<!-- Moved to distribution pom to copy before install samples-->
<!--<fileSet>-->
<!--<directory>src/repository/conf/datasources</directory>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/datasources-->
<!--</outputDirectory>-->
<!--<includes>-->
<!--<include>**/master-datasources.xml</include>-->
<!--<include>**/cdm-datasources.xml</include>-->
<!--</includes>-->
<!--</fileSet>-->
<fileSet>
<directory>src/repository/resources</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/resources</outputDirectory>
@ -270,6 +302,165 @@
<!--</outputDirectory>-->
<!--</fileSet>-->
<!--========================================================================================================-->
<!-- Enterprise Store Features -->
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/jaggeryapps
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/
</outputDirectory>
<includes>
<include>*/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<!-- copy the landing page webapp -->
<fileSet>
<directory>lib/home</directory>
<outputDirectory>
${pom.artifactId}-${pom.version}/repository/deployment/server/webapps/STRATOS_ROOT
</outputDirectory>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/client</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/lib</outputDirectory>
<includes>
<include>*/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<!--copy jaxrs web app for OAuth feature-->
<fileSet>
<directory>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/jaxwebapps
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaxwebapps
</outputDirectory>
<includes>
<include>oauth2endpoints.war</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>target/jaxwebapps</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaxwebapps
</outputDirectory>
<includes>
<include>**/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/bin</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/bin/</outputDirectory>
<includes>
<include>**/ciphertool.sh</include>
<include>**/ciphertool.bat</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/lib</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/lib/</outputDirectory>
<includes>
<include>**/org.wso2.ciphertool-1.0.0-wso2v3.jar</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>src/repository/conf/etc</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/etc/</outputDirectory>
<includes>
<include>**/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<!--Copied to ANOTHER DIR (conf/ folder) in CDMF-->
<fileSet>
<directory>src/repository/conf</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/identity/</outputDirectory>
<includes>
<include>**/sso-idp-config.xml</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>src/repository/conf/identity</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/identity/</outputDirectory>
<includes>
<include>**/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>src/repository/conf/bam</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/bam</outputDirectory>
<includes>
<include>**/es-bam.xml</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/resources/security/
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/resources/security/
</outputDirectory>
<includes>
<include>**/sso_redirect.html</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/webapps
</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/webapps
</outputDirectory>
<includes>
<include>shindig.war</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>src/repository/bam</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/bam/</outputDirectory>
<includes>
<include>**/**</include>
</includes>
</fileSet>
<!--============ Added with ES Features ===============-->
<fileSet>
<directory>src/repository/conf/security</directory>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/identity/</outputDirectory>
<includes>
<include>**/application-authenticators.xml</include>
<!-- Replacement for application-authenticators.xml -->
<include>**/application-authentication.xml</include>
</includes>
</fileSet>
<!--========================================================================================================-->
<!-- End of Enterprise Store Features -->
<!--copy web app for devices-->
<fileSet>
<directory>
@ -576,15 +767,16 @@
<fileMode>644</fileMode>
</file>
<!-- TODO: Verify this feature is needed -->
<!--Webapp Authenticator Config file-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/etc/webapp-authenticator-config.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/etc</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--<file>-->
<!--<source>-->
<!--../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/etc/webapp-authenticator-config.xml-->
<!--</source>-->
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/etc</outputDirectory>-->
<!--<filtered>true</filtered>-->
<!--<fileMode>644</fileMode>-->
<!--</file>-->
<!--notifications config file-->
<file>
@ -681,5 +873,125 @@
<fileMode>644</fileMode>
</file>
<!--========================================================================================================-->
<!-- Enterprise Store Features -->
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/governance.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>src/repository/conf/registry.xml</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/</outputDirectory>
<filtered>true</filtered>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>src/repository/conf/multitenancy/cloud-services-desc.xml</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/multitenancy/</outputDirectory>
<filtered>true</filtered>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/log4j.properties
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/
</outputDirectory>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>target/wso2carbon-core-${carbon.kernel.version}/repository/conf/axis2/axis2.xml</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/axis2/</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/identity/identity-mgt.properties
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/identity</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/email/email-admin-config.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/email</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/claim-config.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>src/repository/database/WSO2IDENTITY_DB.h2.db</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/database</outputDirectory>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/social.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/datasources/social-datasources.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/datasources/</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/association-config.xml
</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf/etc</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--============ Added with ES Features ===============-->
<file>
<source>
../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/shindig.properties</source>
<outputDirectory>${pom.artifactId}-${pom.version}/repository/conf</outputDirectory>
<filtered>true</filtered>
<fileMode>644</fileMode>
</file>
<!--========================================================================================================-->
<!-- End of Enterprise Store Features -->
</files>
</assembly>

@ -37,7 +37,7 @@
JDBC driver for the database.
-->
<!--<Driver>org.h2.Driver</Driver>
</Database>-->
</Database>-->
<!--
Authentication manager configuration for API publisher and API store. This is
@ -141,7 +141,7 @@
<!--
Endpoint URLs for the APIs hosted in this API gateway.
-->
<GatewayEndpoint>http://${carbon.local.ip}:${mgt.transport.http.port},https://${carbon.local.ip}:${mgt.transport.https.port}</GatewayEndpoint>
<GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint>
</Environment>
</Environments>

@ -98,132 +98,6 @@
</definition>
</datasource>
<datasource>
<name>FireAlarmDM_DS</name>
<description>The datasource used for Firealarm database</description>
<jndiConfig>
<name>jdbc/FireAlarmDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/FireAlarmDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>ArduinoDM_DS</name>
<description>The datasource used for Arduino database</description>
<jndiConfig>
<name>jdbc/ArduinoDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/ArduinoDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>AndroidSenseDM_DB</name>
<description>The datasource used for Android database</description>
<jndiConfig>
<name>jdbc/AndroidSenseDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/AndroidSenseDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>SensebotDM_DS</name>
<description>The datasource used for Sensebot database</description>
<jndiConfig>
<name>jdbc/SensebotDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/SensebotDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>DigitalDisplayDM_DS</name>
<description>The datasource used for Digital Display database</description>
<jndiConfig>
<name>jdbc/DigitalDisplayDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/DigitalDisplayDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>RaspberrypiDM_DS</name>
<description>The datasource used for Raspberrypi database</description>
<jndiConfig>
<name>jdbc/RaspberrypiDM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/RaspberrypiDM_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>JAGH2</name>
<description>The datasource used for by the Jaggery Storage Manager</description>

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ 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.
-->
<EnterpriseMobilityManager>
<DeviceMonitorFrequency>60000</DeviceMonitorFrequency>
<iOSEMMConfigurations>
<!-- iOS EMM endpoint urls -->
<iOSEnrollURL>https://192.168.1.2:9443/emm/scep</iOSEnrollURL>
<iOSProfileURL>https://192.168.1.2:9443/emm/profile</iOSProfileURL>
<iOSCheckinURL>https://192.168.1.2:9443/emm/checkin</iOSCheckinURL>
<iOSServerURL>https://192.168.1.2:9443/emm/server</iOSServerURL>
<!-- post url for device tokens -->
<TokenURL>http://192.168.1.2:9763/emm/api/devices/iostokenregister</TokenURL>
<EmmKeystore>
<!-- EMM Keystore file location-->
<EMMKeystoreLocation>${carbon.home}/repository/resources/security/wso2emm.jks</EMMKeystoreLocation>
<!-- EMM Keystore type (JKS/PKCS12 etc.)-->
<EMMKeystoreType>JKS</EMMKeystoreType>
<!-- EMM Keystore password-->
<EMMKeystorePassword>wso2carbon</EMMKeystorePassword>
<!-- Certificate authority certificate alias -->
<EMMCACertAlias>cacert</EMMCACertAlias>
<!-- Certificate authority private key password -->
<EMMCAPrivateKeyPassword>cacert</EMMCAPrivateKeyPassword>
<!-- Registration authority certificate alias -->
<EMMRACertAlias>racert</EMMRACertAlias>
<!-- Registration authority private key password -->
<EMMRAPrivateKeyPassword>racert</EMMRAPrivateKeyPassword>
</EmmKeystore>
</iOSEMMConfigurations>
</EnterpriseMobilityManager>

@ -37,6 +37,13 @@
<SkipDBSchemaCreation>true</SkipDBSchemaCreation>
</JDBCPersistenceManager>
<TimeConfig>
<SessionIdleTimeout>120</SessionIdleTimeout><!-- Minutes -->
<RememberMeTimeout>20160</RememberMeTimeout><!-- Minutes -->
<PersistanceCleanUpTimeout>20160</PersistanceCleanUpTimeout><!-- Minutes -->
<PersistanceCleanUpPeriod>1140</PersistanceCleanUpPeriod><!-- Minutes -->
</TimeConfig>
<!--
Security configurations
-->
@ -68,10 +75,42 @@
</System>
</Identity>
<OpenID>
<OpenIDServerUrl>https://localhost:9443/openidserver</OpenIDServerUrl>
<OpenIDUserPattern>https://localhost:9443/openid/</OpenIDUserPattern>
<!-- If the users must be prompted for approval -->
<OpenIDSkipUserConsent>false</OpenIDSkipUserConsent>
<!-- Expiry time of the OpenID RememberMe token in minutes -->
<OpenIDRememberMeExpiry>7200</OpenIDRememberMeExpiry>
<!-- Multifactor Authentication configuration -->
<UseMultifactorAuthentication>false</UseMultifactorAuthentication>
<!-- To enable or disable openid dumb mode -->
<DisableOpenIDDumbMode>false</DisableOpenIDDumbMode>
<!-- remember me session timeout in seconds -->
<SessionTimeout>36000</SessionTimeout>
<!-- skips authentication if valid SAML2 Web SSO browser session available -->
<AcceptSAMLSSOLogin>false</AcceptSAMLSSOLogin>
<ClaimsRetrieverImplClass>org.wso2.carbon.identity.provider.openid.claims.DefaultClaimsRetriever</ClaimsRetrieverImplClass>
</OpenID>
<OAuth>
<RequestTokenUrl>https://10.100.5.3:9443/oauth/request-token</RequestTokenUrl>
<AppInfoCacheTimeout>-1</AppInfoCacheTimeout>
<AuthorizationGrantCacheTimeout>-1</AuthorizationGrantCacheTimeout>
<SessionDataCacheTimeout>-1</SessionDataCacheTimeout>
<ClaimCacheTimeout>-1</ClaimCacheTimeout>
<RequestTokenUrl>https://localhost:9443/oauth/request-token</RequestTokenUrl>
<AccessTokenUrl>https://localhost:9443/oauth/access-token</AccessTokenUrl>
<AuthorizeUrl>https://localhost:9443/oauth/authorize-url</AuthorizeUrl>
<!-- Commented whilst adding ES Features -->
<!--
<RequestTokenUrl>https://10.100.5.3:9443/oauth/request-token</RequestTokenUrl>
<AccessTokenUrl>https://10.100.5.3:9443/oauth/access-token</AccessTokenUrl>
<AuthorizeUrl>https://10.100.5.3:9443/oauth/authorize-url</AuthorizeUrl>
-->
<!-- Default validity period for Authorization Code in seconds -->
<AuthorizationCodeDefaultValidityPeriod>300</AuthorizationCodeDefaultValidityPeriod>
<!-- Default validity period for Access Token in seconds -->
@ -80,17 +119,21 @@
<ApplicationAccessTokenDefaultValidityPeriod>3600</ApplicationAccessTokenDefaultValidityPeriod>
<!-- Default validity period for User Access Token in seconds-->
<UserAccessTokenDefaultValidityPeriod>3600</UserAccessTokenDefaultValidityPeriod>
<!-- Validity period for refresh token -->
<RefreshTokenValidityPeriod>84600</RefreshTokenValidityPeriod>
<!-- Timestamp skew in seconds -->
<TimestampSkew>300</TimestampSkew>
<!-- Enable OAuth caching. This cache has the replication support. -->
<EnableOAuthCache>true</EnableOAuthCache>
<!-- Configure the security measures needs to be done prior to store the token in the database,
such as hashing, encrypting, etc.-->
<TokenPersistenceProcessor>
org.wso2.carbon.identity.oauth.tokenprocessor.PlainTextPersistenceProcessor
</TokenPersistenceProcessor>
<!-- Enable renewal of refresh token for refresh_token grant -->
<RenewRefreshTokenForRefreshGrant>true</RenewRefreshTokenForRefreshGrant>
<!-- Process the token before storing it in database, e.g. encrypting -->
<TokenPersistenceProcessor>org.wso2.carbon.identity.oauth.tokenprocessor.PlainTextPersistenceProcessor</TokenPersistenceProcessor>
<!-- Supported Client Autnetication Methods -->
<ClientAuthHandlers>
<ClientAuthHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.clientauth.BasicAuthClientAuthHandler</ClientAuthHandlerImplClass>
<ClientAuthHandler Class="org.wso2.carbon.identity.oauth2.token.handlers.clientauth.BasicAuthClientAuthHandler">
<Property Name="StrictClientCredentialValidation">false</Property>
</ClientAuthHandler>
</ClientAuthHandlers>
<!--TokenPersistenceProcessor>
org.wso2.carbon.identity.oauth.tokenprocessor.EncryptionDecryptionPersistenceProcessor
@ -114,6 +157,8 @@
</SupportedGrantType>
<SupportedGrantType>
<GrantTypeName>password</GrantTypeName>
<!-- Was found in file whilst adding ES Features -->
<!-- <GrantTypeHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.grant.PasswordGrantHandler</GrantTypeHandlerImplClass> -->
<GrantTypeHandlerImplClass>org.wso2.carbon.apimgt.keymgt.handlers.ExtendedPasswordGrantHandler</GrantTypeHandlerImplClass>
</SupportedGrantType>
<SupportedGrantType>
@ -128,10 +173,17 @@
<GrantTypeName>urn:ietf:params:oauth:grant-type:saml2-bearer</GrantTypeName>
<GrantTypeHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.grant.saml.SAML2BearerGrantHandler</GrantTypeHandlerImplClass>
</SupportedGrantType>
<SupportedGrantType>
<GrantTypeName>iwa:ntlm</GrantTypeName>
<GrantTypeHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.grant.iwa.ntlm.NTLMAuthenticationGrantHandler</GrantTypeHandlerImplClass>
</SupportedGrantType>
</SupportedGrantTypes>
<OAuthCallbackHandlers>
<OAuthCallbackHandler Class="org.wso2.carbon.apimgt.keymgt.util.APIManagerOAuthCallbackHandler"/>
</OAuthCallbackHandlers>
<!--TokenValidators>
<TokenValidator type="bearer" class="org.wso2.carbon.identity.oauth2.validators.DefaultOAuth2TokenValidator"/>
</TokenValidators-->
<!-- Add custom user headers to the response-->
<!--<RequiredRespHeaderClaimUris>
@ -171,17 +223,19 @@
<!--SAML2TokenHandler></SAML2TokenHandler-->
</SAML2Grant>
<!-- Primary/secondary login configuration for APIstore. If user likes to keep two login attributes in a distributed setup, to login the APIstore,
he should configure this section. Primary login doesn't have a claimUri associated with it. But secondary login, which is a claim attribute,
is associated with a claimuri.-->
<!-- <LoginConfig>
<UserIdLogin primary="true">
<ClaimUri></ClaimUri>
</UserIdLogin>
<EmailLogin primary="false">
<ClaimUri>http://wso2.org/claims/emailaddress</ClaimUri>
</EmailLogin>
</LoginConfig>-->
<OpenIDConnect>
<IDTokenBuilder>org.wso2.carbon.identity.openidconnect.DefaultIDTokenBuilder</IDTokenBuilder>
<IDTokenIssuerID>https://localhost:9443/oauth2endpoints/token</IDTokenIssuerID>
<IDTokenSubjectClaim>http://wso2.org/claims/givenname</IDTokenSubjectClaim>
<IDTokenCustomClaimsCallBackHandler>org.wso2.carbon.identity.openidconnect.SAMLAssertionClaimsCallback</IDTokenCustomClaimsCallBackHandler>
<IDTokenExpiration>3600</IDTokenExpiration>
<UserInfoEndpointClaimDialect>http://wso2.org/claims</UserInfoEndpointClaimDialect>
<UserInfoEndpointClaimRetriever>org.wso2.carbon.identity.oauth.endpoint.user.impl.UserInfoUserStoreClaimRetriever</UserInfoEndpointClaimRetriever>
<UserInfoEndpointRequestValidator>org.wso2.carbon.identity.oauth.endpoint.user.impl.UserInforRequestDefaultValidator</UserInfoEndpointRequestValidator>
<UserInfoEndpointAccessTokenValidator>org.wso2.carbon.identity.oauth.endpoint.user.impl.UserInfoISAccessTokenValidator</UserInfoEndpointAccessTokenValidator>
<UserInfoEndpointResponseBuilder>org.wso2.carbon.identity.oauth.endpoint.user.impl.UserInfoJSONResponseBuilder</UserInfoEndpointResponseBuilder>
<SkipUserConsent>false</SkipUserConsent>
</OpenIDConnect>
</OAuth>
<MultifactorAuthentication>
@ -198,6 +252,8 @@
</MultifactorAuthentication>
<SSOService>
<PersistanceCacheTimeout>157680000</PersistanceCacheTimeout>
<SessionIndexCacheTimeout>157680000</SessionIndexCacheTimeout>
<EntityId>localhost</EntityId>
<IdentityProviderURL>https://localhost:9443/samlsso</IdentityProviderURL>
<SingleLogoutRetryCount>5</SingleLogoutRetryCount>
@ -209,6 +265,7 @@
<AttributesClaimDialect>http://wso2.org/claims</AttributesClaimDialect>
<AcceptOpenIDLogin>false</AcceptOpenIDLogin>
<ClaimsRetrieverImplClass>org.wso2.carbon.identity.sso.saml.builders.claims.DefaultClaimsRetriever</ClaimsRetrieverImplClass>
<SAMLSSOAssertionBuilder>org.wso2.carbon.identity.sso.saml.builders.assertion.DefaultSAMLAssertionBuilder</SAMLSSOAssertionBuilder>
<SAMLSSOEncrypter>org.wso2.carbon.identity.sso.saml.builders.encryption.DefaultSSOEncrypter</SAMLSSOEncrypter>
<SAMLSSOSigner>org.wso2.carbon.identity.sso.saml.builders.signature.DefaultSSOSigner</SAMLSSOSigner>
<SAML2HTTPRedirectSignatureValidator>org.wso2.carbon.identity.sso.saml.validators.SAML2HTTPRedirectDeflateSignatureValidator</SAML2HTTPRedirectSignatureValidator>
@ -216,7 +273,7 @@
<!-- SAML Token validity period in minutes -->
<SAMLResponseValidityPeriod>5</SAMLResponseValidityPeriod>
<UseAuthenticatedUserDomain>false</UseAuthenticatedUserDomain>
<UseAuthenticatedUserDomainCrypto>false</UseAuthenticatedUserDomainCrypto>
</SSOService>
<EntitlementSettings>
@ -240,9 +297,28 @@
<Location>${carbon.home}/repository/resources/security/wso2carbon.jks</Location>
<Password>wso2carbon</Password>
</KeyStore>
<!-- Enable this element to mention the host-name of your IS machine -->
<ThriftHostName>localhost</ThriftHostName>
</ThirftBasedEntitlementConfig>
</EntitlementSettings>
<SCIMAuthenticators>
<Authenticator class="org.wso2.carbon.identity.scim.provider.auth.BasicAuthHandler">
<Property name="Priority">5</Property>
</Authenticator>
<Authenticator class="org.wso2.carbon.identity.scim.provider.auth.OAuthHandler">
<Property name="Priority">10</Property>
<Property name="AuthorizationServer">local://services</Property>
<!--Property name="AuthorizationServer">https://localhost:9443/services</Property>
<Property name="UserName">admin</Property>
<Property name="Password">admin</Property-->
</Authenticator>
</SCIMAuthenticators>
<!--SessionContextCache>
<Enable>true</Enable>
<Capacity>100000</Capacity>
</SessionContextCache-->
<!--To do OSGI invocations to OAuth2Service,when the entire server is in one JVM -->
<SeparateBackEnd>false</SeparateBackEnd>
</Server>

@ -0,0 +1,49 @@
<ServiceProvider>
<ApplicationID>2</ApplicationID>
<ApplicationName>wso2_sp_dashboard</ApplicationName>
<Description>Default Service Provider</Description>
<InboundAuthenticationConfig>
<InboundAuthenticationRequestConfigs>
<InboundAuthenticationRequestConfig>
<InboundAuthKey>wso2.my.dashboard</InboundAuthKey>
<InboundAuthType>samlsso</InboundAuthType>
<Properties></Properties>
</InboundAuthenticationRequestConfig>
</InboundAuthenticationRequestConfigs>
</InboundAuthenticationConfig>
<LocalAndOutBoundAuthenticationConfig>
<AuthenticationSteps>
<AuthenticationStep>
<StepOrder>1</StepOrder>
<LocalAuthenticatorConfigs>
<LocalAuthenticatorConfig>
<Name>BasicAuthenticator</Name>
<DisplayName>basicauth</DisplayName>
<IsEnabled>true</IsEnabled>
</LocalAuthenticatorConfig>
</LocalAuthenticatorConfigs>
<!-- FederatedIdentityProviders>
<IdentityProvider>
<IdentityProviderName>facebook</IdentityProviderName>
<IsEnabled>true</IsEnabled>
<DefaultAuthenticatorConfig>
<FederatedAuthenticatorConfig>
<Name>FacebookAuthenticator</Name>
<IsEnabled>true</IsEnabled>
</FederatedAuthenticatorConfig>
</DefaultAuthenticatorConfig>
</IdentityProvider>
</FederatedIdentityProviders -->
<SubjectStep>true</SubjectStep>
<AttributeStep>true</AttributeStep>
</AuthenticationStep>
</AuthenticationSteps>
</LocalAndOutBoundAuthenticationConfig>
<RequestPathAuthenticatorConfigs></RequestPathAuthenticatorConfigs>
<InboundProvisioningConfig></InboundProvisioningConfig>
<OutboundProvisioningConfig></OutboundProvisioningConfig>
<ClaimConfig>
<AlwaysSendMappedLocalSubjectId>true</AlwaysSendMappedLocalSubjectId>
</ClaimConfig>
<PermissionAndRoleConfig></PermissionAndRoleConfig>
</ServiceProvider>

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- ~ Copyright (c) 2005-2014, 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. -->
<ApplicationAuthentication xmlns="http://wso2.org/projects/carbon/application-authentication.xml">
<JDBCPersistenceManager>
<DataSource>
<!-- Include a data source name (jndiConfigName) from the set of data
sources defined in master-datasources.xml -->
<!--Name>jdbc/WSO2_IDP_DB</Name-->
<Name>jdbc/WSO2CarbonDB</Name>
</DataSource>
</JDBCPersistenceManager>
<!--
ProxyMode allows framework to operate in either 'smart' mode
or 'dumb' mode.
smart = both local and federated authentication is supported
dumb = only federated authentication is supported
-->
<ProxyMode>smart</ProxyMode>
<!--
AuthenticationEndpointURL is location of the web app containing
the authentication related pages
-->
<AuthenticationEndpointURL>/sso/login</AuthenticationEndpointURL>
<!--
Extensions allow extending the default behaviour of the authentication
process.
-->
<Extensions>
<RequestCoordinator>org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator</RequestCoordinator>
<AuthenticationRequestHandler>org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler</AuthenticationRequestHandler>
<LogoutRequestHandler>org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultLogoutRequestHandler</LogoutRequestHandler>
<StepBasedSequenceHandler>org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler</StepBasedSequenceHandler>
<RequestPathBasedSequenceHandler>org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultRequestPathBasedSequenceHandler</RequestPathBasedSequenceHandler>
<StepHandler>org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler</StepHandler>
<HomeRealmDiscoverer>org.wso2.carbon.identity.application.authentication.framework.handler.hrd.impl.DefaultHomeRealmDiscoverer</HomeRealmDiscoverer>
<ClaimHandler>org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler</ClaimHandler>
<ProvisioningHandler>org.wso2.carbon.identity.application.authentication.framework.handler.provisioning.impl.DefaultProvisioningHandler</ProvisioningHandler>
</Extensions>
<!--
AuthenticatorNameMappings allow specifying an authenticator
against a pre-defined alias (which will be used by other components.
E.g. Application Mgt component). This enables the usage of a custom
authenticator in place of an authenticator that gets packed with the
distribution.
-->
<AuthenticatorNameMappings>
<AuthenticatorNameMapping name="BasicAuthenticator" alias="basic" />
<AuthenticatorNameMapping name="OAuthRequestPathAuthenticator" alias="oauth-bearer" />
<AuthenticatorNameMapping name="BasicAuthRequestPathAuthenticator" alias="basic-auth" />
<AuthenticatorNameMapping name="IWAAuthenticator" alias="iwa" />
<AuthenticatorNameMapping name="SAMLSSOAuthenticator" alias="samlsso" />
<AuthenticatorNameMapping name="OpenIDConnectAuthenticator" alias="openidconnect" />
<AuthenticatorNameMapping name="OpenIDAuthenticator" alias="openid" />
<AuthenticatorNameMapping name="PassiveSTSAuthenticator" alias="passive-sts" />
</AuthenticatorNameMappings>
<!--
AuthenticatorConfigs allow specifying various configurations needed
by the authenticators by using any number of \'Parameter\' elements
E.g.
<AuthenticatorConfig name="CustomAuthenticator" enabled="true" />
<Parameter name="paramName1">paramValue</Parameter>
<Parameter name="paramName2">paramValue</Parameter>
</AuthenticatorConfig>
-->
<AuthenticatorConfigs>
<AuthenticatorConfig name="BasicAuthenticator" enabled="true" />
<AuthenticatorConfig name="OAuthRequestPathAuthenticator" enabled="true" />
<AuthenticatorConfig name="BasicAuthRequestPathAuthenticator" enabled="true" />
<AuthenticatorConfig name="SAMLSSOAuthenticator" enabled="true">
<!--Parameter name="SAMLSSOManager">org.wso2.carbon.identity.application.authenticator.samlsso.manager.DefaultSAMLSSOManager</Parameter-->
</AuthenticatorConfig>
<AuthenticatorConfig name="OpenIDConnectAuthenticator" enabled="true">
<!--Parameter name="IDTokenHandler">org.wso2.carbon.identity.application.authenticator.oidc.DefaultIDTokenHandler</Parameter-->
<!--Parameter name="ClaimsRetriever">org.wso2.carbon.identity.application.authenticator.oidc.OIDCUserInfoClaimsRetriever</Parameter-->
</AuthenticatorConfig>
<AuthenticatorConfig name="OpenIDAuthenticator" enabled="true">
<Parameter name="LoginPage">/authenticationendpoint/login.do</Parameter>
<Parameter name="TrustStorePath">/repository/resources/security/client-truststore.jks</Parameter>
<Parameter name="TrustStorePassword">wso2carbon</Parameter>
<!--Parameter name="OpenIDManager">org.wso2.carbon.identity.application.authenticator.openid.manager.DefaultOpenIDManager</Parameter>
<Parameter name="AttributesRequestor">org.wso2.carbon.identity.application.authenticator.openid.manager.SampleAttributesRequestor</Parameter-->
</AuthenticatorConfig>
</AuthenticatorConfigs>
<!--
Sequences allow specifying authentication flows for different
registered applications. \'default\' sequence is taken if an
application specific sequence doesn't exist in this file or
in the Application Mgt module.
-->
<Sequences>
<!-- Default Sequence. This is mandatory -->
<Sequence appId="default">
<Step order="1">
<Authenticator name="BasicAuthenticator"/>
</Step>
</Sequence>
</Sequences>
<ServiceProvidersManagement>
<ApplicationDAO>org.wso2.carbon.identity.application.mgt.dao.impl.ApplicationDAOImpl</ApplicationDAO>
<OAuthOIDCClientDAO>org.wso2.carbon.identity.application.mgt.dao.impl.OAuthApplicationDAOImpl</OAuthOIDCClientDAO>
<SAMLClientDAO>org.wso2.carbon.identity.application.mgt.dao.impl.SAMLApplicationDAOImpl</SAMLClientDAO>
<SystemIDPDAO>org.wso2.carbon.identity.application.mgt.dao.impl.IdentityProviderDAOImpl</SystemIDPDAO>
<ClaimDialect>http://wso2.org/claims</ClaimDialect>
</ServiceProvidersManagement>
</ApplicationAuthentication>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ Copyright 2005-2013 WSO2, Inc. (http://wso2.com)
~
~ Licensed 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.
-->
<Authenticators>
<Authenticator name="BasicAuthenticator" disabled="false" factor="1">
<Status value="10" loginPage="/sso/login" />
</Authenticator>
</Authenticators>

@ -0,0 +1,52 @@
<!--
~ Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ WSO2 Inc. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<SSOIdentityProviderConfig>
<TenantRegistrationPage>https://stratos-local.wso2.com/carbon/tenant-register/select_domain.jsp</TenantRegistrationPage>
<ServiceProviders>
<ServiceProvider>
<Issuer>store</Issuer>
<AssertionConsumerService>https://localhost:9443/store/acs</AssertionConsumerService>
<SignResponse>true</SignResponse>
<CustomLoginPage>/store/login.jag</CustomLoginPage>
</ServiceProvider>
<ServiceProvider>
<Issuer>social</Issuer>
<AssertionConsumerService>https://localhost:9443/social/acs</AssertionConsumerService>
<SignResponse>true</SignResponse>
<CustomLoginPage>/social/login</CustomLoginPage>
</ServiceProvider>
<ServiceProvider>
<Issuer>publisher</Issuer>
<AssertionConsumerService>https://localhost:9443/publisher/acs</AssertionConsumerService>
<SignResponse>true</SignResponse>
<CustomLoginPage>/publisher/controllers/login.jag</CustomLoginPage>
</ServiceProvider>
<ServiceProvider>
<Issuer>emm</Issuer>
<AssertionConsumerService>https://localhost:9443/emm/acs</AssertionConsumerService>
<SignResponse>true</SignResponse>
<CustomLoginPage>/emm/login</CustomLoginPage>
</ServiceProvider>
<ServiceProvider>
<Issuer>mam</Issuer>
<AssertionConsumerService>https://localhost:9443/mam/acs</AssertionConsumerService>
<SignResponse>true</SignResponse>
<CustomLoginPage>/mam/login</CustomLoginPage>
</ServiceProvider>
</ServiceProviders>
</SSOIdentityProviderConfig>

@ -35,4 +35,16 @@
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<!-- APIPublisherLifecycleListener listens to webapp deployment events and publish JAX-RS services packaged into each of the aforesaid
web applications that are configured to be made available as 'Managed APIs'. Given below are the parameters that need to be congigured
in the form of 'context-param's in web.xml of each applicable web application.
'managed-api-enabled' - Indicates that the web application being processed needs to be published as a 'Managed API'.
'managed-api-context' - Context of the 'Managed API'.
'managed-api-version' - Version of the 'Managed API'.
'managed-api-owner' - Owner of the 'Managed API'.
'managed-api-isSecured' - Indicates if the 'Managed API' needs to be exposed over a secured channel.
'managed-api-transports' - Transports through which the 'Managed API' is exposed.
-->
<Listener className="org.wso2.carbon.apimgt.webapp.publisher.lifecycle.listener.APIPublisherLifecycleListener"/>
</Context>

@ -0,0 +1,26 @@
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE
(
ID INT(11) auto_increment NOT NULL,
NAME VARCHAR(300) NULL DEFAULT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE IF NOT EXISTS DM_DEVICE
(
ID INT auto_increment NOT NULL,
DESCRIPTION TEXT NULL DEFAULT NULL,
NAME VARCHAR(100) NULL DEFAULT NULL,
DATE_OF_ENROLLMENT BIGINT NULL DEFAULT NULL,
DATE_OF_LAST_UPDATE BIGINT NULL DEFAULT NULL,
OWNERSHIP VARCHAR(45) NULL DEFAULT NULL,
STATUS VARCHAR(15) NULL DEFAULT NULL,
DEVICE_TYPE_ID INT(11) NULL DEFAULT NULL,
DEVICE_IDENTIFICATION VARCHAR(300) NULL DEFAULT NULL,
OWNER VARCHAR(45) NULL DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (ID),
CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID )
REFERENCES DM_DEVICE_TYPE (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION
);
-- TO:DO - Remove this INSERT sql statement.
Insert into DM_DEVICE_TYPE (NAME) VALUES ('android');

@ -0,0 +1,35 @@
-- -----------------------------------------------------
-- Table `DM_DEVICE_TYPE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DM_DEVICE_TYPE` (
`ID` INT(11) NOT NULL ,
`NAME` VARCHAR(300) NULL DEFAULT NULL ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `DM_DEVICE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DM_DEVICE` (
`ID` VARCHAR(20) NOT NULL ,
`DESCRIPTION` TEXT NULL DEFAULT NULL ,
`NAME` VARCHAR(100) NULL DEFAULT NULL ,
`DATE_OF_ENROLLMENT` DATETIME NULL DEFAULT NULL ,
`DATE_OF_LAST_UPDATE` DATETIME NULL DEFAULT NULL ,
`OWNERSHIP` VARCHAR(45) NULL DEFAULT NULL ,
`STATUS` VARCHAR(15) NULL DEFAULT NULL ,
`DEVICE_TYPE_ID` INT(11) NULL DEFAULT NULL ,
`DEVICE_IDENTIFICATION` VARCHAR(300) NULL DEFAULT NULL ,
`OWNER` VARCHAR(45) NULL DEFAULT NULL ,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (`ID`) ,
INDEX `fk_DM_DEVICE_DM_DEVICE_TYPE2_idx` (`DEVICE_TYPE_ID` ASC) ,
CONSTRAINT `fk_DM_DEVICE_DM_DEVICE_TYPE2`
FOREIGN KEY (`DEVICE_TYPE_ID` )
REFERENCES `DM_DEVICE_TYPE` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;

@ -0,0 +1,82 @@
-- -----------------------------------------------------
-- Table `MBL_DEVICE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_DEVICE` (
`MOBILE_DEVICE_ID` VARCHAR(45) NOT NULL ,
`REG_ID` VARCHAR(45) NULL DEFAULT NULL ,
`IMEI` VARCHAR(45) NULL DEFAULT NULL ,
`IMSI` VARCHAR(45) NULL DEFAULT NULL ,
`OS_VERSION` VARCHAR(45) NULL DEFAULT NULL ,
`DEVICE_MODEL` VARCHAR(45) NULL DEFAULT NULL ,
`VENDOR` VARCHAR(45) NULL DEFAULT NULL ,
`LATITUDE` VARCHAR(45) NULL DEFAULT NULL,
`LONGITUDE` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`MOBILE_DEVICE_ID`) );
-- -----------------------------------------------------
-- Table `MBL_FEATURE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_FEATURE` (
`FEATURE_ID` INT NOT NULL AUTO_INCREMENT ,
`CODE` VARCHAR(45) NOT NULL ,
`NAME` VARCHAR(100) NULL ,
`DESCRIPTION` VARCHAR(200) NULL ,
PRIMARY KEY (`FEATURE_ID`) );
-- -----------------------------------------------------
-- Table `MBL_OPERATION`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_OPERATION` (
`OPERATION_ID` INT NOT NULL AUTO_INCREMENT ,
`FEATURE_CODE` VARCHAR(45) NOT NULL ,
`CREATED_DATE` BIGINT NULL ,
PRIMARY KEY (`OPERATION_ID`));
-- -----------------------------------------------------
-- Table `MBL_DEVICE_OPERATION_MAPPING`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPPING` (
`DEVICE_ID` VARCHAR(45) NOT NULL ,
`OPERATION_ID` INT NOT NULL ,
`SENT_DATE` BIGINT NULL ,
`RECEIVED_DATE` BIGINT NULL ,
PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`) ,
CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_DEVICE`
FOREIGN KEY (`DEVICE_ID` )
REFERENCES `MBL_DEVICE` (`MOBILE_DEVICE_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1`
FOREIGN KEY (`OPERATION_ID` )
REFERENCES `MBL_OPERATION` (`OPERATION_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
-- -----------------------------------------------------
-- Table `MBL_OPERATION_PROPERTY`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` (
`OPERATION_ID` INT NOT NULL ,
`PROPERTY` VARCHAR(45) NOT NULL ,
`VALUE` TEXT NULL ,
PRIMARY KEY (`OPERATION_ID`, `PROPERTY`) ,
CONSTRAINT `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1`
FOREIGN KEY (`OPERATION_ID` )
REFERENCES `MBL_OPERATION` (`OPERATION_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
-- -----------------------------------------------------
-- Table `MBL_FEATURE_PROPERTY`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_FEATURE_PROPERTY` (
`PROPERTY` VARCHAR(45) NOT NULL ,
`FEATURE_ID` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`PROPERTY`) ,
CONSTRAINT `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1`
FOREIGN KEY (`FEATURE_ID` )
REFERENCES `MBL_FEATURE` (`FEATURE_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);

@ -0,0 +1,99 @@
-- -----------------------------------------------------
-- Table `MBL_DEVICE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_DEVICE` (
`MOBILE_DEVICE_ID` VARCHAR(45) NOT NULL,
`REG_ID` VARCHAR(45) NULL DEFAULT NULL,
`IMEI` VARCHAR(45) NULL DEFAULT NULL,
`IMSI` VARCHAR(45) NULL DEFAULT NULL,
`OS_VERSION` VARCHAR(45) NULL DEFAULT NULL,
`DEVICE_MODEL` VARCHAR(45) NULL DEFAULT NULL,
`VENDOR` VARCHAR(45) NULL DEFAULT NULL,
`LATITUDE` VARCHAR(45) NULL DEFAULT NULL,
`LONGITUDE` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`MOBILE_DEVICE_ID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MBL_FEATURE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_FEATURE` (
`FEATURE_ID` INT NOT NULL AUTO_INCREMENT,
`CODE` VARCHAR(45) NULL,
`NAME` VARCHAR(100) NULL,
`DESCRIPTION` VARCHAR(200) NULL,
PRIMARY KEY (`FEATURE_ID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MBL_OPERATION`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_OPERATION` (
`OPERATION_ID` INT NOT NULL AUTO_INCREMENT,
`FEATURE_CODE` VARCHAR(45) NULL,
`CREATED_DATE` INT NULL,
PRIMARY KEY (`OPERATION_ID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MBL_DEVICE_OPERATION_MAPING`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPPING` (
`DEVICE_ID` VARCHAR(45) NOT NULL,
`OPERATION_ID` INT NOT NULL,
`SENT_DATE` INT NULL,
`RECEIVED_DATE` INT NULL,
PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`),
INDEX `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1_idx` (`OPERATION_ID` ASC),
CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_DEVICE`
FOREIGN KEY (`DEVICE_ID`)
REFERENCES `MBL_DEVICE` (`MOBILE_DEVICE_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1`
FOREIGN KEY (`OPERATION_ID`)
REFERENCES `MBL_OPERATION` (`OPERATION_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MBL_OPERATION_PROPERTY`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` (
`OPERATION_PROPERTY_ID` INT NOT NULL AUTO_INCREMENT,
`OPERATION_ID` INT NULL,
`PROPERTY_ID` INT NULL,
`VALUE` TEXT NULL,
PRIMARY KEY (`OPERATION_PROPERTY_ID`),
INDEX `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1_idx` (`OPERATION_ID` ASC),
CONSTRAINT `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1`
FOREIGN KEY (`OPERATION_ID`)
REFERENCES `MBL_OPERATION` (`OPERATION_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MBL_FEATURE_PROPERTY`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MBL_FEATURE_PROPERTY` (
`PROPERTY_ID` INT NOT NULL AUTO_INCREMENT,
`PROPERTY` VARCHAR(100) NULL,
`FEATURE_ID` VARCHAR(45) NULL,
PRIMARY KEY (`PROPERTY_ID`),
INDEX `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1_idx` (`FEATURE_ID` ASC),
CONSTRAINT `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1`
FOREIGN KEY (`FEATURE_ID`)
REFERENCES `MBL_FEATURE` (`FEATURE_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

@ -0,0 +1,50 @@
<!--
~ Copyright (c) 2005-2010, WSO2 Inc. (http://wso2.com) 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.
~
-->
<project name="publish assests" default="help" basedir=".">
<target name="help">
<echo>
ant publish
</echo>
</target>
<property name="jar.dir" value="../../lib"/>
<target name="publish">
<java fork="true" classname="org.wso2.store.component.client.ArtifactPublisher">
<classpath>
<path location="${jar.dir}/asset-client-1.0-SNAPSHOT-jar-with-dependencies.jar"/>
</classpath>
<arg value="${host}"/>
<arg value="${port}"/>
<arg value="${user}"/>
<arg value="${pwd}"/>
<arg value="${context}"/>
<arg value="${user.dir}"/>
</java>
</target>
</project>

@ -0,0 +1,162 @@
<!--
~ Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ WSO2 Inc. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<resource path="/repository/dashboards" isCollection="true">
<mediaType />
<description />
<children>
<resource path="/repository/dashboards/governance"
isCollection="true">
<mediaType />
<description />
<children>
<resource path="/repository/dashboards/governance/gadgets"
isCollection="true">
<mediaType />
<description />
<children>
<resource path="/repository/dashboards/governance/gadgets/10"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUrl">
/registry/resource/_system/config/repository/dashboards/gadgets/impact-analysis.xml
</property>
</properties>
<children>
<resource
path="/repository/dashboards/governance/gadgets/10/gadgetprefs"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUserPrefs-10" />
</properties>
<children />
</resource>
</children>
</resource>
<resource path="/repository/dashboards/governance/gadgets/20"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUrl">/carbon/impactAnalysis/impact.xml</property>
</properties>
<children>
<resource
path="/repository/dashboards/governance/gadgets/20/gadgetprefs"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUserPrefs-20" />
</properties>
<children />
</resource>
</children>
</resource>
<resource path="/repository/dashboards/governance/gadgets/30"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUrl">
/registry/resource/_system/config/repository/dashboards/gadgets/life-cycle-info.xml
</property>
</properties>
<children>
<resource
path="/repository/dashboards/governance/gadgets/30/gadgetprefs"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="gadgetUserPrefs-30" />
</properties>
<children />
</resource>
</children>
</resource>
</children>
</resource>
<resource path="/repository/dashboards/governance/nextGadgetId"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="nextGadgetId">200</property>
</properties>
<children />
</resource>
<resource path="/repository/dashboards/governance/tabs"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="nextTabId">200</property>
<property key="currentTabLayout">0,3</property>
</properties>
<children>
<resource path="/repository/dashboards/governance/tabs/0"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="tabTitle">Impact Data</property>
</properties>
<children>
<resource
path="/repository/dashboards/governance/tabs/0/currentGadgetLayout"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="currentGadgetLayout">{"layout":[{"id":"","width":"50%","layout":[{"id":"10","type":"gadget"}],"type":"columnContainer"},{"id":"","width":"50%","layout":[{"id":"20","type":"gadget"}],"type":"columnContainer"}]}</property>
</properties>
<children />
</resource>
</children>
</resource>
<resource path="/repository/dashboards/governance/tabs/3"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="tabTitle">Lifecycle Data</property>
</properties>
<children>
<resource
path="/repository/dashboards/governance/tabs/3/currentGadgetLayout"
isCollection="true">
<mediaType />
<description />
<properties>
<property key="currentGadgetLayout">G1#30</property>
</properties>
<children />
</resource>
</children>
</resource>
</children>
</resource>
</children>
</resource>
</children>
</resource>

@ -0,0 +1,63 @@
body {
background-color: white;
padding: 0px;
margin: 0px;
font-family: "Lucida Grande","Lucida Sans","Microsoft Sans Serif", "Lucida Sans Unicode","Verdana","Sans-serif","trebuchet ms" !important;
color: #111;
font-size:12px;
font-size-adjust:none;
font-stretch:normal;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:1.25em;
}
.main-table {
border: 0px;
padding: 0px;
margin-top: 5px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
}
.main-table thead tr th{
padding: 0px;
text-align: left;
vertical-align: top;
border: 0px;
}
.main-table tbody tr td {
padding: 0px;
text-align: left;
vertical-align: top;
border: 0px;
}
.main-table tr td {
padding: 0px;
text-align: left;
vertical-align: top;
border: 0px;
}
.tablib_selected {
color: #2F7ABD;
font-weight: normal;
}
.pleaseText {
margin-top: 5px;
text-align: center;
}
.titleText {
margin-top: 5px;
text-align: center;
}
select {
font-size: 10px;
margin-bottom: 2px;
}
input {
font-size: 10px;
margin-bottom: 2px;
}
span.userNameText {
font-size: 11px;
}

@ -0,0 +1,58 @@
div#help-wrapper {
background-color:white;
color:#111111;
font-family:"Lucida Grande","Lucida Sans","Microsoft Sans Serif","Lucida Sans Unicode","Verdana","Sans-serif","trebuchet ms";
font-size:12px;
font-size-adjust:none;
font-stretch:normal;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:1.25em;
margin:0;
padding:0;
}
div#help-wrapper p {
margin-left:0;
margin-right:0;
}
td {
}
a:link {
}
a:visited {
}
a:hover {
}
a:active {
}
div#help-wrapper h1 {
color:#F47B20;
font-size:16px;
font-weight:bold;
}
div#help-wrapper h2 {
color:#111111;
font-size:14px;
font-weight:bold;
}
a img {
border:0 none;
}
table.styled {
border:0 solid #CCCCCC;
border-collapse:collapse;
}
table.styled tr td {
border:1px solid #CCCCCC;
padding:3px;
}
table.styled tr td.subHeader {
border:0 solid #CCCCCC;
font-size:125%;
font-weight:bold;
padding-bottom:5px;
padding-top:10px;
}

@ -0,0 +1,184 @@
function urlDecode(str) {
str = str.replace(new RegExp('\\+', 'g'), ' ');
return unescape(str);
}
function urlEncode(str) {
str = escape(str);
str = str.replace(new RegExp('\\+', 'g'), '%2B');
return str.replace(new RegExp('%20', 'g'), '+');
}
var END_OF_INPUT = -1;
var base64Chars = new Array(
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', '+', '/'
);
var reverseBase64Chars = new Array();
for (var i = 0; i < base64Chars.length; i++) {
reverseBase64Chars[base64Chars[i]] = i;
}
var base64Str;
var base64Count;
function setBase64Str(str) {
base64Str = str;
base64Count = 0;
}
function readBase64() {
if (!base64Str) return END_OF_INPUT;
if (base64Count >= base64Str.length) return END_OF_INPUT;
var c = base64Str.charCodeAt(base64Count) & 0xff;
base64Count++;
return c;
}
function encodeBase64(str) {
setBase64Str(str);
var result = '';
var inBuffer = new Array(3);
var lineCount = 0;
var done = false;
while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT) {
inBuffer[1] = readBase64();
inBuffer[2] = readBase64();
result += (base64Chars[ inBuffer[0] >> 2 ]);
if (inBuffer[1] != END_OF_INPUT) {
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
if (inBuffer[2] != END_OF_INPUT) {
result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
result += (base64Chars [inBuffer[2] & 0x3F]);
} else {
result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
result += ('=');
done = true;
}
} else {
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
result += ('=');
result += ('=');
done = true;
}
lineCount += 4;
if (lineCount >= 76) {
result += ('\n');
lineCount = 0;
}
}
return result;
}
function readReverseBase64() {
if (!base64Str) return END_OF_INPUT;
while (true) {
if (base64Count >= base64Str.length) return END_OF_INPUT;
var nextCharacter = base64Str.charAt(base64Count);
base64Count++;
if (reverseBase64Chars[nextCharacter]) {
return reverseBase64Chars[nextCharacter];
}
if (nextCharacter == 'A') return 0;
}
return END_OF_INPUT;
}
function ntos(n) {
n = n.toString(16);
if (n.length == 1) n = "0" + n;
n = "%" + n;
return unescape(n);
}
function decodeBase64(str) {
setBase64Str(str);
var result = "";
var inBuffer = new Array(4);
var done = false;
while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT) {
inBuffer[2] = readReverseBase64();
inBuffer[3] = readReverseBase64();
result += ntos((((inBuffer[0] << 2) & 0xff) | inBuffer[1] >> 4));
if (inBuffer[2] != END_OF_INPUT) {
result += ntos((((inBuffer[1] << 4) & 0xff) | inBuffer[2] >> 2));
if (inBuffer[3] != END_OF_INPUT) {
result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]));
} else {
done = true;
}
} else {
done = true;
}
}
return result;
}
var digitArray = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
function toHex(n) {
var result = ''
var start = true;
for (var i = 32; i > 0;) {
i -= 4;
var digit = (n >> i) & 0xf;
if (!start || digit != 0) {
start = false;
result += digitArray[digit];
}
}
return (result == '' ? '0' : result);
}
function pad(str, len, pad) {
var result = str;
for (var i = str.length; i < len; i++) {
result = pad + result;
}
return result;
}
function encodeHex(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
result += pad(toHex(str.charCodeAt(i) & 0xff), 2, '0');
}
return result;
}
var hexv = {
"00":0,"01":1,"02":2,"03":3,"04":4,"05":5,"06":6,"07":7,"08":8,"09":9,"0A":10,"0B":11,"0C":12,"0D":13,"0E":14,"0F":15,
"10":16,"11":17,"12":18,"13":19,"14":20,"15":21,"16":22,"17":23,"18":24,"19":25,"1A":26,"1B":27,"1C":28,"1D":29,"1E":30,"1F":31,
"20":32,"21":33,"22":34,"23":35,"24":36,"25":37,"26":38,"27":39,"28":40,"29":41,"2A":42,"2B":43,"2C":44,"2D":45,"2E":46,"2F":47,
"30":48,"31":49,"32":50,"33":51,"34":52,"35":53,"36":54,"37":55,"38":56,"39":57,"3A":58,"3B":59,"3C":60,"3D":61,"3E":62,"3F":63,
"40":64,"41":65,"42":66,"43":67,"44":68,"45":69,"46":70,"47":71,"48":72,"49":73,"4A":74,"4B":75,"4C":76,"4D":77,"4E":78,"4F":79,
"50":80,"51":81,"52":82,"53":83,"54":84,"55":85,"56":86,"57":87,"58":88,"59":89,"5A":90,"5B":91,"5C":92,"5D":93,"5E":94,"5F":95,
"60":96,"61":97,"62":98,"63":99,"64":100,"65":101,"66":102,"67":103,"68":104,"69":105,"6A":106,"6B":107,"6C":108,"6D":109,"6E":110,"6F":111,
"70":112,"71":113,"72":114,"73":115,"74":116,"75":117,"76":118,"77":119,"78":120,"79":121,"7A":122,"7B":123,"7C":124,"7D":125,"7E":126,"7F":127,
"80":128,"81":129,"82":130,"83":131,"84":132,"85":133,"86":134,"87":135,"88":136,"89":137,"8A":138,"8B":139,"8C":140,"8D":141,"8E":142,"8F":143,
"90":144,"91":145,"92":146,"93":147,"94":148,"95":149,"96":150,"97":151,"98":152,"99":153,"9A":154,"9B":155,"9C":156,"9D":157,"9E":158,"9F":159,
"A0":160,"A1":161,"A2":162,"A3":163,"A4":164,"A5":165,"A6":166,"A7":167,"A8":168,"A9":169,"AA":170,"AB":171,"AC":172,"AD":173,"AE":174,"AF":175,
"B0":176,"B1":177,"B2":178,"B3":179,"B4":180,"B5":181,"B6":182,"B7":183,"B8":184,"B9":185,"BA":186,"BB":187,"BC":188,"BD":189,"BE":190,"BF":191,
"C0":192,"C1":193,"C2":194,"C3":195,"C4":196,"C5":197,"C6":198,"C7":199,"C8":200,"C9":201,"CA":202,"CB":203,"CC":204,"CD":205,"CE":206,"CF":207,
"D0":208,"D1":209,"D2":210,"D3":211,"D4":212,"D5":213,"D6":214,"D7":215,"D8":216,"D9":217,"DA":218,"DB":219,"DC":220,"DD":221,"DE":222,"DF":223,
"E0":224,"E1":225,"E2":226,"E3":227,"E4":228,"E5":229,"E6":230,"E7":231,"E8":232,"E9":233,"EA":234,"EB":235,"EC":236,"ED":237,"EE":238,"EF":239,
"F0":240,"F1":241,"F2":242,"F3":243,"F4":244,"F5":245,"F6":246,"F7":247,"F8":248,"F9":249,"FA":250,"FB":251,"FC":252,"FD":253,"FE":254,"FF":255
};
function decodeHex(str) {
str = str.toUpperCase().replace(new RegExp("s/[^0-9A-Z]//g"));
var result = "";
var nextchar = "";
for (var i = 0; i < str.length; i++) {
nextchar += str.charAt(i);
if (nextchar.length == 2) {
result += ntos(hexv[nextchar]);
nextchar = "";
}
}
return result;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8" ?>
<Module>
<ModulePrefs title="Service Impact" height="300"
description="Shows all dependencies and used-by associations of a particular service"
author="Tharindu Mathew" author_email="carbon-dev@wso2.org"
author_affiliation="WSO2" author_location="Colombo, Sri Lanka">
<Require feature="setprefs" />
<Require feature="tabs" />
<Require feature="dynamic-height" />
<Require feature="views" />
</ModulePrefs>
<UserPref name="selection" display_name="selection"
default_value="[]" datatype="list" required="true"></UserPref>
<UserPref name="selectedFlag" default_value="false" datatype="bool" required="true"></UserPref>
<Content type="html" view="default, home">
<![CDATA[
<script type="text/javascript" src="js/wso2vis.js"></script>
<!--<script type="text/javascript" src="js/jit.js"></script>-->
<style>
div#qTip {
padding: 3px;
border: 1px solid #666;
border-right-width: 2px;
border-bottom-width: 2px;
display: none;
background: #999;
color: #FFF;
font: bold 10px Verdana, Arial, sans-serif;
text-align: left;
position: absolute;
z-index: 1000;
}
</style>
<link rel="stylesheet" type="text/css" href="css/gadgets.css"/>
<link rel="stylesheet" type="text/css" href="css/help.css"/>
<div id="filter" style="margin:0 auto; text-align:center;width:300px;"></div>
<div id="infovis" style="margin:0 auto; text-align:center;height:300px;width:300px"></div>
<div id="log"></div>
<div id="error"></div>
<script type="text/javascript">
var dataProvider = new wso2vis.p.ProviderGETJSON("carbon/gauges/gadgets/flash/flashdata-ajaxprocessor.jsp?funcName=getImpactAnalysis");
// var dataFilter = new wso2vis.f.BasicFilter(["services", "service"], ["@name"]);
function pullData() {
dataProvider.pullData();
var prefs = new gadgets.Prefs();
var filterSelection = dataFilter.filterArray();
prefs.set("selection", filterSelection);
prefs.set("selectedFlag", true);
gadgets.window.adjustHeight(300);
setTimeout("gadgets.window.adjustHeight(300)",100);
}
var dataFilter = new wso2vis.f.form.Select()
.canvas("filter")
.dataField(["children"])
.dataLabel(["name"])
.defaultText("- Select Service -");
dataFilter.onChange = function(text) {
pullData();
};
function errorMsg() {
return "No services present";
}
var init = function () {
var treeDiv = document.getElementById("infovis");
var logDiv = document.getElementById("log");
var spaceTree = new wso2vis.s.chart.raphael.DependencyTree(treeDiv,"Dependency Tree","Used to show data in tree structures");
spaceTree.dataField(["children"])
.dataLabel(["name"])
.width(500)
.height(300)
.nodelength(80)
.nodeheight(15)
.sx(50)
.sy(800);
// var spaceTree = new wso2vis.s.chart.infovis.SpaceTree(logDiv,"infovis","Dependency Tree","Impact Analysis of Services");
// spaceTree.dataField(["children"])
// .dataLabel(["name"])
// .width(300)
// .height(300)
// .msgDiv("error");
spaceTree.messageInterceptFunction = errorMsg;
spaceTree.load();
//spaceTree.onTooltip = barTooltip;
//spaceTree.onClick = barClick;
dataProvider.addDataReceiver(dataFilter);
dataFilter.addDataReceiver(spaceTree);
var prefs = new gadgets.Prefs();
if (prefs.getBool("selectedFlag")) {
dataFilter.filterArray(prefs.getArray("selection"));
}
dataProvider.initialize();
dataFilter.load();
gadgets.window.adjustHeight(300);
setTimeout("gadgets.window.adjustHeight(300)",100);
}
gadgets.util.registerOnLoadHandler(init);
</script>
]]>
</Content>
<Content type="html" view="canvas">
<![CDATA[
<script type="text/javascript" src="js/wso2vis.js"></script>
<!--<script type="text/javascript" src="js/jit.js"></script>-->
<style>
div#qTip {
padding: 3px;
border: 1px solid #666;
border-right-width: 2px;
border-bottom-width: 2px;
display: none;
background: #999;
color: #FFF;
font: bold 10px Verdana, Arial, sans-serif;
text-align: left;
position: absolute;
z-index: 1000;
}
</style>
<link rel="stylesheet" type="text/css" href="css/gadgets.css"/>
<link rel="stylesheet" type="text/css" href="css/help.css"/>
<div id="filter" style="margin:0 auto; text-align:center;width:300px;">Available Services : </div>
<div id="infovis" style="margin:0 auto; text-align:center;height:300px;width:1000px"></div>
<div id="log"></div>
<script type="text/javascript">
var dataProvider = new wso2vis.p.ProviderGETJSON("carbon/gauges/gadgets/flash/flashdata-ajaxprocessor.jsp?funcName=getImpactAnalysis");
// var dataFilter = new wso2vis.f.BasicFilter(["services", "service"], ["@name"]);
function pullData() {
dataProvider.pullData();
var prefs = new gadgets.Prefs();
var filterSelection = dataFilter.filterArray();
prefs.set("selection", filterSelection);
prefs.set("selectedFlag", true);
gadgets.window.adjustHeight(300);
setTimeout("gadgets.window.adjustHeight(300)",100);
}
var dataFilter = new wso2vis.f.form.Select()
.canvas("filter")
.dataField(["children"])
.dataLabel(["name"])
.defaultText("- Select Service -");
dataFilter.onChange = function(text) {
pullData();
};
var init = function () {
var treeDiv = document.getElementById("infovis");
var logDiv = document.getElementById("log");
var spaceTree = new wso2vis.s.chart.raphael.DependencyTree(treeDiv,"Dependency Tree","Used to show data in tree structures");
spaceTree.dataField(["children"])
.dataLabel(["name"])
.width(1000)
.height(300)
.nodelength(80)
.nodeheight(15)
.sx(50)
.sy(800);
// var spaceTree = new wso2vis.s.chart.infovis.SpaceTree(logDiv,"infovis","Dependency Tree","Impact Analysis of Services");
// spaceTree.dataField(["children"])
// .dataLabel(["name"])
// .width(300)
// .height(300)
// .msgDiv("error");
spaceTree.load();
//spaceTree.onTooltip = barTooltip;
//spaceTree.onClick = barClick;
dataProvider.addDataReceiver(dataFilter);
dataFilter.addDataReceiver(spaceTree);
var prefs = new gadgets.Prefs();
if (prefs.getBool("selectedFlag")) {
dataFilter.filterArray(prefs.getArray("selection"));
}
dataProvider.initialize();
dataFilter.load();
}
gadgets.util.registerOnLoadHandler(init);
</script>
]]>
</Content>
</Module>

@ -0,0 +1,23 @@
var countGraph;
function isNumeric(sText){
var validChars = "0123456789.";
var isNumber = true;
var character;
for (var i = 0; i < sText.length && isNumber == true; i++) {
character = sText.charAt(i);
if (validChars.indexOf(character) == -1) {
isNumber = false;
}
}
return isNumber;
}
function initCountGraph(memoryXScale) {
if (memoryXScale < 1 || !isNumeric(memoryXScale)) {
return;
}
countGraph = new carbonGraph(memoryXScale);
}

@ -0,0 +1,31 @@
// Memory
var endpointInvocationGraph;
function initStats(memoryXScale) {
if (memoryXScale != null) {
initReqCountGraphs(memoryXScale);
} else {
initReqCountGraphs(30);
}
}
function isNumeric(sText){
var validChars = "0123456789.";
var isNumber = true;
var character;
for (var i = 0; i < sText.length && isNumber == true; i++) {
character = sText.charAt(i);
if (validChars.indexOf(character) == -1) {
isNumber = false;
}
}
return isNumber;
}
function initReqCountGraphs(memoryXScale) {
if (memoryXScale < 1 || !isNumeric(memoryXScale)) {
return;
}
endpointInvocationGraph = new carbonGraph(memoryXScale);
}

@ -0,0 +1,785 @@
// Copyright 2006 Google Inc.
//
// Licensed 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.
// Known Issues:
//
// * Patterns are not implemented.
// * Radial gradient are not implemented. The VML version of these look very
// different from the canvas one.
// * Clipping paths are not implemented.
// * Coordsize. The width and height attribute have higher priority than the
// width and height style values which isn't correct.
// * Painting mode isn't implemented.
// * Canvas width/height should is using content-box by default. IE in
// Quirks mode will draw the canvas using border-box. Either change your
// doctype to HTML5
// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
// or use Box Sizing Behavior from WebFX
// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
// * Optimize. There is always room for speed improvements.
// only add this code if we do not already have a canvas implementation
if (!window.CanvasRenderingContext2D) {
(function () {
// alias some functions to make (compiled) code shorter
var m = Math;
var mr = m.round;
var ms = m.sin;
var mc = m.cos;
// this is used for sub pixel precision
var Z = 10;
var Z2 = Z / 2;
var G_vmlCanvasManager_ = {
init: function (opt_doc) {
var doc = opt_doc || document;
if (/MSIE/.test(navigator.userAgent) && !window.opera) {
var self = this;
doc.attachEvent("onreadystatechange", function () {
self.init_(doc);
});
}
},
init_: function (doc) {
if (doc.readyState == "complete") {
// create xmlns
if (!doc.namespaces["g_vml_"]) {
doc.namespaces.add("g_vml_", "urn:schemas-microsoft-com:vml");
}
// setup default css
var ss = doc.createStyleSheet();
ss.cssText = "canvas{display:inline-block;overflow:hidden;" +
// default size is 300x150 in Gecko and Opera
"text-align:left;width:300px;height:150px}" +
"g_vml_\\:*{behavior:url(#default#VML)}";
// find all canvas elements
var els = doc.getElementsByTagName("canvas");
for (var i = 0; i < els.length; i++) {
if (!els[i].getContext) {
this.initElement(els[i]);
}
}
}
},
fixElement_: function (el) {
// in IE before version 5.5 we would need to add HTML: to the tag name
// but we do not care about IE before version 6
var outerHTML = el.outerHTML;
var newEl = el.ownerDocument.createElement(outerHTML);
// if the tag is still open IE has created the children as siblings and
// it has also created a tag with the name "/FOO"
if (outerHTML.slice(-2) != "/>") {
var tagName = "/" + el.tagName;
var ns;
// remove content
while ((ns = el.nextSibling) && ns.tagName != tagName) {
ns.removeNode();
}
// remove the incorrect closing tag
if (ns) {
ns.removeNode();
}
}
el.parentNode.replaceChild(newEl, el);
return newEl;
},
/**
* Public initializes a canvas element so that it can be used as canvas
* element from now on. This is called automatically before the page is
* loaded but if you are creating elements using createElement you need to
* make sure this is called on the element.
* @param {HTMLElement} el The canvas element to initialize.
* @return {HTMLElement} the element that was created.
*/
initElement: function (el) {
el = this.fixElement_(el);
el.getContext = function () {
if (this.context_) {
return this.context_;
}
return this.context_ = new CanvasRenderingContext2D_(this);
};
// do not use inline function because that will leak memory
el.attachEvent('onpropertychange', onPropertyChange);
el.attachEvent('onresize', onResize);
var attrs = el.attributes;
if (attrs.width && attrs.width.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setWidth_(attrs.width.nodeValue);
el.style.width = attrs.width.nodeValue + "px";
} else {
el.width = el.clientWidth;
}
if (attrs.height && attrs.height.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setHeight_(attrs.height.nodeValue);
el.style.height = attrs.height.nodeValue + "px";
} else {
el.height = el.clientHeight;
}
//el.getContext().setCoordsize_()
return el;
}
};
function onPropertyChange(e) {
var el = e.srcElement;
switch (e.propertyName) {
case 'width':
el.style.width = el.attributes.width.nodeValue + "px";
el.getContext().clearRect();
break;
case 'height':
el.style.height = el.attributes.height.nodeValue + "px";
el.getContext().clearRect();
break;
}
}
function onResize(e) {
var el = e.srcElement;
if (el.firstChild) {
el.firstChild.style.width = el.clientWidth + 'px';
el.firstChild.style.height = el.clientHeight + 'px';
}
}
G_vmlCanvasManager_.init();
// precompute "00" to "FF"
var dec2hex = [];
for (var i = 0; i < 16; i++) {
for (var j = 0; j < 16; j++) {
dec2hex[i * 16 + j] = i.toString(16) + j.toString(16);
}
}
function createMatrixIdentity() {
return [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
];
}
function matrixMultiply(m1, m2) {
var result = createMatrixIdentity();
for (var x = 0; x < 3; x++) {
for (var y = 0; y < 3; y++) {
var sum = 0;
for (var z = 0; z < 3; z++) {
sum += m1[x][z] * m2[z][y];
}
result[x][y] = sum;
}
}
return result;
}
function copyState(o1, o2) {
o2.fillStyle = o1.fillStyle;
o2.lineCap = o1.lineCap;
o2.lineJoin = o1.lineJoin;
o2.lineWidth = o1.lineWidth;
o2.miterLimit = o1.miterLimit;
o2.shadowBlur = o1.shadowBlur;
o2.shadowColor = o1.shadowColor;
o2.shadowOffsetX = o1.shadowOffsetX;
o2.shadowOffsetY = o1.shadowOffsetY;
o2.strokeStyle = o1.strokeStyle;
o2.arcScaleX_ = o1.arcScaleX_;
o2.arcScaleY_ = o1.arcScaleY_;
}
function processStyle(styleString) {
var str, alpha = 1;
styleString = String(styleString);
if (styleString.substring(0, 3) == "rgb") {
var start = styleString.indexOf("(", 3);
var end = styleString.indexOf(")", start + 1);
var guts = styleString.substring(start + 1, end).split(",");
str = "#";
for (var i = 0; i < 3; i++) {
str += dec2hex[Number(guts[i])];
}
if ((guts.length == 4) && (styleString.substr(3, 1) == "a")) {
alpha = guts[3];
}
} else {
str = styleString;
}
return [str, alpha];
}
function processLineCap(lineCap) {
switch (lineCap) {
case "butt":
return "flat";
case "round":
return "round";
case "square":
default:
return "square";
}
}
/**
* This class implements CanvasRenderingContext2D interface as described by
* the WHATWG.
* @param {HTMLElement} surfaceElement The element that the 2D context should
* be associated with
*/
function CanvasRenderingContext2D_(surfaceElement) {
this.m_ = createMatrixIdentity();
this.mStack_ = [];
this.aStack_ = [];
this.currentPath_ = [];
// Canvas context properties
this.strokeStyle = "#000";
this.fillStyle = "#000";
this.lineWidth = 1;
this.lineJoin = "miter";
this.lineCap = "butt";
this.miterLimit = Z * 1;
this.globalAlpha = 1;
this.canvas = surfaceElement;
var el = surfaceElement.ownerDocument.createElement('div');
el.style.width = surfaceElement.clientWidth + 'px';
el.style.height = surfaceElement.clientHeight + 'px';
el.style.overflow = 'hidden';
el.style.position = 'absolute';
surfaceElement.appendChild(el);
this.element_ = el;
this.arcScaleX_ = 1;
this.arcScaleY_ = 1;
}
var contextPrototype = CanvasRenderingContext2D_.prototype;
contextPrototype.clearRect = function() {
this.element_.innerHTML = "";
this.currentPath_ = [];
};
contextPrototype.beginPath = function() {
// TODO: Branch current matrix so that save/restore has no effect
// as per safari docs.
this.currentPath_ = [];
};
contextPrototype.moveTo = function(aX, aY) {
this.currentPath_.push({type: "moveTo", x: aX, y: aY});
this.currentX_ = aX;
this.currentY_ = aY;
};
contextPrototype.lineTo = function(aX, aY) {
this.currentPath_.push({type: "lineTo", x: aX, y: aY});
this.currentX_ = aX;
this.currentY_ = aY;
};
contextPrototype.bezierCurveTo = function(aCP1x, aCP1y,
aCP2x, aCP2y,
aX, aY) {
this.currentPath_.push({type: "bezierCurveTo",
cp1x: aCP1x,
cp1y: aCP1y,
cp2x: aCP2x,
cp2y: aCP2y,
x: aX,
y: aY});
this.currentX_ = aX;
this.currentY_ = aY;
};
contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) {
// the following is lifted almost directly from
// http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes
var cp1x = this.currentX_ + 2.0 / 3.0 * (aCPx - this.currentX_);
var cp1y = this.currentY_ + 2.0 / 3.0 * (aCPy - this.currentY_);
var cp2x = cp1x + (aX - this.currentX_) / 3.0;
var cp2y = cp1y + (aY - this.currentY_) / 3.0;
this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, aX, aY);
};
contextPrototype.arc = function(aX, aY, aRadius,
aStartAngle, aEndAngle, aClockwise) {
aRadius *= Z;
var arcType = aClockwise ? "at" : "wa";
var xStart = aX + (mc(aStartAngle) * aRadius) - Z2;
var yStart = aY + (ms(aStartAngle) * aRadius) - Z2;
var xEnd = aX + (mc(aEndAngle) * aRadius) - Z2;
var yEnd = aY + (ms(aEndAngle) * aRadius) - Z2;
// IE won't render arches drawn counter clockwise if xStart == xEnd.
if (xStart == xEnd && !aClockwise) {
xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something
// that can be represented in binary
}
this.currentPath_.push({type: arcType,
x: aX,
y: aY,
radius: aRadius,
xStart: xStart,
yStart: yStart,
xEnd: xEnd,
yEnd: yEnd});
};
contextPrototype.rect = function(aX, aY, aWidth, aHeight) {
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
};
contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) {
// Will destroy any existing path (same as FF behaviour)
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.stroke();
};
contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) {
// Will destroy any existing path (same as FF behaviour)
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.fill();
};
contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) {
var gradient = new CanvasGradient_("gradient");
return gradient;
};
contextPrototype.createRadialGradient = function(aX0, aY0,
aR0, aX1,
aY1, aR1) {
var gradient = new CanvasGradient_("gradientradial");
gradient.radius1_ = aR0;
gradient.radius2_ = aR1;
gradient.focus_.x = aX0;
gradient.focus_.y = aY0;
return gradient;
};
contextPrototype.drawImage = function (image, var_args) {
var dx, dy, dw, dh, sx, sy, sw, sh;
// to find the original width we overide the width and height
var oldRuntimeWidth = image.runtimeStyle.width;
var oldRuntimeHeight = image.runtimeStyle.height;
image.runtimeStyle.width = 'auto';
image.runtimeStyle.height = 'auto';
// get the original size
var w = image.width;
var h = image.height;
// and remove overides
image.runtimeStyle.width = oldRuntimeWidth;
image.runtimeStyle.height = oldRuntimeHeight;
if (arguments.length == 3) {
dx = arguments[1];
dy = arguments[2];
sx = sy = 0;
sw = dw = w;
sh = dh = h;
} else if (arguments.length == 5) {
dx = arguments[1];
dy = arguments[2];
dw = arguments[3];
dh = arguments[4];
sx = sy = 0;
sw = w;
sh = h;
} else if (arguments.length == 9) {
sx = arguments[1];
sy = arguments[2];
sw = arguments[3];
sh = arguments[4];
dx = arguments[5];
dy = arguments[6];
dw = arguments[7];
dh = arguments[8];
} else {
throw "Invalid number of arguments";
}
var d = this.getCoords_(dx, dy);
var w2 = sw / 2;
var h2 = sh / 2;
var vmlStr = [];
var W = 10;
var H = 10;
// For some reason that I've now forgotten, using divs didn't work
vmlStr.push(' <g_vml_:group',
' coordsize="', Z * W, ',', Z * H, '"',
' coordorigin="0,0"' ,
' style="width:', W, ';height:', H, ';position:absolute;');
// If filters are necessary (rotation exists), create them
// filters are bog-slow, so only create them if abbsolutely necessary
// The following check doesn't account for skews (which don't exist
// in the canvas spec (yet) anyway.
if (this.m_[0][0] != 1 || this.m_[0][1]) {
var filter = [];
// Note the 12/21 reversal
filter.push("M11='", this.m_[0][0], "',",
"M12='", this.m_[1][0], "',",
"M21='", this.m_[0][1], "',",
"M22='", this.m_[1][1], "',",
"Dx='", mr(d.x / Z), "',",
"Dy='", mr(d.y / Z), "'");
// Bounding box calculation (need to minimize displayed area so that
// filters don't waste time on unused pixels.
var max = d;
var c2 = this.getCoords_(dx + dw, dy);
var c3 = this.getCoords_(dx, dy + dh);
var c4 = this.getCoords_(dx + dw, dy + dh);
max.x = Math.max(max.x, c2.x, c3.x, c4.x);
max.y = Math.max(max.y, c2.y, c3.y, c4.y);
vmlStr.push("padding:0 ", mr(max.x / Z), "px ", mr(max.y / Z),
"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",
filter.join(""), ", sizingmethod='clip');");
} else {
vmlStr.push("top:", mr(d.y / Z), "px;left:", mr(d.x / Z), "px;");
}
vmlStr.push(' ">' ,
'<g_vml_:image src="', image.src, '"',
' style="width:', Z * dw, ';',
' height:', Z * dh, ';"',
' cropleft="', sx / w, '"',
' croptop="', sy / h, '"',
' cropright="', (w - sx - sw) / w, '"',
' cropbottom="', (h - sy - sh) / h, '"',
' />',
'</g_vml_:group>');
this.element_.insertAdjacentHTML("BeforeEnd",
vmlStr.join(""));
};
contextPrototype.stroke = function(aFill) {
var lineStr = [];
var lineOpen = false;
var a = processStyle(aFill ? this.fillStyle : this.strokeStyle);
var color = a[0];
var opacity = a[1] * this.globalAlpha;
var W = 10;
var H = 10;
lineStr.push('<g_vml_:shape',
' fillcolor="', color, '"',
' filled="', Boolean(aFill), '"',
' style="position:absolute;width:', W, ';height:', H, ';"',
' coordorigin="0 0" coordsize="', Z * W, ' ', Z * H, '"',
' stroked="', !aFill, '"',
' strokeweight="', this.lineWidth, '"',
' strokecolor="', color, '"',
' path="');
var newSeq = false;
var min = {x: null, y: null};
var max = {x: null, y: null};
for (var i = 0; i < this.currentPath_.length; i++) {
var p = this.currentPath_[i];
if (p.type == "moveTo") {
lineStr.push(" m ");
var c = this.getCoords_(p.x, p.y);
lineStr.push(mr(c.x), ",", mr(c.y));
} else if (p.type == "lineTo") {
lineStr.push(" l ");
var c = this.getCoords_(p.x, p.y);
lineStr.push(mr(c.x), ",", mr(c.y));
} else if (p.type == "close") {
lineStr.push(" x ");
} else if (p.type == "bezierCurveTo") {
lineStr.push(" c ");
var c = this.getCoords_(p.x, p.y);
var c1 = this.getCoords_(p.cp1x, p.cp1y);
var c2 = this.getCoords_(p.cp2x, p.cp2y);
lineStr.push(mr(c1.x), ",", mr(c1.y), ",",
mr(c2.x), ",", mr(c2.y), ",",
mr(c.x), ",", mr(c.y));
} else if (p.type == "at" || p.type == "wa") {
lineStr.push(" ", p.type, " ");
var c = this.getCoords_(p.x, p.y);
var cStart = this.getCoords_(p.xStart, p.yStart);
var cEnd = this.getCoords_(p.xEnd, p.yEnd);
lineStr.push(mr(c.x - this.arcScaleX_ * p.radius), ",",
mr(c.y - this.arcScaleY_ * p.radius), " ",
mr(c.x + this.arcScaleX_ * p.radius), ",",
mr(c.y + this.arcScaleY_ * p.radius), " ",
mr(cStart.x), ",", mr(cStart.y), " ",
mr(cEnd.x), ",", mr(cEnd.y));
}
// TODO: Following is broken for curves due to
// move to proper paths.
// Figure out dimensions so we can do gradient fills
// properly
if(c) {
if (min.x == null || c.x < min.x) {
min.x = c.x;
}
if (max.x == null || c.x > max.x) {
max.x = c.x;
}
if (min.y == null || c.y < min.y) {
min.y = c.y;
}
if (max.y == null || c.y > max.y) {
max.y = c.y;
}
}
}
lineStr.push(' ">');
if (typeof this.fillStyle == "object") {
var focus = {x: "50%", y: "50%"};
var width = (max.x - min.x);
var height = (max.y - min.y);
var dimension = (width > height) ? width : height;
focus.x = mr((this.fillStyle.focus_.x / width) * 100 + 50) + "%";
focus.y = mr((this.fillStyle.focus_.y / height) * 100 + 50) + "%";
var colors = [];
// inside radius (%)
if (this.fillStyle.type_ == "gradientradial") {
var inside = (this.fillStyle.radius1_ / dimension * 100);
// percentage that outside radius exceeds inside radius
var expansion = (this.fillStyle.radius2_ / dimension * 100) - inside;
} else {
var inside = 0;
var expansion = 100;
}
var insidecolor = {offset: null, color: null};
var outsidecolor = {offset: null, color: null};
// We need to sort 'colors' by percentage, from 0 > 100 otherwise ie
// won't interpret it correctly
this.fillStyle.colors_.sort(function (cs1, cs2) {
return cs1.offset - cs2.offset;
});
for (var i = 0; i < this.fillStyle.colors_.length; i++) {
var fs = this.fillStyle.colors_[i];
colors.push( (fs.offset * expansion) + inside, "% ", fs.color, ",");
if (fs.offset > insidecolor.offset || insidecolor.offset == null) {
insidecolor.offset = fs.offset;
insidecolor.color = fs.color;
}
if (fs.offset < outsidecolor.offset || outsidecolor.offset == null) {
outsidecolor.offset = fs.offset;
outsidecolor.color = fs.color;
}
}
colors.pop();
lineStr.push('<g_vml_:fill',
' color="', outsidecolor.color, '"',
' color2="', insidecolor.color, '"',
' type="', this.fillStyle.type_, '"',
' focusposition="', focus.x, ', ', focus.y, '"',
' colors="', colors.join(""), '"',
' opacity="', opacity, '" />');
} else if (aFill) {
lineStr.push('<g_vml_:fill color="', color, '" opacity="', opacity, '" />');
} else {
lineStr.push(
'<g_vml_:stroke',
' opacity="', opacity,'"',
' joinstyle="', this.lineJoin, '"',
' miterlimit="', this.miterLimit, '"',
' endcap="', processLineCap(this.lineCap) ,'"',
' weight="', this.lineWidth, 'px"',
' color="', color,'" />'
);
}
lineStr.push("</g_vml_:shape>");
this.element_.insertAdjacentHTML("beforeEnd", lineStr.join(""));
//this.currentPath_ = [];
};
contextPrototype.fill = function() {
this.stroke(true);
};
contextPrototype.closePath = function() {
this.currentPath_.push({type: "close"});
};
/**
* @private
*/
contextPrototype.getCoords_ = function(aX, aY) {
return {
x: Z * (aX * this.m_[0][0] + aY * this.m_[1][0] + this.m_[2][0]) - Z2,
y: Z * (aX * this.m_[0][1] + aY * this.m_[1][1] + this.m_[2][1]) - Z2
}
};
contextPrototype.save = function() {
var o = {};
copyState(this, o);
this.aStack_.push(o);
this.mStack_.push(this.m_);
this.m_ = matrixMultiply(createMatrixIdentity(), this.m_);
};
contextPrototype.restore = function() {
copyState(this.aStack_.pop(), this);
this.m_ = this.mStack_.pop();
};
contextPrototype.translate = function(aX, aY) {
var m1 = [
[1, 0, 0],
[0, 1, 0],
[aX, aY, 1]
];
this.m_ = matrixMultiply(m1, this.m_);
};
contextPrototype.rotate = function(aRot) {
var c = mc(aRot);
var s = ms(aRot);
var m1 = [
[c, s, 0],
[-s, c, 0],
[0, 0, 1]
];
this.m_ = matrixMultiply(m1, this.m_);
};
contextPrototype.scale = function(aX, aY) {
this.arcScaleX_ *= aX;
this.arcScaleY_ *= aY;
var m1 = [
[aX, 0, 0],
[0, aY, 0],
[0, 0, 1]
];
this.m_ = matrixMultiply(m1, this.m_);
};
/******** STUBS ********/
contextPrototype.clip = function() {
// TODO: Implement
};
contextPrototype.arcTo = function() {
// TODO: Implement
};
contextPrototype.createPattern = function() {
return new CanvasPattern_;
};
// Gradient / Pattern Stubs
function CanvasGradient_(aType) {
this.type_ = aType;
this.radius1_ = 0;
this.radius2_ = 0;
this.colors_ = [];
this.focus_ = {x: 0, y: 0};
}
CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) {
aColor = processStyle(aColor);
this.colors_.push({offset: 1-aOffset, color: aColor});
};
function CanvasPattern_() {}
// set up externs
G_vmlCanvasManager = G_vmlCanvasManager_;
CanvasRenderingContext2D = CanvasRenderingContext2D_;
CanvasGradient = CanvasGradient_;
CanvasPattern = CanvasPattern_;
})();
} // if

@ -0,0 +1,44 @@
/*This js mainly concern with the data structures related to graphs*/
function carbonGraph(xscale) {
this.array = new Array();
for (var i = 0; i < xscale; i++) {
this.array[i] = [i, 0.0];
}
this.xscale = xscale;
}
function getData() {
return this.array;
}
function addData(newValue) {
//shift to left
for (var i = 0; i < this.xscale - 1; i++) {
this.array[i] = [i,this.array[i + 1][1]]; // (x,y)
}
//add the value to the last postion
this.array[this.xscale - 1] = [this.xscale - 1,newValue];
}
function graphTickGenerator() {
var tickArray = [];
var startTick = 10;
var i = startTick - 1;
var weight = this.xscale / 10;
do {
var t = (startTick - i) * weight - 1;
var v = i * weight;
if (v == 0) {
v = "0";
}
tickArray.push([t, v]);
i--;
} while (i > -1);
return tickArray;
}
carbonGraph.prototype.get = getData;
carbonGraph.prototype.add = addData;
carbonGraph.prototype.tick = graphTickGenerator;

@ -0,0 +1,43 @@
function clientSideInclude(id, url) {
var req = false;
// For Safari, Firefox, and other non-MS browsers
if (window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch (e) {
req = false;
}
} else if (window.ActiveXObject) {
// For Internet Explorer on Windows
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
req = false;
}
}
}
var element = document.getElementById(id);
if (!element) {
alert("Bad id " + id +
"passed to clientSideInclude." +
"You need a div or span element " +
"with this id in your page.");
return;
}
if (req) {
// Synchronous request, wait till we have it all
req.open('GET', url, false);
req.send(null);
element.innerHTML = req.responseText;
} else {
element.innerHTML =
"Sorry, your browser does not support " +
"XMLHTTPRequest objects. This page requires " +
"Internet Explorer 5 or better for Windows, " +
"or Firefox for any system, or Safari. Other " +
"compatible browsers may also exist.";
}
}

@ -0,0 +1,601 @@
/*
* jQuery Form Plugin
* version: 2.12 (06/07/2008)
* @requires jQuery v1.2.2 or later
*
* Examples and documentation at: http://malsup.com/jquery/form/
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Revision: $Id$
*/
(function($) {
/*
Usage Note:
-----------
Do not use both ajaxSubmit and ajaxForm on the same form. These
functions are intended to be exclusive. Use ajaxSubmit if you want
to bind your own submit handler to the form. For example,
$(document).ready(function() {
$('#myForm').bind('submit', function() {
$(this).ajaxSubmit({
target: '#output'
});
return false; // <-- important!
});
});
Use ajaxForm when you want the plugin to manage all the event binding
for you. For example,
$(document).ready(function() {
$('#myForm').ajaxForm({
target: '#output'
});
});
When using ajaxForm, the ajaxSubmit function will be invoked for you
at the appropriate time.
*/
/**
* ajaxSubmit() provides a mechanism for immediately submitting
* an HTML form using AJAX.
*/
$.fn.ajaxSubmit = function(options) {
// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
if (!this.length) {
log('ajaxSubmit: skipping submit process - no element selected');
return this;
}
if (typeof options == 'function')
options = { success: options };
options = $.extend({
url: this.attr('action') || window.location.toString(),
type: this.attr('method') || 'GET'
}, options || {});
// hook for manipulating the form data before it is extracted;
// convenient for use with rich editors like tinyMCE or FCKEditor
var veto = {};
this.trigger('form-pre-serialize', [this, options, veto]);
if (veto.veto) {
log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
return this;
}
var a = this.formToArray(options.semantic);
if (options.data) {
options.extraData = options.data;
for (var n in options.data)
a.push( { name: n, value: options.data[n] } );
}
// give pre-submit callback an opportunity to abort the submit
if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
log('ajaxSubmit: submit aborted via beforeSubmit callback');
return this;
}
// fire vetoable 'validate' event
this.trigger('form-submit-validate', [a, this, options, veto]);
if (veto.veto) {
log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
return this;
}
var q = $.param(a);
if (options.type.toUpperCase() == 'GET') {
options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
options.data = null; // data is null for 'get'
}
else
options.data = q; // data is the query string for 'post'
var $form = this, callbacks = [];
if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
if (options.clearForm) callbacks.push(function() { $form.clearForm(); });
// perform a load on the target only if dataType is not provided
if (!options.dataType && options.target) {
var oldSuccess = options.success || function(){};
callbacks.push(function(data) {
$(options.target).html(data).each(oldSuccess, arguments);
});
}
else if (options.success)
callbacks.push(options.success);
options.success = function(data, status) {
for (var i=0, max=callbacks.length; i < max; i++)
callbacks[i](data, status, $form);
};
// are there files to upload?
var files = $('input:file', this).fieldValue();
var found = false;
for (var j=0; j < files.length; j++)
if (files[j])
found = true;
// options.iframe allows user to force iframe mode
if (options.iframe || found) {
// hack to fix Safari hang (thanks to Tim Molendijk for this)
// see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
if ($.browser.safari && options.closeKeepAlive)
$.get(options.closeKeepAlive, fileUpload);
else
fileUpload();
}
else
$.ajax(options);
// fire 'notify' event
this.trigger('form-submit-notify', [this, options]);
return this;
// private function for handling file uploads (hat tip to YAHOO!)
function fileUpload() {
var form = $form[0];
if ($(':input[@name=submit]', form).length) {
alert('Error: Form elements must not be named "submit".');
return;
}
var opts = $.extend({}, $.ajaxSettings, options);
var id = 'jqFormIO' + (new Date().getTime());
var $io = $('<iframe id="' + id + '" name="' + id + '" />');
var io = $io[0];
if ($.browser.msie || $.browser.opera)
io.src = 'javascript:false;document.write("");';
$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
var xhr = { // mock object
responseText: null,
responseXML: null,
status: 0,
statusText: 'n/a',
getAllResponseHeaders: function() {},
getResponseHeader: function() {},
setRequestHeader: function() {}
};
var g = opts.global;
// trigger ajax global events so that activity/block indicators work like normal
if (g && ! $.active++) $.event.trigger("ajaxStart");
if (g) $.event.trigger("ajaxSend", [xhr, opts]);
var cbInvoked = 0;
var timedOut = 0;
// add submitting element to data if we know it
var sub = form.clk;
if (sub) {
var n = sub.name;
if (n && !sub.disabled) {
options.extraData = options.extraData || {};
options.extraData[n] = sub.value;
if (sub.type == "image") {
options.extraData[name+'.x'] = form.clk_x;
options.extraData[name+'.y'] = form.clk_y;
}
}
}
// take a breath so that pending repaints get some cpu time before the upload starts
setTimeout(function() {
// make sure form attrs are set
var t = $form.attr('target'), a = $form.attr('action');
$form.attr({
target: id,
encoding: 'multipart/form-data',
enctype: 'multipart/form-data',
method: 'POST',
action: opts.url
});
// support timout
if (opts.timeout)
setTimeout(function() { timedOut = true; cb(); }, opts.timeout);
// add "extra" data to form if provided in options
var extraInputs = [];
try {
if (options.extraData)
for (var n in options.extraData)
extraInputs.push(
$('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
.appendTo(form)[0]);
// add iframe to doc and submit the form
$io.appendTo('body');
io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
form.submit();
}
finally {
// reset attrs and remove "extra" input elements
$form.attr('action', a);
t ? $form.attr('target', t) : $form.removeAttr('target');
$(extraInputs).remove();
}
}, 10);
function cb() {
if (cbInvoked++) return;
io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
var operaHack = 0;
var ok = true;
try {
if (timedOut) throw 'timeout';
// extract the server response from the iframe
var data, doc;
doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
if (doc.body == null && !operaHack && $.browser.opera) {
// In Opera 9.2.x the iframe DOM is not always traversable when
// the onload callback fires so we give Opera 100ms to right itself
operaHack = 1;
cbInvoked--;
setTimeout(cb, 100);
return;
}
xhr.responseText = doc.body ? doc.body.innerHTML : null;
xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
xhr.getResponseHeader = function(header){
var headers = {'content-type': opts.dataType};
return headers[header];
};
if (opts.dataType == 'json' || opts.dataType == 'script') {
var ta = doc.getElementsByTagName('textarea')[0];
xhr.responseText = ta ? ta.value : xhr.responseText;
}
else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
xhr.responseXML = toXml(xhr.responseText);
}
data = $.httpData(xhr, opts.dataType);
}
catch(e){
ok = false;
$.handleError(opts, xhr, 'error', e);
}
// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
if (ok) {
opts.success(data, 'success');
if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
}
if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
if (g && ! --$.active) $.event.trigger("ajaxStop");
if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');
// clean up
setTimeout(function() {
$io.remove();
xhr.responseXML = null;
}, 100);
};
function toXml(s, doc) {
if (window.ActiveXObject) {
doc = new ActiveXObject('Microsoft.XMLDOM');
doc.async = 'false';
doc.loadXML(s);
}
else
doc = (new DOMParser()).parseFromString(s, 'text/xml');
return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
};
};
};
/**
* ajaxForm() provides a mechanism for fully automating form submission.
*
* The advantages of using this method instead of ajaxSubmit() are:
*
* 1: This method will include coordinates for <input type="image" /> elements (if the element
* is used to submit the form).
* 2. This method will include the submit element's name/value data (for the element that was
* used to submit the form).
* 3. This method binds the submit() method to the form for you.
*
* The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
* passes the options argument along after properly binding events for submit elements and
* the form itself.
*/
$.fn.ajaxForm = function(options) {
return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
$(this).ajaxSubmit(options);
return false;
}).each(function() {
// store options in hash
$(":submit,input:image", this).bind('click.form-plugin',function(e) {
var $form = this.form;
$form.clk = this;
if (this.type == 'image') {
if (e.offsetX != undefined) {
$form.clk_x = e.offsetX;
$form.clk_y = e.offsetY;
} else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
var offset = $(this).offset();
$form.clk_x = e.pageX - offset.left;
$form.clk_y = e.pageY - offset.top;
} else {
$form.clk_x = e.pageX - this.offsetLeft;
$form.clk_y = e.pageY - this.offsetTop;
}
}
// clear form vars
setTimeout(function() { $form.clk = $form.clk_x = $form.clk_y = null; }, 10);
});
});
};
// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function() {
this.unbind('submit.form-plugin');
return this.each(function() {
$(":submit,input:image", this).unbind('click.form-plugin');
});
};
/**
* formToArray() gathers form element data into an array of objects that can
* be passed to any of the following ajax functions: $.get, $.post, or load.
* Each object in the array has both a 'name' and 'value' property. An example of
* an array for a simple login form might be:
*
* [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
*
* It is this array that is passed to pre-submit callback functions provided to the
* ajaxSubmit() and ajaxForm() methods.
*/
$.fn.formToArray = function(semantic) {
var a = [];
if (this.length == 0) return a;
var form = this[0];
var els = semantic ? form.getElementsByTagName('*') : form.elements;
if (!els) return a;
for(var i=0, max=els.length; i < max; i++) {
var el = els[i];
var n = el.name;
if (!n) continue;
if (semantic && form.clk && el.type == "image") {
// handle image inputs on the fly when semantic == true
if(!el.disabled && form.clk == el)
a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
continue;
}
var v = $.fieldValue(el, true);
if (v && v.constructor == Array) {
for(var j=0, jmax=v.length; j < jmax; j++)
a.push({name: n, value: v[j]});
}
else if (v !== null && typeof v != 'undefined')
a.push({name: n, value: v});
}
if (!semantic && form.clk) {
// input type=='image' are not found in elements array! handle them here
var inputs = form.getElementsByTagName("input");
for(var i=0, max=inputs.length; i < max; i++) {
var input = inputs[i];
var n = input.name;
if(n && !input.disabled && input.type == "image" && form.clk == input)
a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
}
}
return a;
};
/**
* Serializes form data into a 'submittable' string. This method will return a string
* in the format: name1=value1&amp;name2=value2
*/
$.fn.formSerialize = function(semantic) {
//hand off to jQuery.param for proper encoding
return $.param(this.formToArray(semantic));
};
/**
* Serializes all field elements in the jQuery object into a query string.
* This method will return a string in the format: name1=value1&amp;name2=value2
*/
$.fn.fieldSerialize = function(successful) {
var a = [];
this.each(function() {
var n = this.name;
if (!n) return;
var v = $.fieldValue(this, successful);
if (v && v.constructor == Array) {
for (var i=0,max=v.length; i < max; i++)
a.push({name: n, value: v[i]});
}
else if (v !== null && typeof v != 'undefined')
a.push({name: this.name, value: v});
});
//hand off to jQuery.param for proper encoding
return $.param(a);
};
/**
* Returns the value(s) of the element in the matched set. For example, consider the following form:
*
* <form><fieldset>
* <input name="A" type="text" />
* <input name="A" type="text" />
* <input name="B" type="checkbox" value="B1" />
* <input name="B" type="checkbox" value="B2"/>
* <input name="C" type="radio" value="C1" />
* <input name="C" type="radio" value="C2" />
* </fieldset></form>
*
* var v = $(':text').fieldValue();
* // if no values are entered into the text inputs
* v == ['','']
* // if values entered into the text inputs are 'foo' and 'bar'
* v == ['foo','bar']
*
* var v = $(':checkbox').fieldValue();
* // if neither checkbox is checked
* v === undefined
* // if both checkboxes are checked
* v == ['B1', 'B2']
*
* var v = $(':radio').fieldValue();
* // if neither radio is checked
* v === undefined
* // if first radio is checked
* v == ['C1']
*
* The successful argument controls whether or not the field element must be 'successful'
* (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
* The default value of the successful argument is true. If this value is false the value(s)
* for each element is returned.
*
* Note: This method *always* returns an array. If no valid value can be determined the
* array will be empty, otherwise it will contain one or more values.
*/
$.fn.fieldValue = function(successful) {
for (var val=[], i=0, max=this.length; i < max; i++) {
var el = this[i];
var v = $.fieldValue(el, successful);
if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
continue;
v.constructor == Array ? $.merge(val, v) : val.push(v);
}
return val;
};
/**
* Returns the value of the field element.
*/
$.fieldValue = function(el, successful) {
var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
if (typeof successful == 'undefined') successful = true;
if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
(t == 'checkbox' || t == 'radio') && !el.checked ||
(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
tag == 'select' && el.selectedIndex == -1))
return null;
if (tag == 'select') {
var index = el.selectedIndex;
if (index < 0) return null;
var a = [], ops = el.options;
var one = (t == 'select-one');
var max = (one ? index+1 : ops.length);
for(var i=(one ? index : 0); i < max; i++) {
var op = ops[i];
if (op.selected) {
// extra pain for IE...
var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value;
if (one) return v;
a.push(v);
}
}
return a;
}
return el.value;
};
/**
* Clears the form data. Takes the following actions on the form's input fields:
* - input text fields will have their 'value' property set to the empty string
* - select elements will have their 'selectedIndex' property set to -1
* - checkbox and radio inputs will have their 'checked' property set to false
* - inputs of type submit, button, reset, and hidden will *not* be effected
* - button elements will *not* be effected
*/
$.fn.clearForm = function() {
return this.each(function() {
$('input,select,textarea', this).clearFields();
});
};
/**
* Clears the selected form elements.
*/
$.fn.clearFields = $.fn.clearInputs = function() {
return this.each(function() {
var t = this.type, tag = this.tagName.toLowerCase();
if (t == 'text' || t == 'password' || tag == 'textarea')
this.value = '';
else if (t == 'checkbox' || t == 'radio')
this.checked = false;
else if (tag == 'select')
this.selectedIndex = -1;
});
};
/**
* Resets the form data. Causes all form elements to be reset to their original value.
*/
$.fn.resetForm = function() {
return this.each(function() {
// guard against an input with the name of 'reset'
// note that IE reports the reset function as an 'object'
if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
this.reset();
});
};
/**
* Enables or disables any matching elements.
*/
$.fn.enable = function(b) {
if (b == undefined) b = true;
return this.each(function() {
this.disabled = !b
});
};
/**
* Checks/unchecks any matching checkboxes or radio buttons and
* selects/deselects and matching option elements.
*/
$.fn.select = function(select) {
if (select == undefined) select = true;
return this.each(function() {
var t = this.type;
if (t == 'checkbox' || t == 'radio')
this.checked = select;
else if (this.tagName.toLowerCase() == 'option') {
var $sel = $(this).parent('select');
if (select && $sel[0] && $sel[0].type == 'select-one') {
// deselect all other options
$sel.find('option').select(false);
}
this.selected = select;
}
});
};
// helper fn for console logging
// set $.fn.ajaxSubmit.debug to true to enable debug logging
function log() {
if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
};
})(jQuery);

@ -0,0 +1,31 @@
// Memory
var lastMinReqCountServiceGraph;
function initStats(memoryXScale) {
if (memoryXScale != null) {
initReqCountGraphs(memoryXScale);
} else {
initReqCountGraphs(30);
}
}
function isNumeric(sText){
var validChars = "0123456789.";
var isNumber = true;
var character;
for (var i = 0; i < sText.length && isNumber == true; i++) {
character = sText.charAt(i);
if (validChars.indexOf(character) == -1) {
isNumber = false;
}
}
return isNumber;
}
function initReqCountGraphs(memoryXScale) {
if (memoryXScale < 1 || !isNumeric(memoryXScale)) {
return;
}
lastMinReqCountServiceGraph = new carbonGraph(memoryXScale);
}

@ -0,0 +1,31 @@
// Memory
var minMaxAverageRespTimesGraphPerSvc;
function initStats(memoryXScale) {
if (memoryXScale != null) {
initReqCountGraphs(memoryXScale);
} else {
initReqCountGraphs(30);
}
}
function isNumeric(sText){
var validChars = "0123456789.";
var isNumber = true;
var character;
for (var i = 0; i < sText.length && isNumber == true; i++) {
character = sText.charAt(i);
if (validChars.indexOf(character) == -1) {
isNumber = false;
}
}
return isNumber;
}
function initReqCountGraphs(memoryXScale) {
if (memoryXScale < 1 || !isNumeric(memoryXScale)) {
return;
}
minMaxAverageRespTimesGraphPerSvc = new minMaxAvgGraph(memoryXScale);
}

@ -0,0 +1,31 @@
// Memory
var minMaxAverageRespTimesGraph;
function initStats(memoryXScale) {
if (memoryXScale != null) {
initReqCountGraphs(memoryXScale);
} else {
initReqCountGraphs(30);
}
}
function isNumeric(sText){
var validChars = "0123456789.";
var isNumber = true;
var character;
for (var i = 0; i < sText.length && isNumber == true; i++) {
character = sText.charAt(i);
if (validChars.indexOf(character) == -1) {
isNumber = false;
}
}
return isNumber;
}
function initReqCountGraphs(memoryXScale) {
if (memoryXScale < 1 || !isNumeric(memoryXScale)) {
return;
}
minMaxAverageRespTimesGraph = new minMaxAvgGraph(memoryXScale);
}

@ -0,0 +1,100 @@
/*This js mainly concern with the data structures related to graphs*/
function minMaxAvgGraph(xscale) {
this.minArray = new Array();
this.maxArray = new Array();
this.avgArray = new Array();
for (var i = 0; i < xscale; i++) {
this.minArray[i] = [i, 0.0];
}
for (var j = 0; j < xscale; j++) {
this.maxArray[j] = [j, 0.0];
}
for (var k = 0; k < xscale; k++) {
this.avgArray[k] = [k, 0.0];
}
this.xscale = xscale;
}
function getDataMin() {
return this.minArray;
}
function getDataMax() {
return this.maxArray;
}
function getDataAvg() {
return this.avgArray;
}
function addData(valuesString) {
// First split and get values
var values = valuesString.split("&");
var minValue = values[0];
var maxValue = values[1];
var avgValue = values[2];
this.addMin(minValue);
this.addMax(maxValue);
this.addAvg(avgValue);
}
function addDataMin(newValue) {
//shift to left
for (var i = 0; i < this.xscale - 1; i++) {
this.minArray[i] = [i,this.minArray[i + 1][1]]; // (x,y)
}
//add the value to the last postion
this.minArray[this.xscale - 1] = [this.xscale - 1,newValue];
}
function addDataMax(newValue) {
//shift to left
for (var i = 0; i < this.xscale - 1; i++) {
this.maxArray[i] = [i,this.maxArray[i + 1][1]]; // (x,y)
}
//add the value to the last postion
this.maxArray[this.xscale - 1] = [this.xscale - 1,newValue];
}
function addDataAvg(newValue) {
//shift to left
for (var i = 0; i < this.xscale - 1; i++) {
this.avgArray[i] = [i,this.avgArray[i + 1][1]]; // (x,y)
}
//add the value to the last postion
this.avgArray[this.xscale - 1] = [this.xscale - 1,newValue];
}
function graphTickGenerator() {
var tickArray = [];
var startTick = 10;
var i = startTick - 1;
var weight = this.xscale / 10;
do {
var t = (startTick - i) * weight - 1;
var v = i * weight;
if (v == 0) {
v = "0";
}
tickArray.push([t, v]);
i--;
} while (i > -1);
return tickArray;
}
minMaxAvgGraph.prototype.getMin = getDataMin;
minMaxAvgGraph.prototype.getMax = getDataMax;
minMaxAvgGraph.prototype.getAvg = getDataAvg;
minMaxAvgGraph.prototype.add = addData;
minMaxAvgGraph.prototype.addMin = addDataMin;
minMaxAvgGraph.prototype.addMax = addDataMax;
minMaxAvgGraph.prototype.addAvg = addDataAvg;
minMaxAvgGraph.prototype.tick = graphTickGenerator;

File diff suppressed because one or more lines are too long

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs
title="Lifecycle Stage Monitor"
height="240"
description="Allows to monitor messages received per hour by a service"
author="Tyrell Perera" author_email="tyrell@wso2.com" author_affiliation="WSO2"
author_location="Colombo, Sri Lanka">
<Require feature="setprefs"/>
</ModulePrefs>
<Content type="html" view="default">
<![CDATA[
<script type="text/javascript"
src="swfobject1-5/swfobject.js"></script>
<script type="text/javascript"
src="js/retrieve-data.js"></script>
<link rel="stylesheet" type="text/css" href="css/gadgets.css"/>
<p>Select Lifecycle: <select id="selectbox" style="text-align:left;width:200px;margin:0px auto;"
onchange="populateChart()">
</select></p>
<div id="chart" style="text-align:center;"></div>
<script type="text/javascript">
if (!(navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])){
document.getElementById('chart').innerHTML = '<div style="padding-top:20px;margin-bottom:20px;">You need to upgrade your Adobe Flash Player to display this Gadget.</div> <a href="http://get.adobe.com/flashplayer/" target="_blank">Download it from Adobe.</a>';
}
</SCRIPT>
<script type="text/javascript">
function init() {
var selectBox = document.getElementById('selectbox');
var lifecycleNames = getLifeCycleNames().split(";");
for (var i = 0; i < (lifecycleNames.length - 1); i++) {
addOption(selectBox, lifecycleNames[i], lifecycleNames[i]);
}
populateChart();
}
function addOption(selectedBox, text, value)
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectedBox.options.add(optn);
}
function populateChart() {
var select = document.getElementById('selectbox');
var selectValue = select.options[select.selectedIndex].value;
var so = new SWFObject("registry/resource/_system/config/repository/dashboards/gadgets/flash/open-flash-chart.swf", "chart", "300", "180", "9", "#ffffff");
so.addVariable("data", "carbon/gauges/gadgets/flash/flashdata-ajaxprocessor.jsp?name=" + selectValue + "%26funcName=lifeCyclePieChartData");
so.addParam("lifeCycleName", selectValue);
so.addParam("allowScriptAccess", "sameDomain");
so.write("chart");
}
gadgets.util.registerOnLoadHandler(init);
</script>
]]>
</Content>
</Module>

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="utf-8" ?>
<Module>
<ModulePrefs title="Resource Impact" height="300"
description="Shows all dependencies and used-by associations of a particular resource/service"
author="Tharindu Mathew" author_email="carbon-dev@wso2.org"
author_affiliation="WSO2" author_location="Colombo, Sri Lanka">
<Require feature="setprefs" />
<Require feature="tabs" />
<Require feature="dynamic-height" />
<Require feature="views" />
</ModulePrefs>
<UserPref name="path" display_name="path"
default_value="" datatype="string" required="true"></UserPref>
<UserPref name="selectedFlag" default_value="false" datatype="bool" required="true"></UserPref>
<Content type="html" view="default, home">
<![CDATA[
<script language="javascript" type="text/javascript" src="js/excanvas.js"></script>
<script type="text/javascript" src="js/wso2vis.js"></script>
<script type="text/javascript" src="js/retrieve-data.js"></script>
<!--<script type="text/javascript" src="js/jit.js"></script>-->
<style>
div#qTip {
padding: 3px;
border: 1px solid #666;
border-right-width: 2px;
border-bottom-width: 2px;
display: none;
background: #999;
color: #FFF;
font: bold 10px Verdana, Arial, sans-serif;
text-align: left;
position: absolute;
z-index: 1000;
}
</style>
<link rel="stylesheet" type="text/css" href="css/gadgets.css"/>
<link rel="stylesheet" type="text/css" href="css/help.css"/>
<p>Path:<input id="path-text" type="text" style="width:200px;margin:0 auto;" onkeypress="handleEnter(this, event)"></input>
<input type="button" onclick="pullData()" value="View"></input></p>
<div id="infovis" style="margin:0 auto; text-align:center;height:270px;width:300px;"></div>
<div id="log"></div>
<script type="text/javascript">
var pullData = function() {
var path = document.getElementById("path-text").value;
var URL = "carbon/gauges/gadgets/flash/flashdata-ajaxprocessor.jsp?funcName=getResourceImpact&path=" + path;
dataProvider.url = URL;
dataProvider.initialize();
var prefs = new gadgets.Prefs();
prefs.set("path", path);
prefs.set("selectedFlag", true);
gadgets.window.adjustHeight(300);
setTimeout("gadgets.window.adjustHeight(300)",100);
}
function handleEnter(inField, e) {
var charCode;
var prefs = new gadgets.Prefs();
prefs.set("path", document.getElementById("path-text").value);
if(e && e.which){
charCode = e.which;
}else if(window.event){
e = window.event;
charCode = e.keyCode;
}
if(charCode == 13) {
pullData();
}
}
//document.write(json);
var dataProvider = new wso2vis.p.ProviderGETJSON("");
var treeDiv = document.getElementById("infovis");
var logDiv = document.getElementById("log");
var hyperTree = new wso2vis.s.chart.infovis.HyperTree(logDiv,"infovis","Dependency Tree","Impact Analysis of resources");
hyperTree.dataField(["children"])
.dataLabel(["name"])
.width(300)
.height(270);
hyperTree.load();
//spaceTree.onTooltip = barTooltip;
//spaceTree.onClick = barClick;
dataProvider.addDataReceiver(hyperTree);
var prefs = new gadgets.Prefs();
document.getElementById("path-text").value = prefs.getString("path");
if (prefs.getBool("selectedFlag")) {
pullData();
}
</script>
]]>
</Content>
<Content type="html" view="canvas">
<![CDATA[
<script language="javascript" type="text/javascript" src="js/excanvas.js"></script>
<script type="text/javascript" src="js/wso2vis.js"></script>
<script type="text/javascript" src="js/retrieve-data.js"></script>
<!--<script type="text/javascript" src="js/jit.js"></script>-->
<style>
div#qTip {
padding: 3px;
border: 1px solid #666;
border-right-width: 2px;
border-bottom-width: 2px;
display: none;
background: #999;
color: #FFF;
font: bold 10px Verdana, Arial, sans-serif;
text-align: left;
position: absolute;
z-index: 1000;
}
</style>
<link rel="stylesheet" type="text/css" href="css/gadgets.css"/>
<link rel="stylesheet" type="text/css" href="css/help.css"/>
<p>Path:<input id="path-text" type="text" style="width:200px;margin:0 auto;" onkeypress="handleEnter(this, event)"></input>
<input type="button" onclick="pullData()" value="View"></input></p>
<div id="infovis" style="margin:0 auto; text-align:center;height:450px;width:1000px;"></div>
<div id="log"></div>
<script type="text/javascript">
var pullData = function() {
var path = document.getElementById("path-text").value;
var URL = "carbon/gauges/gadgets/flash/flashdata-ajaxprocessor.jsp?funcName=getResourceImpact&path=" + path;
dataProvider.url = URL;
dataProvider.initialize();
var prefs = new gadgets.Prefs();
prefs.set("path", path);
prefs.set("selectedFlag", true);
gadgets.window.adjustHeight(500);
setTimeout("gadgets.window.adjustHeight(500)",100);
}
function handleEnter(inField, e) {
var charCode;
var prefs = new gadgets.Prefs();
prefs.set("path", document.getElementById("path-text").value);
if(e && e.which){
charCode = e.which;
}else if(window.event){
e = window.event;
charCode = e.keyCode;
}
if(charCode == 13) {
pullData();
}
}
//document.write(json);
var dataProvider = new wso2vis.p.ProviderGETJSON("");
var treeDiv = document.getElementById("infovis");
var logDiv = document.getElementById("log");
var hyperTree = new wso2vis.s.chart.infovis.HyperTree(logDiv,"infovis","Dependency Tree","Impact Analysis of resources");
hyperTree.dataField(["children"])
.dataLabel(["name"])
.width(1000)
.height(450);
hyperTree.load();
//spaceTree.onTooltip = barTooltip;
//spaceTree.onClick = barClick;
dataProvider.addDataReceiver(hyperTree);
var prefs = new gadgets.Prefs();
document.getElementById("path-text").value = prefs.getString("path");
if (prefs.getBool("selectedFlag")) {
pullData();
}
</script>
]]>
</Content>
</Module>

@ -0,0 +1,73 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SWFObject embed by Geoff Stearns (express install) @ deconcept</title>
<!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/swfobject/ -->
<script type="text/javascript" src="swfobject.js"></script>
<style type="text/css">
body {
background-color: #eeeeee;
font: .8em/1.3em verdana,arial,helvetica,sans-serif;
}
#info {
width: 300px;
overflow: auto;
}
#flashcontent {
border: solid 1px #000;
width: 300px;
height: 300px;
float: left;
margin: 15px 20px;
}
</style>
</head>
<body>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
This is replaced by the Flash content.
Place your alternate content here and users without the Flash plugin or with
Javascript turned off will see this. Content here allows you to leave out <code>noscript</code>
tags. Include a link to <a href="expressinstall.html?detectflash=false">bypass the detection</a> if you wish.
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("so_tester.swf", "sotester", "300", "300", "9", "#FF6600");
so.addVariable("flashVarText", "this is passed in via FlashVars"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.useExpressInstall('expressinstall.swf');
so.write("flashcontent");
// ]]>
</script>
<div id="info">
<p>
This Flash movie was embedded using the <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> embed method by <a href="http://blog.deconcept.com/">Geoff Stearns</a>.
</p>
<p>Other sample embeds:</p>
<ul>
<li><a href="swfobject.html">Basic Flash Embed with alternate content</a></li>
<li><a href="fullpage.html">Full page Flash embed</a></li>
<li>Basic Flash Embed with Express Install allowed</li>
</ul>
<p>You can also <a href="flashversion.html">view your installed Flash version</a>.</p>
<p>
<a href="view-source:http://blog.deconcept.com/swfobject/expressinstall.html">View source</a> (in mozilla, firefox) | <a href="swfobject_source.js">View Javascript</a>.
</p>
<p>
<a href="http://blog.deconcept.com/swfobject/swfobject1-4.zip">Download Source</a>.
</p>
</div>
<p style="clear: both;margin-left: 20px"><a href="http://validator.w3.org/check?uri=referer">Validate XHTML</a> and <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></p>
</body>
</html>

@ -0,0 +1,46 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SWFObject embed by Geoff Stearns (show player version) @ deconcept</title>
<!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/swfobject/ -->
<script type="text/javascript" src="swfobject.js"></script>
<style type="text/css">
body {
background-color: #eeeeee;
font: .8em/1em verdana,arial,helvetica,sans-serif;
}
#info {
width: 600px;
overflow: auto;
}
</style>
</head>
<body>
<div id="flashversion">
You do not have the Flash plugin installed, or your browser does not support Javascript (you should enable it, perhaps?)
</div>
<script type="text/javascript">
// <![CDATA[
var version = deconcept.SWFObjectUtil.getPlayerVersion();
if (document.getElementById && version["major"] > 0) {
document.getElementById('flashversion').innerHTML = "You have Flash player "+ version['major'] +"."+ version['minor'] +"."+ version['rev'] +" installed.";
}
// ]]>
</script>
<div id="info">
<p>
This page displays your current Flash player version using Javascript.
</p>
</div>
</body>
</html>

@ -0,0 +1 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- saved from url=(0014)about:internet --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>SWFObject embed by Geoff Stearns (full page) @ deconcept</title> <!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/ --> <script type="text/javascript" src="swfobject.js"></script> <style type="text/css"> /* hide from ie on mac \*/ html { height: 100%; overflow: hidden; } #flashcontent { height: 100%; } /* end hide */ body { height: 100%; margin: 0; padding: 0; background-color: #f60; } </style> </head> <body> <div id="flashcontent"> <strong>You need to upgrade your Flash Player</strong> This is replaced by the Flash content. Place your alternate content here and users without the Flash plugin or with Javascript turned off will see this. Content here allows you to leave out <code>noscript</code> tags. Include a link to <a href="fullpage.html?detectflash=false">bypass the detection</a> if you wish. </div> <script type="text/javascript"> // <![CDATA[ var so = new SWFObject("so_tester.swf", "sotester", "100%", "100%", "8", "#FF6600"); so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); so.addParam("scale", "noscale"); so.write("flashcontent"); // ]]> </script> </body> </html>

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SWFObject embed by Geoff Stearns (basic) @ deconcept</title>
<!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/swfobject/ -->
<script type="text/javascript" src="swfobject.js"></script>
<style type="text/css">
body {
background-color: #eeeeee;
font: .8em/1.3em verdana,arial,helvetica,sans-serif;
}
#info {
width: 300px;
overflow: auto;
}
#flashcontent {
border: solid 1px #000;
width: 300px;
height: 300px;
float: left;
margin: 15px 20px;
}
</style>
</head>
<body>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
This is replaced by the Flash content.
Place your alternate content here and users without the Flash plugin or with
Javascript turned off will see this. Content here allows you to leave out <code>noscript</code>
tags. Include a link to <a href="swfobject.html?detectflash=false">bypass the detection</a> if you wish.
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("so_tester.swf", "sotester", "300", "300", "9", "#FF6600");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.write("flashcontent");
// ]]>
</script>
<div id="info">
<p>
This Flash movie was embedded using the <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> embed method by <a href="http://blog.deconcept.com/">Geoff Stearns</a>.
</p>
<p>Other sample embeds:</p>
<ul>
<li>Basic Flash Embed with alternate content</li>
<li><a href="fullpage.html">Full page Flash embed</a></li>
<li><a href="expressinstall.html">Basic Flash Embed with Express Install allowed</a></li>
</ul>
<p>You can also <a href="flashversion.html">view your installed Flash version</a>.</p>
<p>
<a href="view-source:http://blog.deconcept.com/swfobject/swfobject.html">View source</a> (in mozilla, firefox) | <a href="swfobject_source.js">View Javascript</a>.
</p>
<p>
<a href="http://blog.deconcept.com/swfobject/swfobject1-4.zip">Download Source</a>.
</p>
</div>
<p style="clear: both;margin-left: 20px"><a href="http://validator.w3.org/check?uri=referer">Validate XHTML</a> and <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></p>
</body>
</html>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
xmlns:scxml="http://www.w3.org/2005/07/scxml">
<xs:import namespace="http://www.w3.org/2005/07/scxml" schemaLocation="scxml.xsd"/>
<xs:element name="aspect" type="aspectType"/>
<xs:complexType name="aspectType">
<xs:sequence>
<xs:element name="configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="lifecycle">
<xs:complexType>
<xs:sequence>
<xs:element ref="scxml:scxml"/>
</xs:sequence>
<xs:attribute name="audit" use="optional" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="class" use="required"/>
<xs:attribute name="name" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:schema>

@ -0,0 +1,6 @@
<%@ page import="java.io.*,java.util.*" %>
<%
// New location to be redirected
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", "/store");
%>

@ -0,0 +1,282 @@
/* ---------------- template styles ------------------------- */
table#main-table td#header {
background-image:none !important;
border-bottom:1px solid #CCC;
}
table#main-table td#menu-panel {
border-right: solid 1px #6F97CD;
/*background-image: url(../images/app-server-menu-panel-bg.gif);*/
background-position: right top;
background-repeat: repeat-y;
}
/* ---------------- header styles ------------------ */
div#header-div {
background-color:#222222;
background-image:none !important;
}
div#header-div div.left-logo {
background-image: url(../images/logo.png);
width: 200px;
margin:12px 20px !important;
}
div#header-div div.right-logo {
/*background-image: url( ../images/wsas-mgt-logo.gif);*/
color: #FFF;
font-family:Arial;
font-size:12px;
padding:0px !important;
margin:18px !important;
}
div#header-div div.header-links {
margin-top:0px;
float:right !important;
}
div#header-div div.header-links div.right-links {
margin-right: 0px;
height: 35px;
padding-top: 0px;
}
div#header-div div.header-links div.right-links ul {
background-position:left top;
background-repeat:repeat-x;
padding-top: 9px;
padding-bottom: 7px;
}
/* ------------- menu styles ---------------------- */
div#menu {
}
div#menu ul.main {
}
div#menu ul.main li {
}
div#menu ul.main li.normal {
}
div#menu ul.main li a.menu-home {
color: #0067B1;
background-image: none;
height: 30px;
line-height: 30px;
}
div#menu ul.main li a.menu-home:hover {
color: #f47b20;
background-image: none;
background-color: #ffffff;
}
div#menu ul.main li.menu-header {
/*background-image: url(../images/app-server-menu-header.png);*/
background-image:none !important;
background-position: left bottom;
background-repeat: repeat-x;
border-top: 1px solid #CCC;
border-bottom: 1px solid #CCC;
color:#502D16 !important;
height: 32px;
line-height: 32px;
background-color:#F3f3f3;
font-weight:bold;
text-transform:uppercase;
}
div#menu ul.main li.menu-header img {
margin-right:-14px;
margin-top:7px;
}
div#menu ul.main li a.menu-default {
}
div#menu ul.main li a.menu-default:hover {
background-color: #ffffff;
border-bottom: solid 1px #CCC;
border-top: solid 1px #CCC;
color: #00447C;
}
div#menu ul.sub {
}
div#menu ul.main li.menu-disabled-link {
background-color: #E9EDF7;
}
/* -------------- child no-01 styles -------------- */
div#menu ul.sub li.normal {
}
div#menu ul.sub li a.menu-default {
}
/* ----------- child no-01 (disabled) styles ------------------- */
div#menu ul.sub li a.menu-disabled-link {
}
div#menu ul.sub li a.menu-disabled-link:hover {
}
/* -------------- child no-02 styles -------------- */
div#menu ul.sub li.normal ul.sub li a.menu-default {
}
/* -------------- child no-03 styles -------------- */
div#menu ul.sub li.normal ul.sub li.normal ul.sub li a.menu-default {
}
/* ------------- footer styles -------------------- */
div#footer-div div.footer-content div.poweredby {
/*background-image: url( ../images/axis2-powered.gif);*/
}
/* ---- login styles ----- */
/* --------------- table styles -------------------- */
.tableOddRow{background-color: white;}
.tableEvenRow{background-color: #eeeffb;}
.button:hover{
/*background-image:url(../images/wsas-button-bg-hover.gif);
border:solid 1px #9D9FA1;*/
}
/* -------------- work area ---------------------- */
table#main-table td#middle-content {
background-color:none !important;
background:transparent !important;
}
div#middle {
background-color:#ffffff;
}
div#middle h2 {
margin-top:5px;
}
div#middle div#workArea {
background-color:none !important;
background:transparent !important;
padding:10px;
}
div#workArea table.styledLeft thead th {
/*background-image:url("../images/app-server-table-header.gif");*/
background-image:none;
background-color: #efd7a5;
border-bottom:1px solid #CCC;
border-left:1px solid #CCC;
border-right:1px solid #CCC;
border-top:1px solid #CCC;
height:27px;
line-height:25px;
text-transform:uppercase;
font-weight:bold;
}
div#workArea table.styledLeft .tableOddRow {
background-color:none !important;
}
div#workArea table.styledLeft .tableEvenRow {
background-color:none !important;
background:none;
}
div#workArea table.styledLeft tbody tr td.middle-header {
/*background-image:url("../images/app-server-table-header.gif");*/
border-bottom:1px solid #A7A9AC;
border-left:1px solid #cccccc;
border-right:1px solid #cccccc;
border-top:1px solid #cccccc;
height:22px;
line-height:22px;
}
div#workArea table.styledLeft tbody tr td.buttonRow {
/*background-image:url("../images/app-server-buttonRow-bg.gif");*/
background-color: #F5F5F6;
padding-bottom:5px;
padding-top:5px;
}
.button {
/*background-image:url("../images/app-server-button-bg.gif");*/
background-position:left bottom;
border:1px solid #666666;
padding:2px 5px;
}
/** TEAGUE EDITS FOR JAGGERY SERVER ADMIN **/
div#header-div {
height: 52px !important;
}
.left-logo img {
display:none !important;
}
body {
/*background-image:url("../images/bg.png");*/
font-family:Arial !important;
}
div.right-links ul a {
}
a {
color:#502D16 !important;
}
a:hover {
color:#784421 !important;
}
table#main-table td#menu-panel {
border-right: 1px solid #784421;
}
div#middle h2 {
color:#502D16 !important;
font-weight:bold;
padding-bottom:10px;
border-bottom:1px solid #CCC !important;
}
div#features tr.feature td {
border-top:1px solid #CCC;
}
div#features tr.feature-top td {
border-top:0px;
}
#main-table {
background-color:none !important;
}
#middle {
background:transparent !important;
background-color:none !important;
}
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because it is too large Load Diff

@ -796,24 +796,39 @@
<properties>
<!--Carbon kernel versions-->
<carbon.kernel.version>4.4.0</carbon.kernel.version>
<carbon.kernel.version>4.4.1</carbon.kernel.version>
<carbon.kernel.version.range>[4.4.0, 4.5.0)</carbon.kernel.version.range>
<!--Carbon p2 version-->
<carbon.p2.plugin.version>1.5.4</carbon.p2.plugin.version>
<!--Maven build number plugin-->
<maven-buildnumber-plugin.version>1.3</maven-buildnumber-plugin.version>
<!--Jaggery -->
<jaggery.version>0.10.1</jaggery.version>
<jaggery.extensions.version>1.3.0</jaggery.extensions.version>
<jaggery.extensions.sso.version>1.3.0</jaggery.extensions.sso.version>
<jaggery.extensions.carbon.version>1.3.0</jaggery.extensions.carbon.version>
<jaggery.extensions.test.version>1.3.0</jaggery.extensions.test.version>
<jaggery.version>0.10.2</jaggery.version>
<jaggery.extensions.version>1.3.2</jaggery.extensions.version>
<jaggery.extensions.sso.version>1.3.2</jaggery.extensions.sso.version>
<jaggery.extensions.carbon.version>1.3.2</jaggery.extensions.carbon.version>
<jaggery.extensions.test.version>1.3.2</jaggery.extensions.test.version>
<!--Additional Jaggery Stuff-->
<caramel.feature.version>1.0.1</caramel.feature.version>
<handlebars.feature.version>1.0.0</handlebars.feature.version>
<markdown.feature.version>1.0.0</markdown.feature.version>
<!-- Store Features -->
<carbon.store.version>2.3.1</carbon.store.version>
<carbon.social.version>2.3.1</carbon.social.version>
<!-- Additional Stuff from ES Features -->
<carbon.dashboards.version>1.0.0</carbon.dashboards.version>
<ciphertool.version>1.0.0-wso2v3</ciphertool.version>
<el.api.version>2.2</el.api.version>
<!--Testing -->
<test.framework.version>4.4.1</test.framework.version>
<testng.version>6.8</testng.version>
<testng.version>6.8.5</testng.version>
<automation.utils.version>4.4.1</automation.utils.version>
<test.automation.emm.ui.version>1.1.0</test.automation.emm.ui.version>
@ -822,7 +837,6 @@
<eclipse.osgi.version>3.9.1.v20130814-1242</eclipse.osgi.version>
<!--Orbit versions-->
<orbit.h2.engine.version>1.2.140.wso2v3</orbit.h2.engine.version>
<!--CXF properties-->
@ -831,22 +845,22 @@
<javax.ws.rs.version>1.1.1</javax.ws.rs.version>
<!-- Carbon Commons -->
<carbon.commons.version>4.4.1</carbon.commons.version>
<carbon.commons.version>4.4.4</carbon.commons.version>
<!-- Carbon Deployment -->
<carbon.deployment.version>4.4.0</carbon.deployment.version>
<carbon.deployment.version>4.4.1</carbon.deployment.version>
<!-- Carbon Identity -->
<carbon.identity.version>4.4.0</carbon.identity.version>
<carbon.identity.version>4.5.4</carbon.identity.version>
<!-- Carbon Multi-tenancy -->
<carbon.multitenancy.version>4.4.0</carbon.multitenancy.version>
<carbon.multitenancy.version>4.4.1</carbon.multitenancy.version>
<!-- Carbon Registry -->
<carbon.registry.version>4.4.1</carbon.registry.version>
<carbon.registry.version>4.4.5</carbon.registry.version>
<!-- Carbon Governance -->
<carbon.governance.version>4.4.1</carbon.governance.version>
<carbon.governance.version>4.5.2</carbon.governance.version>
<!-- Carbon Device Management -->
<carbon.device.mgt.version>0.9.2-SNAPSHOT</carbon.device.mgt.version>
@ -856,7 +870,7 @@
<carbon.iot.device.mgt.version>1.0.0-SNAPSHOT</carbon.iot.device.mgt.version>
<!-- API Management -->
<carbon.api.mgt.version>1.4.0</carbon.api.mgt.version>
<carbon.api.mgt.version>1.3.0-SNAPSHOT</carbon.api.mgt.version>
<!-- Tomcat -->
<orbit.tomcat.version>7.0.59.wso2v1</orbit.tomcat.version>

Loading…
Cancel
Save