From f8129149b137588ea04bb662e3cc6bd5cede9f9e Mon Sep 17 00:00:00 2001 From: sinthuja Date: Wed, 5 Apr 2017 10:45:06 +0530 Subject: [PATCH 1/7] First cut of adding the profile-creator.sh. --- modules/distribution/pom.xml | 25 ++ .../resources/profile/master-datasources.xml | 50 +++ modules/distribution/src/assembly/bin.xml | 18 + .../src/assembly/filter.properties | 2 +- .../src/core/bin/profile-creator.bat | 173 +++++++++ .../src/core/bin/profile-creator.sh | 266 ++++++++++++++ .../resources/profiles/backend/iot-server.bat | 182 ++++++++++ .../resources/profiles/backend/iot-server.sh | 339 ++++++++++++++++++ .../resources/profiles/gateway/iot-server.bat | 182 ++++++++++ .../resources/profiles/gateway/iot-server.sh | 339 ++++++++++++++++++ .../profiles/keymanager/iot-server.bat | 182 ++++++++++ .../profiles/keymanager/iot-server.sh | 339 ++++++++++++++++++ .../resources/profiles/manager/iot-server.bat | 182 ++++++++++ .../resources/profiles/manager/iot-server.sh | 339 ++++++++++++++++++ 14 files changed, 2617 insertions(+), 1 deletion(-) create mode 100644 modules/distribution/src/analytics/resources/profile/master-datasources.xml create mode 100644 modules/distribution/src/core/bin/profile-creator.bat create mode 100644 modules/distribution/src/core/bin/profile-creator.sh create mode 100644 modules/distribution/src/core/resources/profiles/backend/iot-server.bat create mode 100755 modules/distribution/src/core/resources/profiles/backend/iot-server.sh create mode 100644 modules/distribution/src/core/resources/profiles/gateway/iot-server.bat create mode 100755 modules/distribution/src/core/resources/profiles/gateway/iot-server.sh create mode 100644 modules/distribution/src/core/resources/profiles/keymanager/iot-server.bat create mode 100755 modules/distribution/src/core/resources/profiles/keymanager/iot-server.sh create mode 100644 modules/distribution/src/core/resources/profiles/manager/iot-server.bat create mode 100755 modules/distribution/src/core/resources/profiles/manager/iot-server.sh diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml index 8fe2378a..ae1c8f74 100644 --- a/modules/distribution/pom.xml +++ b/modules/distribution/pom.xml @@ -735,6 +735,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/distribution/src/analytics/resources/profile/master-datasources.xml b/modules/distribution/src/analytics/resources/profile/master-datasources.xml new file mode 100644 index 00000000..744b342f --- /dev/null +++ b/modules/distribution/src/analytics/resources/profile/master-datasources.xml @@ -0,0 +1,50 @@ + + + + org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader + + + + WSO2_CARBON_DB + The datasource used for registry and user manager + + jdbc/WSO2CarbonDB + + + + jdbc:h2:repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE + wso2carbon + wso2carbon + org.h2.Driver + 50 + 60000 + true + SELECT 1 + 30000 + false + + + + + WSO2_REGISTRY_DB + The datasource used for registry and user manager + + jdbc/WSO2RegDB + + + + jdbc:h2:repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE + wso2carbon + wso2carbon + org.h2.Driver + 50 + 60000 + true + SELECT 1 + 30000 + false + + + + + diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml index 0fadebcf..f68f9af9 100755 --- a/modules/distribution/src/assembly/bin.xml +++ b/modules/distribution/src/assembly/bin.xml @@ -1106,6 +1106,18 @@ ${pom.artifactId}-${pom.version}/bin 755 + + src/core/bin/profile-creator.bat + ${pom.artifactId}-${pom.version}/bin + 755 + true + + + src/core/bin/profile-creator.sh + ${pom.artifactId}-${pom.version}/bin + 755 + true + src/core/jaggeryapps/portal/configs/designer.json @@ -1572,6 +1584,12 @@ + + src/analytics/resources/profile/master-datasources.xml + ${pom.artifactId}-${pom.version}/wso2/analytics/repository/resources/profile + 644 + + src/core/README.txt ${pom.artifactId}-${pom.version}/wso2/analytics/bin/ diff --git a/modules/distribution/src/assembly/filter.properties b/modules/distribution/src/assembly/filter.properties index 1ce5bf11..fd60d207 100644 --- a/modules/distribution/src/assembly/filter.properties +++ b/modules/distribution/src/assembly/filter.properties @@ -18,7 +18,7 @@ product.name=WSO2 IoT Server product.key=IoT -product.version=3.1.0 +product.version=3.1.0-SNAPSHOT carbon.version=4.4.14 default.server.role=IoTServer diff --git a/modules/distribution/src/core/bin/profile-creator.bat b/modules/distribution/src/core/bin/profile-creator.bat new file mode 100644 index 00000000..134f7a59 --- /dev/null +++ b/modules/distribution/src/core/bin/profile-creator.bat @@ -0,0 +1,173 @@ +@echo OFF + +REM --------------------------------------------------------------------------- +REM Copyright 2017 WSO2, Inc. http://www.wso2.org +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM --------------------------------------------------------------------------- +REM Profile creator tool for EI +REM --------------------------------------------------------------------------- + +set DIR=%~dp0 +set DISTRIBUTION=wso2ei-@product.version@ +REM get the desired profile +echo This tool will erase all the files which are not required for the selected profile. +echo WARNING:This may cause loss of any changes to the other profiles. +echo WSO2 Enterprise Integrator Supports following profiles. +echo 1.Integrator profile +echo 2.Analytics Profile +echo 3.Business Process profile +echo 4.Broker profile +echo 5.Msf4j profile + +set /p profileNumber= [Please enter the desired profile number to create the profile specific distribution] + +IF /I "%profileNumber%" EQU "1" goto Integrator +IF /I "%profileNumber%" EQU "2" goto Analytics +IF /I "%profileNumber%" EQU "3" goto BPS +IF /I "%profileNumber%" EQU "4" goto Broker +IF /I "%profileNumber%" EQU "5" goto Msf4j + +echo Invalid profile identifier. +goto Exit + +:Integrator + echo Preparing the Integrator profile distribution. + set DEFAULT_BUNDLES=%DIR%..\wso2\components\default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + set WORKER_BUNDLES=%DIR%..\wso2\components\worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + call :Remove_BPS + call :Remove_BROKER + call :Remove_ANALYTICS + call :Remove_JARS + call :Remove_MSF4J + echo Integrator profile created successfully. + goto Exit + +:Broker + echo Preparing the Broker profile. + set DEFAULT_BUNDLES=%DIR%..\wso2\components\broker-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + set WORKER_BUNDLES=%DIR%..\wso2\components\broker-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + call :Remove_BPS + call :Remove_INTEGRATOR + call :Remove_ANALYTICS + call :Remove_JARS + call :Remove_MSF4J + echo Broker profile created successfully. + goto Exit + +:BPS + echo Preparing the Business Process profile. + set DEFAULT_BUNDLES=%DIR%..\wso2\components\business-process-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + set WORKER_BUNDLES=%DIR%..\wso2\components\business-process-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + call :Remove_BROKER + call :Remove_INTEGRATOR + call :Remove_ANALYTICS + call :Remove_JARS + call :Remove_MSF4J + echo Business Process profile created successfully. + goto Exit + +:Analytics + echo Preparing the Analytics profile. + set DEFAULT_BUNDLES=%DIR%..\wso2\components\analytics-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + set WORKER_BUNDLES=%DIR%..\wso2\components\analytics-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info + call :Remove_BPS + call :Remove_INTEGRATOR + call :Remove_BROKER + call :Remove_JARS + call :Remove_MSF4J + echo Analytics profile created successfully. + goto Exit + +:Msf4j + echo Preparing the Msf4j profile. + call :Remove_BPS + call :Remove_BROKER + call :Remove_ANALYTICS + call :Remove_INTEGRATOR + IF EXIST %DIR%\..\conf @RD /S /Q %DIR%\..\conf + IF EXIST %DIR%\..\lib @RD /S /Q %DIR%\..\lib + IF EXIST %DIR%\..\dropins @RD /S /Q %DIR%\..\dropins + IF EXIST %DIR%\..\dbscripts @RD /S /Q %DIR%\..\dbscripts + IF EXIST %DIR%\..\patches @RD /S /Q %DIR%\..\patches + IF EXIST %DIR%\..\repository @RD /S /Q %DIR%\..\repository + IF EXIST %DIR%\..\resources @RD /S /Q %DIR%\..\resources + IF EXIST %DIR%\..\samples @RD /S /Q %DIR%\..\samples + IF EXIST %DIR%\..\servicepacks @RD /S /Q %DIR%\..\servicepacks + IF EXIST %DIR%\..\webapp-mode @RD /S /Q %DIR%\..\webapp-mode + IF EXIST %DIR%\..\wso2\analytics @RD /S /Q %DIR%\..\wso2\analytics + IF EXIST %DIR%\..\wso2\broker @RD /S /Q %DIR%\..\wso2\broker + IF EXIST %DIR%\..\wso2\business-process @RD /S /Q %DIR%\..\wso2\business-process + IF EXIST %DIR%\..\wso2\components @RD /S /Q %DIR%\..\wso2\components + IF EXIST %DIR%\..\wso2\lib @RD /S /Q %DIR%\..\wso2\lib + IF EXIST %DIR%\..\wso2\tmp @RD /S /Q %DIR%\..\wso2\tmp + echo Msf4j profile created successfully. + goto Exit + +:Remove_BPS + echo Removing Business Process profile + IF EXIST %DIR%\..\wso2\business-process @RD /S /Q %DIR%\..\wso2\business-process + IF EXIST %DIR%\..\samples\business-process @RD /S /Q %DIR%\..\samples\business-process + IF EXIST %DIR%\..\wso2\components\business-process-default @RD /S /Q %DIR%\..\wso2\components\business-process-default + IF EXIST %DIR%\..\wso2\components\business-process-worker @RD /S /Q %DIR%\..\wso2\components\business-process-worker + IF EXIST %DIR%\business-process.bat del %DIR%\business-process.bat + IF EXIST %DIR%\business-process.sh del %DIR%\business-process.sh + goto :eof + +:Remove_BROKER + echo Removing Broker profile + IF EXIST %DIR%\..\wso2\broker @RD /S /Q %DIR%\..\wso2\broker + IF EXIST %DIR%\..\wso2\components\broker-default @RD /S /Q %DIR%\..\wso2\components\broker-default + IF EXIST %DIR%\..\wso2\components\broker-worker @RD /S /Q %DIR%\..\wso2\components\broker-worker + IF EXIST %DIR%\broker.bat del %DIR%\broker.bat + IF EXIST %DIR%\broker.sh del %DIR%\broker.sh + goto :eof + +:Remove_ANALYTICS + echo Removing Analytics profile + IF EXIST %DIR%\..\wso2\analytics @RD /S /Q %DIR%\..\wso2\analytics + IF EXIST %DIR%\..\wso2\components\analytics-default @RD /S /Q %DIR%\..\wso2\components\analytics-default + IF EXIST %DIR%\..\wso2\components\analytics-worker @RD /S /Q %DIR%\..\wso2\components\analytics-worker + IF EXIST %DIR%\broker.bat del %DIR%\analytics.bat + IF EXIST %DIR%\broker.sh del %DIR%\analytics.sh + goto :eof + +:Remove_INTEGRATOR + echo Removing Integrator profile + IF EXIST %DIR%\..\conf @RD /S /Q %DIR%\..\conf + IF EXIST %DIR%\..\wso2\components\default @RD /S /Q %DIR%\..\wso2\components\default + IF EXIST %DIR%\..\wso2\components\worker @RD /S /Q %DIR%\..\wso2\components\worker + IF EXIST %DIR%\..\samples\service-bus @RD /S /Q %DIR%\..\samples\service-bus + IF EXIST %DIR%\integrator.bat del %DIR%\integrator.bat + IF EXIST %DIR%\integrator.sh del %DIR%\integrator.sh + IF EXIST %DIR%\wso2ei-samples.bat del %DIR%\wso2ei-samples.bat + IF EXIST %DIR%\wso2ei-samples.sh del %DIR%\wso2ei-samples.sh + goto :eof + +:Remove_JARS + echo Removing unnecessary jars + mkdir %DIR%\..\wso2\components\tmp_plugins + + FOR /F "tokens=1,2* delims=, " %%i in (%DEFAULT_BUNDLES%) do copy %DIR%\..\wso2\components\plugins\%%i_%%j.jar %DIR%\..\wso2\components\tmp_plugins + FOR /F "tokens=1,2* delims=, " %%i in (%WORKER_BUNDLES%) do copy %DIR%\..\wso2\components\plugins\%%i_%%j.jar %DIR%\..\wso2\components\tmp_plugins + + @RD /S /Q %DIR%\..\wso2\components\plugins + rename %DIR%\..\wso2\components\tmp_plugins plugins + goto :eof + +:Remove_MSF4J + IF EXIST %DIR%\..\wso2\msf4j @RD /S /Q %DIR%\..\wso2\msf4j + goto :eof + +:Exit + pause diff --git a/modules/distribution/src/core/bin/profile-creator.sh b/modules/distribution/src/core/bin/profile-creator.sh new file mode 100644 index 00000000..9a51c188 --- /dev/null +++ b/modules/distribution/src/core/bin/profile-creator.sh @@ -0,0 +1,266 @@ +#!/bin/bash +#------------------------------------------------------------------------ +# Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +# +# WSO2 Inc. licenses this file to you under the Apache License, +# Version 2.0 (the "License"); you may not use this file except +# in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +#------------------------------------------------------------------------- +# Profile creator tool for EI +#------------------------------------------------------------------------- + + + +DIR="$(dirname "${BASH_SOURCE[0]}")" +DISTRIBUTION="wso2iot-@product.version@" +#get the desired profile +echo "This tool will erase all the files which are not required for the selected profile " +echo "and also creates a distribution of this profile in the same folder resides." +echo "WARNING:This may cause loss of any changes to the other profiles." +echo "WSO2 IoT Server Supports following profiles." +echo " 1.IoT Gateway Profile" +echo " 2.IoT Key Manager Profile" +echo " 3.IoT Device Backend Profile" +echo " 4.IoT Device Manager Profile" +echo " 5.Analytics Profile" +echo " 6.Broker profile" +echo "Please enter the desired profile number to create the profile specific distribution." +read profileNumber +#gateway profile +if [ ${profileNumber} -eq 1 ] +then + echo "Preparing the Integrator profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/http-gateway/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove broker + echo "Removing Broker profile" + rm -rf ${DIR}/../wso2/broker + rm -rf ${DIR}/../wso2/components/broker-default + rm -rf ${DIR}/broker.bat + rm -rf ${DIR}/broker.sh + + #remove analytics + echo "Removing Analytics profile" + rm -rf ${DIR}/../wso2/analytics + rm -rf ${DIR}/../wso2/components/analytics-default + rm -rf ${DIR}/analytics.bat + rm -rf ${DIR}/analytics.sh + + #remove integrator + echo "Removing IoT Other profiles" + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-backend ${DIR}/../wso2/components/device-key-manager ${DIR}/../wso2/components/device-manager + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + cp -rf ${DIR}/../repository/resources/profiles/gateway/* ${DIR}/../bin/ + rm -rf ${DIR}/../repository/deployment/server/jaggeryapps/* + rm -rf ${DIR}/../repository/deployment/server/webapps/* + rm -rf ${DIR}/../repository/deployment/server/carbonapps/* + rm -rf ${DIR}/../repository/deployment/server/axis2services/* + + PROFILE="_gateway" + +#key-manager profile +elif [ ${profileNumber} -eq 2 ] +then + echo "Preparing the Integrator profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/device-key-manager/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove broker + echo "Removing Broker profile" + rm -rf ${DIR}/../wso2/broker + rm -rf ${DIR}/../wso2/components/broker-default + rm -rf ${DIR}/broker.bat + rm -rf ${DIR}/broker.sh + + #remove analytics + echo "Removing Analytics profile" + rm -rf ${DIR}/../wso2/analytics + rm -rf ${DIR}/../wso2/components/analytics-default + rm -rf ${DIR}/analytics.bat + rm -rf ${DIR}/analytics.sh + + #remove integrator + echo "Removing IoT Other profiles" + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-backend ${DIR}/../wso2/components/http-gateway ${DIR}/../wso2/components/device-manager + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + cp -rf ${DIR}/../repository/resources/profiles/keymanager/* ${DIR}/../bin/ + rm -rf ${DIR}/../repository/deployment/server/jaggeryapps/* + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* + mkdir ${DIR}/../repository/deployment/server/tempwebapp + cp ${DIR}/../repository/deployment/server/webapps/oauth2.war ${DIR}/../repository/deployment/server/tempwebapp/ + rm -rf ${DIR}/../repository/deployment/server/webapps/* + cp -rf ${DIR}/../repository/deployment/server/tempwebapp/* ${DIR}/../repository/deployment/server/webapps/ + rm -rf ${DIR}/../repository/deployment/server/tempwebapp + rm -rf ${DIR}/../repository/deployment/server/carbonapps/* + rm -rf ${DIR}/../repository/deployment/server/axis2services/* + + PROFILE="_keymanager" + +#device backend profile +elif [ ${profileNumber} -eq 3 ] +then + echo "Preparing the Integrator profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/device-backend/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove broker + echo "Removing Broker profile" + rm -rf ${DIR}/../wso2/broker + rm -rf ${DIR}/../wso2/components/broker-default + rm -rf ${DIR}/broker.bat + rm -rf ${DIR}/broker.sh + + #remove analytics + echo "Removing Analytics profile" + rm -rf ${DIR}/../wso2/analytics + rm -rf ${DIR}/../wso2/components/analytics-default + rm -rf ${DIR}/analytics.bat + rm -rf ${DIR}/analytics.sh + + #remove integrator + echo "Removing IoT Other profiles" + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-key-manager ${DIR}/../wso2/components/http-gateway ${DIR}/../wso2/components/device-manager + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* + cp -rf ${DIR}/../repository/resources/profiles/backend/* ${DIR}/../bin/ + rm -rf ${DIR}/../repository/deployment/server/webapps/oauth2.war ${DIR}/../repository/deployment/server/webapps/shindig.war + rm -rf ${DIR}/../repository/deployment/server/jaggeryapps/* + rm -rf ${DIR}/../repository/deployment/server/axis2services/* + + PROFILE="_device-backend" + +#device manager profile +elif [ ${profileNumber} -eq 4 ] +then + echo "Preparing the Integrator profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/device-manager/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove broker + echo "Removing Broker profile" + rm -rf ${DIR}/../wso2/broker + rm -rf ${DIR}/../wso2/components/broker-default + rm -rf ${DIR}/broker.bat + rm -rf ${DIR}/broker.sh + + #remove analytics + echo "Removing Analytics profile" + rm -rf ${DIR}/../wso2/analytics + rm -rf ${DIR}/../wso2/components/analytics-default + rm -rf ${DIR}/analytics.bat + rm -rf ${DIR}/analytics.sh + + #remove integrator + echo "Removing IoT Other profiles" + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-key-manager ${DIR}/../wso2/components/http-gateway ${DIR}/../wso2/components/device-backend + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + cp -rf ${DIR}/../repository/resources/profiles/manager/* ${DIR}/../bin/ + rm -rf ${DIR}/../repository/deployment/server/webapps/* + rm -rf ${DIR}/../repository/deployment/server/axis2services/* + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* + rm -rf ${DIR}/../repository/deployment/server/carbonapps/* + + PROFILE="_device-manager" + +#Analytics profile +elif [ ${profileNumber} -eq 5 ] +then + echo "Preparing the Analytics profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/analytics-default/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove broker + echo "Removing Broker profile" + rm -rf ${DIR}/../wso2/broker + rm -rf ${DIR}/../wso2/components/broker-default + rm -rf ${DIR}/broker.bat + rm -rf ${DIR}/broker.sh + + #remove intergrator + echo "Removing IoT profiles" + rm -rf ${DIR}/../conf + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-backend ${DIR}/../wso2/components/device-key-manager ${DIR}/../wso2/components/device-manager ${DIR}/../wso2/components/http-gateway + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../modules + rm -rf ${DIR}/../dbscripts + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/../repository + rm -rf ${DIR}/../resources + rm -rf ${DIR}/../tmp + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + rm -rf ${DIR}/iot-server.bat + rm -rf ${DIR}/iot-server.sh + + echo "Copying configurations" + cp -rf ${DIR}/../wso2/analytics/repository/resources/profile/master-datasources.xml ${DIR}/../wso2/analytics/conf/datasources + + PROFILE="_analytics" + +elif [ ${profileNumber} -eq 6 ] +then + echo "Preparing the Broker profile distribution" + DEFAULT_BUNDLES="$(< ${DIR}/../wso2/components/broker-default/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info)" + #remove analytics + echo "Removing Analytics profile" + rm -rf ${DIR}/../wso2/analytics + rm -rf ${DIR}/../wso2/components/analytics-default + rm -rf ${DIR}/analytics.bat + rm -rf ${DIR}/analytics.sh + + #remove integrator + echo "Removing IoT profiles" + rm -rf ${DIR}/../conf + rm -rf ${DIR}/../wso2/components/default ${DIR}/../wso2/components/device-backend ${DIR}/../wso2/components/device-key-manager ${DIR}/../wso2/components/device-manager ${DIR}/../wso2/components/http-gateway + rm -rf ${DIR}/../samples/ + rm -rf ${DIR}/../modules + rm -rf ${DIR}/../dbscripts + rm -rf ${DIR}/../plugins + rm -rf ${DIR}/../repository + rm -rf ${DIR}/../resources + rm -rf ${DIR}/../tmp + rm -rf ${DIR}/profile-creator.sh + rm -rf ${DIR}/profile-creator.bat + rm -rf ${DIR}/iot-server.bat + rm -rf ${DIR}/iot-server.sh + + PROFILE="_broker" +else + echo "Invalid profile number. Terminating." + exit 3 +fi + + + +#remove unnecessary jar files +echo "Removing unnecessary jars from plugins folder." +mkdir -p ${DIR}/../wso2/components/tmp_plugins + +for BUNDLE in $DEFAULT_BUNDLES; do + IFS=',' read -a bundleArray <<< "$BUNDLE" + JAR=${bundleArray[0]}_${bundleArray[1]}.jar + cp ${DIR}/../wso2/components/plugins/${JAR} ${DIR}/../wso2/components/tmp_plugins +done + +rm -r ${DIR}/../wso2/components/plugins +mv ${DIR}/../wso2/components/tmp_plugins ${DIR}/../wso2/components/plugins + +echo "Preparing a profile distribution archive." +cd ${DIR}/../../ +zip -r ${DISTRIBUTION}${PROFILE}.zip ${DISTRIBUTION}/ + +echo "Profile creation completed successfully." +exit 0 diff --git a/modules/distribution/src/core/resources/profiles/backend/iot-server.bat b/modules/distribution/src/core/resources/profiles/backend/iot-server.bat new file mode 100644 index 00000000..fc200237 --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/backend/iot-server.bat @@ -0,0 +1,182 @@ +@echo off + +REM --------------------------------------------------------------------------- +REM Copyright 2005-2009 WSO2, Inc. http://www.wso2.org +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. + +rem --------------------------------------------------------------------------- +rem Main Script for WSO2 Carbon +rem +rem Environment Variable Prequisites +rem +rem CARBON_HOME Home of CARBON installation. If not set I will try +rem to figure it out. +rem +rem +rem JAVA_HOME Must point at your Java Development Kit installation. +rem +rem JAVA_OPTS (Optional) Java runtime options used when the commands +rem is executed. +rem --------------------------------------------------------------------------- + +rem ----- if JAVA_HOME is not set we're not happy ------------------------------ +:checkJava + +if "%JAVA_HOME%" == "" goto noJavaHome +if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome +goto checkServer + +:noJavaHome +echo "You must set the JAVA_HOME variable before running CARBON." +goto end + +rem ----- Only set CARBON_HOME if not already set ---------------------------- +:checkServer +rem %~sdp0 is expanded pathname of the current script under NT with spaces in the path removed +SET CARBON_HOME=%~sdp0.. +SET curDrive=%cd:~0,1% +SET wsasDrive=%CARBON_HOME:~0,1% +if not "%curDrive%" == "%wsasDrive%" %wsasDrive%: + +rem find CARBON_HOME if it does not exist due to either an invalid value passed +rem by the user or the %0 problem on Windows 9x +if not exist "%CARBON_HOME%\bin\version.txt" goto noServerHome + +set AXIS2_HOME=%CARBON_HOME% +goto updateClasspath + +:noServerHome +echo CARBON_HOME is set incorrectly or CARBON could not be located. Please set CARBON_HOME. +goto end + +rem ----- update classpath ----------------------------------------------------- +:updateClasspath + +setlocal EnableDelayedExpansion +cd %CARBON_HOME% +set CARBON_CLASSPATH= +FOR %%C in ("%CARBON_HOME%\bin\*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\bin\%%~nC%%~xC" + +set CARBON_CLASSPATH="%JAVA_HOME%\lib\tools.jar";%CARBON_CLASSPATH%; + +FOR %%D in ("%CARBON_HOME%\wso2\lib\commons-lang*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\lib\%%~nD%%~xD" + +rem ----- Process the input command ------------------------------------------- + +rem Slurp the command line arguments. This loop allows for an unlimited number +rem of arguments (up to the command line limit, anyway). + + +:setupArgs +if ""%1""=="""" goto doneStart + +if ""%1""==""-run"" goto commandLifecycle +if ""%1""==""--run"" goto commandLifecycle +if ""%1""==""run"" goto commandLifecycle + +if ""%1""==""-restart"" goto commandLifecycle +if ""%1""==""--restart"" goto commandLifecycle +if ""%1""==""restart"" goto commandLifecycle + +if ""%1""==""debug"" goto commandDebug +if ""%1""==""-debug"" goto commandDebug +if ""%1""==""--debug"" goto commandDebug + +if ""%1""==""version"" goto commandVersion +if ""%1""==""-version"" goto commandVersion +if ""%1""==""--version"" goto commandVersion + +shift +goto setupArgs + +rem ----- commandVersion ------------------------------------------------------- +:commandVersion +shift +type "%CARBON_HOME%\bin\version.txt" +type "%CARBON_HOME%\bin\wso2carbon-version.txt" +goto end + +rem ----- commandDebug --------------------------------------------------------- +:commandDebug +shift +set DEBUG_PORT=%1 +if "%DEBUG_PORT%"=="" goto noDebugPort +if not "%JAVA_OPTS%"=="" echo Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option. +set JAVA_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT% +echo Please start the remote debugging client to continue... +goto findJdk + +:noDebugPort +echo Please specify the debug port after the --debug option +goto end + +rem ----- commandLifecycle ----------------------------------------------------- +:commandLifecycle +goto findJdk + +:doneStart +if "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +rem ---------- Handle the SSL Issue with proper JDK version -------------------- +rem find the version of the jdk +:findJdk + +set CMD=RUN %* + +:checkJdk17 +"%JAVA_HOME%\bin\java" -version 2>&1 | findstr /r "1.[7|8]" >NUL +IF ERRORLEVEL 1 goto unknownJdk +goto jdk17 + +:unknownJdk +echo Starting WSO2 Carbon (in unsupported JDK) +echo [ERROR] CARBON is supported only on JDK 1.7 and 1.8 +goto jdk17 + +:jdk17 +goto runServer + +rem ----------------- Execute The Requested Command ---------------------------- + +:runServer +cd %CARBON_HOME% + +rem ------------------ Remove tmp folder on startup ----------------------------- +set TMP_DIR=%CARBON_HOME%\tmp +cd "%TMP_DIR%" +del *.* /s /q > nul +FOR /d %%G in ("*.*") DO rmdir %%G /s /q +cd .. + +rem ---------- Add jars to classpath ---------------- + +set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% + +set JAVA_ENDORSED=".\wso2\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" + +set profile=-Dprofile=device-backend + +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dlogger.server.name="IoT-Core" -Dcatalina.base="%CARBON_HOME%\wso2\lib\tomcat" -Djava.util.logging.config.file="%CARBON_HOME%\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcomponents.repo="%CARBON_HOME%\wso2\components\plugins" -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcarbon.components.dir.path="%CARBON_HOME%\wso2\components" -Dcarbon.extensions.dir.path="%CARBON_HOME%\extensions" -Dcarbon.dropins.dir.path="%CARBON_HOME%\dropins" -Dcarbon.external.lib.dir.path="%CARBON_HOME%\lib" -Dcarbon.patches.dir.path="%CARBON_HOME%\patches" -Dcarbon.servicepacks.dir.path="%CARBON_HOME%\servicepacks" -Dcarbon.internal.lib.dir.path="%CARBON_HOME%\wso2\lib" -Dconf.location="%CARBON_HOME%\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\wso2\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path=true -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dcom.ibm.cacheLocalHost=true -DworkerNode=false -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.port="9445" -Diot.manager.host="localhost" -Diot.manager.https.port="9443" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" -Diot.apimpublisher.host="localhost" -Diot.apimpublisher.https.port="9443" -Diot.apimstore.host="localhost" -Diot.apimstore.https.port="9443" %profile% +:runJava +echo JAVA_HOME environment variable is set to %JAVA_HOME% +echo CARBON_HOME environment variable is set to %CARBON_HOME% +"%JAVA_HOME%\bin\java" %CMD_LINE_ARGS% org.wso2.carbon.bootstrap.Bootstrap %CMD% +if "%ERRORLEVEL%"=="121" goto runJava +:end +goto endlocal + +:endlocal + +:END \ No newline at end of file diff --git a/modules/distribution/src/core/resources/profiles/backend/iot-server.sh b/modules/distribution/src/core/resources/profiles/backend/iot-server.sh new file mode 100755 index 00000000..e500c0d4 --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/backend/iot-server.sh @@ -0,0 +1,339 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Copyright 2005-2012 WSO2, Inc. http://www.wso2.org +# +# 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. + +# ---------------------------------------------------------------------------- +# Main Script for the WSO2 Carbon Server +# +# Environment Variable Prequisites +# +# CARBON_HOME Home of WSO2 Carbon installation. If not set I will try +# to figure it out. +# +# JAVA_HOME Must point at your Java Development Kit installation. +# +# JAVA_OPTS (Optional) Java runtime options used when the commands +# is executed. +# +# NOTE: Borrowed generously from Apache Tomcat startup scripts. +# ----------------------------------------------------------------------------- + +# OS specific support. $var _must_ be set to either true or false. +#ulimit -n 100000 + +cygwin=false; +darwin=false; +os400=false; +mingw=false; +case "`uname`" in +CYGWIN*) cygwin=true;; +MINGW*) mingw=true;; +OS400*) os400=true;; +Darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ]; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '.*/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +# Get standard environment variables +PRGDIR=`dirname "$PRG"` + +# Only set CARBON_HOME if not already set +[ -z "$CARBON_HOME" ] && CARBON_HOME=`cd "$PRGDIR/.." ; pwd` + +# Set AXIS2_HOME. Needed for One Click JAR Download +AXIS2_HOME=$CARBON_HOME + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CARBON_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` + [ -n "$AXIS2_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` +fi + +# For OS400 +if $os400; then + # Set job priority to standard for interactive (interactive - 6) by using + # the interactive priority - 6, the helper threads that respond to requests + # will be running at the same priority as interactive jobs. + COMMAND='chgjob job('$JOBNAME') runpty(6)' + system $COMMAND + + # Enable multi threading + QIBM_MULTI_THREADED=Y + export QIBM_MULTI_THREADED +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$CARBON_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + [ -n "$AXIS2_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " CARBON cannot execute $JAVACMD" + exit 1 +fi + +# if JAVA_HOME is not set we're not happy +if [ -z "$JAVA_HOME" ]; then + echo "You must set the JAVA_HOME variable before running CARBON." + exit 1 +fi + +if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + PID=`cat "$CARBON_HOME"/wso2carbon.pid` +fi + +# ----- Process the input command ---------------------------------------------- +args="" +for c in $* +do + if [ "$c" = "--debug" ] || [ "$c" = "-debug" ] || [ "$c" = "debug" ]; then + CMD="--debug" + continue + elif [ "$CMD" = "--debug" ]; then + if [ -z "$PORT" ]; then + PORT=$c + fi + elif [ "$c" = "--stop" ] || [ "$c" = "-stop" ] || [ "$c" = "stop" ]; then + CMD="stop" + elif [ "$c" = "--start" ] || [ "$c" = "-start" ] || [ "$c" = "start" ]; then + CMD="start" + elif [ "$c" = "--version" ] || [ "$c" = "-version" ] || [ "$c" = "version" ]; then + CMD="version" + elif [ "$c" = "--restart" ] || [ "$c" = "-restart" ] || [ "$c" = "restart" ]; then + CMD="restart" + elif [ "$c" = "--test" ] || [ "$c" = "-test" ] || [ "$c" = "test" ]; then + CMD="test" + else + args="$args $c" + fi +done + +if [ "$CMD" = "--debug" ]; then + if [ "$PORT" = "" ]; then + echo " Please specify the debug port after the --debug option" + exit 1 + fi + if [ -n "$JAVA_OPTS" ]; then + echo "Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option." + fi + CMD="RUN" + JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$PORT" + echo "Please start the remote debugging client to continue..." +elif [ "$CMD" = "start" ]; then + if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + if ps -p $PID > /dev/null ; then + echo "Process is already running" + exit 0 + fi + fi + export CARBON_HOME=$CARBON_HOME +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "stop" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + exit 0 +elif [ "$CMD" = "restart" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + process_status=0 + pid=`cat $CARBON_HOME/wso2carbon.pid` + while [ "$process_status" -eq "0" ] + do + sleep 1; + ps -p$pid 2>&1 > /dev/null + process_status=$? + done + +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "test" ]; then + JAVACMD="exec "$JAVACMD"" +elif [ "$CMD" = "version" ]; then + cat $CARBON_HOME/bin/version.txt + cat $CARBON_HOME/bin/wso2carbon-version.txt + exit 0 +fi + +# ---------- Handle the SSL Issue with proper JDK version -------------------- +jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` +if [ "$jdk_17" = "" ]; then + echo " Starting WSO2 Carbon (in unsupported JDK)" + echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +fi + +CARBON_XBOOTCLASSPATH="" +for f in "$CARBON_HOME"/wso2/lib/xboot/*.jar +do + if [ "$f" != "$CARBON_HOME/wso2/lib/xboot/*.jar" ];then + CARBON_XBOOTCLASSPATH="$CARBON_XBOOTCLASSPATH":$f + fi +done + +JAVA_ENDORSED_DIRS="$CARBON_HOME/wso2/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/wso2/lib/endorsed" + +CARBON_CLASSPATH="" +if [ -e "$JAVA_HOME/lib/tools.jar" ]; then + CARBON_CLASSPATH="$JAVA_HOME/lib/tools.jar" +fi +for f in "$CARBON_HOME"/bin/*.jar +do + if [ "$f" != "$CARBON_HOME/bin/*.jar" ];then + CARBON_CLASSPATH="$CARBON_CLASSPATH":$f + fi +done +for t in "$CARBON_HOME"/wso2/lib/commons-lang*.jar +do + CARBON_CLASSPATH="$CARBON_CLASSPATH":$t +done +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` + CARBON_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + AXIS2_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` + CARBON_CLASSPATH=`cygpath --path --windows "$CARBON_CLASSPATH"` + CARBON_XBOOTCLASSPATH=`cygpath --path --windows "$CARBON_XBOOTCLASSPATH"` +fi + +# ----- Execute The Requested Command ----------------------------------------- + +echo JAVA_HOME environment variable is set to $JAVA_HOME +echo CARBON_HOME environment variable is set to $CARBON_HOME + +cd "$CARBON_HOME" + +TMP_DIR=$CARBON_HOME/tmp +if [ -d "$TMP_DIR" ]; then +rm -rf "$TMP_DIR" +fi + +START_EXIT_STATUS=121 +status=$START_EXIT_STATUS + +#setting up profile parameter for runtime http-gateway +NODE_PARAMS="-Dprofile=device-backend" + +#To monitor a Carbon server in remote JMX mode on linux host machines, set the below system property. +# -Djava.rmi.server.hostname="your.IP.goes.here" + +while [ "$status" = "$START_EXIT_STATUS" ] +do + $JAVACMD \ + -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ + -Xms256m -Xmx1024m -XX:MaxPermSize=512m \ + -XX:+HeapDumpOnOutOfMemoryError \ + -XX:HeapDumpPath="$CARBON_HOME/repository/logs/heap-dump.hprof" \ + $JAVA_OPTS \ + -Dcom.sun.management.jmxremote \ + -classpath "$CARBON_CLASSPATH" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CARBON_HOME/wso2/tmp" \ + -Dcatalina.base="$CARBON_HOME/wso2/lib/tomcat" \ + -Dwso2.server.standalone=true \ + -Dcarbon.registry.root=/ \ + -Djava.command="$JAVACMD" \ + -Dcarbon.home="$CARBON_HOME" \ + -Dlogger.server.name="IoT-Core" \ + -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ + -Dcarbon.config.dir.path="$CARBON_HOME/conf" \ + -Dcarbon.components.dir.path="$CARBON_HOME/wso2/components" \ + -Dcarbon.dropins.dir.path="$CARBON_HOME/dropins" \ + -Dcarbon.external.lib.dir.path="$CARBON_HOME/lib" \ + -Dcarbon.patches.dir.path="$CARBON_HOME/patches" \ + -Dcarbon.servicepacks.dir.path="$CARBON_HOME/servicepacks" \ + -Dcarbon.internal.lib.dir.path="$CARBON_HOME/wso2/lib" \ + -Djava.util.logging.config.file="$CARBON_HOME/conf/etc/logging-bridge.properties" \ + -Dcomponents.repo="$CARBON_HOME/wso2/components/plugins" \ + -Dconf.location="$CARBON_HOME/conf"\ + -Dcom.atomikos.icatch.file="$CARBON_HOME/wso2/lib/transactions.properties" \ + -Dcom.atomikos.icatch.hide_init_file_path=true \ + -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \ + -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true \ + -Dcom.sun.jndi.ldap.connect.pool.authentication=simple \ + -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 \ + -Dorg.terracotta.quartz.skipUpdateCheck=true \ + -Djava.security.egd=file:/dev/./urandom \ + -Dfile.encoding=UTF8 \ + -Djava.net.preferIPv4Stack=true \ + -Dcom.ibm.cacheLocalHost=true \ + -DworkerNode=false \ + -Dorg.wso2.ignoreHostnameVerification=true \ + -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ + -Diot.analytics.host="localhost" \ + -Diot.analytics.https.port="9445" \ + -Diot.manager.host="localhost" \ + -Diot.manager.https.port="9443" \ + -Dmqtt.broker.host="localhost" \ + -Dmqtt.broker.port="1886" \ + -Diot.core.host="localhost" \ + -Diot.core.https.port="9443" \ + -Diot.keymanager.host="localhost" \ + -Diot.keymanager.https.port="9443" \ + -Diot.gateway.host="localhost" \ + -Diot.gateway.https.port="8243" \ + -Diot.gateway.http.port="8280" \ + -Diot.apimpublisher.host="localhost" \ + -Diot.apimpublisher.https.port="9443" \ + -Diot.apimstore.host="localhost" \ + -Diot.apimstore.https.port="9443" \ + $NODE_PARAMS \ + org.wso2.carbon.bootstrap.Bootstrap $* + status=$? +done diff --git a/modules/distribution/src/core/resources/profiles/gateway/iot-server.bat b/modules/distribution/src/core/resources/profiles/gateway/iot-server.bat new file mode 100644 index 00000000..72d30681 --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/gateway/iot-server.bat @@ -0,0 +1,182 @@ +@echo off + +REM --------------------------------------------------------------------------- +REM Copyright 2005-2009 WSO2, Inc. http://www.wso2.org +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. + +rem --------------------------------------------------------------------------- +rem Main Script for WSO2 Carbon +rem +rem Environment Variable Prequisites +rem +rem CARBON_HOME Home of CARBON installation. If not set I will try +rem to figure it out. +rem +rem +rem JAVA_HOME Must point at your Java Development Kit installation. +rem +rem JAVA_OPTS (Optional) Java runtime options used when the commands +rem is executed. +rem --------------------------------------------------------------------------- + +rem ----- if JAVA_HOME is not set we're not happy ------------------------------ +:checkJava + +if "%JAVA_HOME%" == "" goto noJavaHome +if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome +goto checkServer + +:noJavaHome +echo "You must set the JAVA_HOME variable before running CARBON." +goto end + +rem ----- Only set CARBON_HOME if not already set ---------------------------- +:checkServer +rem %~sdp0 is expanded pathname of the current script under NT with spaces in the path removed +SET CARBON_HOME=%~sdp0.. +SET curDrive=%cd:~0,1% +SET wsasDrive=%CARBON_HOME:~0,1% +if not "%curDrive%" == "%wsasDrive%" %wsasDrive%: + +rem find CARBON_HOME if it does not exist due to either an invalid value passed +rem by the user or the %0 problem on Windows 9x +if not exist "%CARBON_HOME%\bin\version.txt" goto noServerHome + +set AXIS2_HOME=%CARBON_HOME% +goto updateClasspath + +:noServerHome +echo CARBON_HOME is set incorrectly or CARBON could not be located. Please set CARBON_HOME. +goto end + +rem ----- update classpath ----------------------------------------------------- +:updateClasspath + +setlocal EnableDelayedExpansion +cd %CARBON_HOME% +set CARBON_CLASSPATH= +FOR %%C in ("%CARBON_HOME%\bin\*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\bin\%%~nC%%~xC" + +set CARBON_CLASSPATH="%JAVA_HOME%\lib\tools.jar";%CARBON_CLASSPATH%; + +FOR %%D in ("%CARBON_HOME%\wso2\lib\commons-lang*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\lib\%%~nD%%~xD" + +rem ----- Process the input command ------------------------------------------- + +rem Slurp the command line arguments. This loop allows for an unlimited number +rem of arguments (up to the command line limit, anyway). + + +:setupArgs +if ""%1""=="""" goto doneStart + +if ""%1""==""-run"" goto commandLifecycle +if ""%1""==""--run"" goto commandLifecycle +if ""%1""==""run"" goto commandLifecycle + +if ""%1""==""-restart"" goto commandLifecycle +if ""%1""==""--restart"" goto commandLifecycle +if ""%1""==""restart"" goto commandLifecycle + +if ""%1""==""debug"" goto commandDebug +if ""%1""==""-debug"" goto commandDebug +if ""%1""==""--debug"" goto commandDebug + +if ""%1""==""version"" goto commandVersion +if ""%1""==""-version"" goto commandVersion +if ""%1""==""--version"" goto commandVersion + +shift +goto setupArgs + +rem ----- commandVersion ------------------------------------------------------- +:commandVersion +shift +type "%CARBON_HOME%\bin\version.txt" +type "%CARBON_HOME%\bin\wso2carbon-version.txt" +goto end + +rem ----- commandDebug --------------------------------------------------------- +:commandDebug +shift +set DEBUG_PORT=%1 +if "%DEBUG_PORT%"=="" goto noDebugPort +if not "%JAVA_OPTS%"=="" echo Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option. +set JAVA_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT% +echo Please start the remote debugging client to continue... +goto findJdk + +:noDebugPort +echo Please specify the debug port after the --debug option +goto end + +rem ----- commandLifecycle ----------------------------------------------------- +:commandLifecycle +goto findJdk + +:doneStart +if "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +rem ---------- Handle the SSL Issue with proper JDK version -------------------- +rem find the version of the jdk +:findJdk + +set CMD=RUN %* + +:checkJdk17 +"%JAVA_HOME%\bin\java" -version 2>&1 | findstr /r "1.[7|8]" >NUL +IF ERRORLEVEL 1 goto unknownJdk +goto jdk17 + +:unknownJdk +echo Starting WSO2 Carbon (in unsupported JDK) +echo [ERROR] CARBON is supported only on JDK 1.7 and 1.8 +goto jdk17 + +:jdk17 +goto runServer + +rem ----------------- Execute The Requested Command ---------------------------- + +:runServer +cd %CARBON_HOME% + +rem ------------------ Remove tmp folder on startup ----------------------------- +set TMP_DIR=%CARBON_HOME%\tmp +cd "%TMP_DIR%" +del *.* /s /q > nul +FOR /d %%G in ("*.*") DO rmdir %%G /s /q +cd .. + +rem ---------- Add jars to classpath ---------------- + +set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% + +set JAVA_ENDORSED=".\wso2\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" + +set profile=-Dprofile=http-gateway + +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dlogger.server.name="IoT-Core" -Dcatalina.base="%CARBON_HOME%\wso2\lib\tomcat" -Djava.util.logging.config.file="%CARBON_HOME%\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcomponents.repo="%CARBON_HOME%\wso2\components\plugins" -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcarbon.components.dir.path="%CARBON_HOME%\wso2\components" -Dcarbon.extensions.dir.path="%CARBON_HOME%\extensions" -Dcarbon.dropins.dir.path="%CARBON_HOME%\dropins" -Dcarbon.external.lib.dir.path="%CARBON_HOME%\lib" -Dcarbon.patches.dir.path="%CARBON_HOME%\patches" -Dcarbon.servicepacks.dir.path="%CARBON_HOME%\servicepacks" -Dcarbon.internal.lib.dir.path="%CARBON_HOME%\wso2\lib" -Dconf.location="%CARBON_HOME%\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\wso2\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path=true -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dcom.ibm.cacheLocalHost=true -DworkerNode=false -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.port="9445" -Diot.manager.host="localhost" -Diot.manager.https.port="9443" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" -Diot.apimpublisher.host="localhost" -Diot.apimpublisher.https.port="9443" -Diot.apimstore.host="localhost" -Diot.apimstore.https.port="9443" %profile% +:runJava +echo JAVA_HOME environment variable is set to %JAVA_HOME% +echo CARBON_HOME environment variable is set to %CARBON_HOME% +"%JAVA_HOME%\bin\java" %CMD_LINE_ARGS% org.wso2.carbon.bootstrap.Bootstrap %CMD% +if "%ERRORLEVEL%"=="121" goto runJava +:end +goto endlocal + +:endlocal + +:END \ No newline at end of file diff --git a/modules/distribution/src/core/resources/profiles/gateway/iot-server.sh b/modules/distribution/src/core/resources/profiles/gateway/iot-server.sh new file mode 100755 index 00000000..d936025e --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/gateway/iot-server.sh @@ -0,0 +1,339 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Copyright 2005-2012 WSO2, Inc. http://www.wso2.org +# +# 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. + +# ---------------------------------------------------------------------------- +# Main Script for the WSO2 Carbon Server +# +# Environment Variable Prequisites +# +# CARBON_HOME Home of WSO2 Carbon installation. If not set I will try +# to figure it out. +# +# JAVA_HOME Must point at your Java Development Kit installation. +# +# JAVA_OPTS (Optional) Java runtime options used when the commands +# is executed. +# +# NOTE: Borrowed generously from Apache Tomcat startup scripts. +# ----------------------------------------------------------------------------- + +# OS specific support. $var _must_ be set to either true or false. +#ulimit -n 100000 + +cygwin=false; +darwin=false; +os400=false; +mingw=false; +case "`uname`" in +CYGWIN*) cygwin=true;; +MINGW*) mingw=true;; +OS400*) os400=true;; +Darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ]; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '.*/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +# Get standard environment variables +PRGDIR=`dirname "$PRG"` + +# Only set CARBON_HOME if not already set +[ -z "$CARBON_HOME" ] && CARBON_HOME=`cd "$PRGDIR/.." ; pwd` + +# Set AXIS2_HOME. Needed for One Click JAR Download +AXIS2_HOME=$CARBON_HOME + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CARBON_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` + [ -n "$AXIS2_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` +fi + +# For OS400 +if $os400; then + # Set job priority to standard for interactive (interactive - 6) by using + # the interactive priority - 6, the helper threads that respond to requests + # will be running at the same priority as interactive jobs. + COMMAND='chgjob job('$JOBNAME') runpty(6)' + system $COMMAND + + # Enable multi threading + QIBM_MULTI_THREADED=Y + export QIBM_MULTI_THREADED +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$CARBON_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + [ -n "$AXIS2_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " CARBON cannot execute $JAVACMD" + exit 1 +fi + +# if JAVA_HOME is not set we're not happy +if [ -z "$JAVA_HOME" ]; then + echo "You must set the JAVA_HOME variable before running CARBON." + exit 1 +fi + +if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + PID=`cat "$CARBON_HOME"/wso2carbon.pid` +fi + +# ----- Process the input command ---------------------------------------------- +args="" +for c in $* +do + if [ "$c" = "--debug" ] || [ "$c" = "-debug" ] || [ "$c" = "debug" ]; then + CMD="--debug" + continue + elif [ "$CMD" = "--debug" ]; then + if [ -z "$PORT" ]; then + PORT=$c + fi + elif [ "$c" = "--stop" ] || [ "$c" = "-stop" ] || [ "$c" = "stop" ]; then + CMD="stop" + elif [ "$c" = "--start" ] || [ "$c" = "-start" ] || [ "$c" = "start" ]; then + CMD="start" + elif [ "$c" = "--version" ] || [ "$c" = "-version" ] || [ "$c" = "version" ]; then + CMD="version" + elif [ "$c" = "--restart" ] || [ "$c" = "-restart" ] || [ "$c" = "restart" ]; then + CMD="restart" + elif [ "$c" = "--test" ] || [ "$c" = "-test" ] || [ "$c" = "test" ]; then + CMD="test" + else + args="$args $c" + fi +done + +if [ "$CMD" = "--debug" ]; then + if [ "$PORT" = "" ]; then + echo " Please specify the debug port after the --debug option" + exit 1 + fi + if [ -n "$JAVA_OPTS" ]; then + echo "Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option." + fi + CMD="RUN" + JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$PORT" + echo "Please start the remote debugging client to continue..." +elif [ "$CMD" = "start" ]; then + if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + if ps -p $PID > /dev/null ; then + echo "Process is already running" + exit 0 + fi + fi + export CARBON_HOME=$CARBON_HOME +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "stop" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + exit 0 +elif [ "$CMD" = "restart" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + process_status=0 + pid=`cat $CARBON_HOME/wso2carbon.pid` + while [ "$process_status" -eq "0" ] + do + sleep 1; + ps -p$pid 2>&1 > /dev/null + process_status=$? + done + +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "test" ]; then + JAVACMD="exec "$JAVACMD"" +elif [ "$CMD" = "version" ]; then + cat $CARBON_HOME/bin/version.txt + cat $CARBON_HOME/bin/wso2carbon-version.txt + exit 0 +fi + +# ---------- Handle the SSL Issue with proper JDK version -------------------- +jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` +if [ "$jdk_17" = "" ]; then + echo " Starting WSO2 Carbon (in unsupported JDK)" + echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +fi + +CARBON_XBOOTCLASSPATH="" +for f in "$CARBON_HOME"/wso2/lib/xboot/*.jar +do + if [ "$f" != "$CARBON_HOME/wso2/lib/xboot/*.jar" ];then + CARBON_XBOOTCLASSPATH="$CARBON_XBOOTCLASSPATH":$f + fi +done + +JAVA_ENDORSED_DIRS="$CARBON_HOME/wso2/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/wso2/lib/endorsed" + +CARBON_CLASSPATH="" +if [ -e "$JAVA_HOME/lib/tools.jar" ]; then + CARBON_CLASSPATH="$JAVA_HOME/lib/tools.jar" +fi +for f in "$CARBON_HOME"/bin/*.jar +do + if [ "$f" != "$CARBON_HOME/bin/*.jar" ];then + CARBON_CLASSPATH="$CARBON_CLASSPATH":$f + fi +done +for t in "$CARBON_HOME"/wso2/lib/commons-lang*.jar +do + CARBON_CLASSPATH="$CARBON_CLASSPATH":$t +done +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` + CARBON_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + AXIS2_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` + CARBON_CLASSPATH=`cygpath --path --windows "$CARBON_CLASSPATH"` + CARBON_XBOOTCLASSPATH=`cygpath --path --windows "$CARBON_XBOOTCLASSPATH"` +fi + +# ----- Execute The Requested Command ----------------------------------------- + +echo JAVA_HOME environment variable is set to $JAVA_HOME +echo CARBON_HOME environment variable is set to $CARBON_HOME + +cd "$CARBON_HOME" + +TMP_DIR=$CARBON_HOME/tmp +if [ -d "$TMP_DIR" ]; then +rm -rf "$TMP_DIR" +fi + +START_EXIT_STATUS=121 +status=$START_EXIT_STATUS + +#setting up profile parameter for runtime http-gateway +NODE_PARAMS="-Dprofile=http-gateway" + +#To monitor a Carbon server in remote JMX mode on linux host machines, set the below system property. +# -Djava.rmi.server.hostname="your.IP.goes.here" + +while [ "$status" = "$START_EXIT_STATUS" ] +do + $JAVACMD \ + -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ + -Xms256m -Xmx1024m -XX:MaxPermSize=512m \ + -XX:+HeapDumpOnOutOfMemoryError \ + -XX:HeapDumpPath="$CARBON_HOME/repository/logs/heap-dump.hprof" \ + $JAVA_OPTS \ + -Dcom.sun.management.jmxremote \ + -classpath "$CARBON_CLASSPATH" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CARBON_HOME/wso2/tmp" \ + -Dcatalina.base="$CARBON_HOME/wso2/lib/tomcat" \ + -Dwso2.server.standalone=true \ + -Dcarbon.registry.root=/ \ + -Djava.command="$JAVACMD" \ + -Dcarbon.home="$CARBON_HOME" \ + -Dlogger.server.name="IoT-Core" \ + -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ + -Dcarbon.config.dir.path="$CARBON_HOME/conf" \ + -Dcarbon.components.dir.path="$CARBON_HOME/wso2/components" \ + -Dcarbon.dropins.dir.path="$CARBON_HOME/dropins" \ + -Dcarbon.external.lib.dir.path="$CARBON_HOME/lib" \ + -Dcarbon.patches.dir.path="$CARBON_HOME/patches" \ + -Dcarbon.servicepacks.dir.path="$CARBON_HOME/servicepacks" \ + -Dcarbon.internal.lib.dir.path="$CARBON_HOME/wso2/lib" \ + -Djava.util.logging.config.file="$CARBON_HOME/conf/etc/logging-bridge.properties" \ + -Dcomponents.repo="$CARBON_HOME/wso2/components/plugins" \ + -Dconf.location="$CARBON_HOME/conf"\ + -Dcom.atomikos.icatch.file="$CARBON_HOME/wso2/lib/transactions.properties" \ + -Dcom.atomikos.icatch.hide_init_file_path=true \ + -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \ + -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true \ + -Dcom.sun.jndi.ldap.connect.pool.authentication=simple \ + -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 \ + -Dorg.terracotta.quartz.skipUpdateCheck=true \ + -Djava.security.egd=file:/dev/./urandom \ + -Dfile.encoding=UTF8 \ + -Djava.net.preferIPv4Stack=true \ + -Dcom.ibm.cacheLocalHost=true \ + -DworkerNode=false \ + -Dorg.wso2.ignoreHostnameVerification=true \ + -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ + -Diot.analytics.host="localhost" \ + -Diot.analytics.https.port="9445" \ + -Diot.manager.host="localhost" \ + -Diot.manager.https.port="9443" \ + -Dmqtt.broker.host="localhost" \ + -Dmqtt.broker.port="1886" \ + -Diot.core.host="localhost" \ + -Diot.core.https.port="9443" \ + -Diot.keymanager.host="localhost" \ + -Diot.keymanager.https.port="9443" \ + -Diot.gateway.host="localhost" \ + -Diot.gateway.https.port="8243" \ + -Diot.gateway.http.port="8280" \ + -Diot.apimpublisher.host="localhost" \ + -Diot.apimpublisher.https.port="9443" \ + -Diot.apimstore.host="localhost" \ + -Diot.apimstore.https.port="9443" \ + $NODE_PARAMS \ + org.wso2.carbon.bootstrap.Bootstrap $* + status=$? +done diff --git a/modules/distribution/src/core/resources/profiles/keymanager/iot-server.bat b/modules/distribution/src/core/resources/profiles/keymanager/iot-server.bat new file mode 100644 index 00000000..3105ae6b --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/keymanager/iot-server.bat @@ -0,0 +1,182 @@ +@echo off + +REM --------------------------------------------------------------------------- +REM Copyright 2005-2009 WSO2, Inc. http://www.wso2.org +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. + +rem --------------------------------------------------------------------------- +rem Main Script for WSO2 Carbon +rem +rem Environment Variable Prequisites +rem +rem CARBON_HOME Home of CARBON installation. If not set I will try +rem to figure it out. +rem +rem +rem JAVA_HOME Must point at your Java Development Kit installation. +rem +rem JAVA_OPTS (Optional) Java runtime options used when the commands +rem is executed. +rem --------------------------------------------------------------------------- + +rem ----- if JAVA_HOME is not set we're not happy ------------------------------ +:checkJava + +if "%JAVA_HOME%" == "" goto noJavaHome +if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome +goto checkServer + +:noJavaHome +echo "You must set the JAVA_HOME variable before running CARBON." +goto end + +rem ----- Only set CARBON_HOME if not already set ---------------------------- +:checkServer +rem %~sdp0 is expanded pathname of the current script under NT with spaces in the path removed +SET CARBON_HOME=%~sdp0.. +SET curDrive=%cd:~0,1% +SET wsasDrive=%CARBON_HOME:~0,1% +if not "%curDrive%" == "%wsasDrive%" %wsasDrive%: + +rem find CARBON_HOME if it does not exist due to either an invalid value passed +rem by the user or the %0 problem on Windows 9x +if not exist "%CARBON_HOME%\bin\version.txt" goto noServerHome + +set AXIS2_HOME=%CARBON_HOME% +goto updateClasspath + +:noServerHome +echo CARBON_HOME is set incorrectly or CARBON could not be located. Please set CARBON_HOME. +goto end + +rem ----- update classpath ----------------------------------------------------- +:updateClasspath + +setlocal EnableDelayedExpansion +cd %CARBON_HOME% +set CARBON_CLASSPATH= +FOR %%C in ("%CARBON_HOME%\bin\*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\bin\%%~nC%%~xC" + +set CARBON_CLASSPATH="%JAVA_HOME%\lib\tools.jar";%CARBON_CLASSPATH%; + +FOR %%D in ("%CARBON_HOME%\wso2\lib\commons-lang*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\lib\%%~nD%%~xD" + +rem ----- Process the input command ------------------------------------------- + +rem Slurp the command line arguments. This loop allows for an unlimited number +rem of arguments (up to the command line limit, anyway). + + +:setupArgs +if ""%1""=="""" goto doneStart + +if ""%1""==""-run"" goto commandLifecycle +if ""%1""==""--run"" goto commandLifecycle +if ""%1""==""run"" goto commandLifecycle + +if ""%1""==""-restart"" goto commandLifecycle +if ""%1""==""--restart"" goto commandLifecycle +if ""%1""==""restart"" goto commandLifecycle + +if ""%1""==""debug"" goto commandDebug +if ""%1""==""-debug"" goto commandDebug +if ""%1""==""--debug"" goto commandDebug + +if ""%1""==""version"" goto commandVersion +if ""%1""==""-version"" goto commandVersion +if ""%1""==""--version"" goto commandVersion + +shift +goto setupArgs + +rem ----- commandVersion ------------------------------------------------------- +:commandVersion +shift +type "%CARBON_HOME%\bin\version.txt" +type "%CARBON_HOME%\bin\wso2carbon-version.txt" +goto end + +rem ----- commandDebug --------------------------------------------------------- +:commandDebug +shift +set DEBUG_PORT=%1 +if "%DEBUG_PORT%"=="" goto noDebugPort +if not "%JAVA_OPTS%"=="" echo Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option. +set JAVA_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT% +echo Please start the remote debugging client to continue... +goto findJdk + +:noDebugPort +echo Please specify the debug port after the --debug option +goto end + +rem ----- commandLifecycle ----------------------------------------------------- +:commandLifecycle +goto findJdk + +:doneStart +if "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +rem ---------- Handle the SSL Issue with proper JDK version -------------------- +rem find the version of the jdk +:findJdk + +set CMD=RUN %* + +:checkJdk17 +"%JAVA_HOME%\bin\java" -version 2>&1 | findstr /r "1.[7|8]" >NUL +IF ERRORLEVEL 1 goto unknownJdk +goto jdk17 + +:unknownJdk +echo Starting WSO2 Carbon (in unsupported JDK) +echo [ERROR] CARBON is supported only on JDK 1.7 and 1.8 +goto jdk17 + +:jdk17 +goto runServer + +rem ----------------- Execute The Requested Command ---------------------------- + +:runServer +cd %CARBON_HOME% + +rem ------------------ Remove tmp folder on startup ----------------------------- +set TMP_DIR=%CARBON_HOME%\tmp +cd "%TMP_DIR%" +del *.* /s /q > nul +FOR /d %%G in ("*.*") DO rmdir %%G /s /q +cd .. + +rem ---------- Add jars to classpath ---------------- + +set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% + +set JAVA_ENDORSED=".\wso2\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" + +set profile=-Dprofile=device-key-manager + +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dlogger.server.name="IoT-Core" -Dcatalina.base="%CARBON_HOME%\wso2\lib\tomcat" -Djava.util.logging.config.file="%CARBON_HOME%\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcomponents.repo="%CARBON_HOME%\wso2\components\plugins" -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcarbon.components.dir.path="%CARBON_HOME%\wso2\components" -Dcarbon.extensions.dir.path="%CARBON_HOME%\extensions" -Dcarbon.dropins.dir.path="%CARBON_HOME%\dropins" -Dcarbon.external.lib.dir.path="%CARBON_HOME%\lib" -Dcarbon.patches.dir.path="%CARBON_HOME%\patches" -Dcarbon.servicepacks.dir.path="%CARBON_HOME%\servicepacks" -Dcarbon.internal.lib.dir.path="%CARBON_HOME%\wso2\lib" -Dconf.location="%CARBON_HOME%\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\wso2\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path=true -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dcom.ibm.cacheLocalHost=true -DworkerNode=false -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.port="9445" -Diot.manager.host="localhost" -Diot.manager.https.port="9443" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" -Diot.apimpublisher.host="localhost" -Diot.apimpublisher.https.port="9443" -Diot.apimstore.host="localhost" -Diot.apimstore.https.port="9443" %profile% +:runJava +echo JAVA_HOME environment variable is set to %JAVA_HOME% +echo CARBON_HOME environment variable is set to %CARBON_HOME% +"%JAVA_HOME%\bin\java" %CMD_LINE_ARGS% org.wso2.carbon.bootstrap.Bootstrap %CMD% +if "%ERRORLEVEL%"=="121" goto runJava +:end +goto endlocal + +:endlocal + +:END \ No newline at end of file diff --git a/modules/distribution/src/core/resources/profiles/keymanager/iot-server.sh b/modules/distribution/src/core/resources/profiles/keymanager/iot-server.sh new file mode 100755 index 00000000..daddb52b --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/keymanager/iot-server.sh @@ -0,0 +1,339 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Copyright 2005-2012 WSO2, Inc. http://www.wso2.org +# +# 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. + +# ---------------------------------------------------------------------------- +# Main Script for the WSO2 Carbon Server +# +# Environment Variable Prequisites +# +# CARBON_HOME Home of WSO2 Carbon installation. If not set I will try +# to figure it out. +# +# JAVA_HOME Must point at your Java Development Kit installation. +# +# JAVA_OPTS (Optional) Java runtime options used when the commands +# is executed. +# +# NOTE: Borrowed generously from Apache Tomcat startup scripts. +# ----------------------------------------------------------------------------- + +# OS specific support. $var _must_ be set to either true or false. +#ulimit -n 100000 + +cygwin=false; +darwin=false; +os400=false; +mingw=false; +case "`uname`" in +CYGWIN*) cygwin=true;; +MINGW*) mingw=true;; +OS400*) os400=true;; +Darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ]; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '.*/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +# Get standard environment variables +PRGDIR=`dirname "$PRG"` + +# Only set CARBON_HOME if not already set +[ -z "$CARBON_HOME" ] && CARBON_HOME=`cd "$PRGDIR/.." ; pwd` + +# Set AXIS2_HOME. Needed for One Click JAR Download +AXIS2_HOME=$CARBON_HOME + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CARBON_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` + [ -n "$AXIS2_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` +fi + +# For OS400 +if $os400; then + # Set job priority to standard for interactive (interactive - 6) by using + # the interactive priority - 6, the helper threads that respond to requests + # will be running at the same priority as interactive jobs. + COMMAND='chgjob job('$JOBNAME') runpty(6)' + system $COMMAND + + # Enable multi threading + QIBM_MULTI_THREADED=Y + export QIBM_MULTI_THREADED +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$CARBON_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + [ -n "$AXIS2_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " CARBON cannot execute $JAVACMD" + exit 1 +fi + +# if JAVA_HOME is not set we're not happy +if [ -z "$JAVA_HOME" ]; then + echo "You must set the JAVA_HOME variable before running CARBON." + exit 1 +fi + +if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + PID=`cat "$CARBON_HOME"/wso2carbon.pid` +fi + +# ----- Process the input command ---------------------------------------------- +args="" +for c in $* +do + if [ "$c" = "--debug" ] || [ "$c" = "-debug" ] || [ "$c" = "debug" ]; then + CMD="--debug" + continue + elif [ "$CMD" = "--debug" ]; then + if [ -z "$PORT" ]; then + PORT=$c + fi + elif [ "$c" = "--stop" ] || [ "$c" = "-stop" ] || [ "$c" = "stop" ]; then + CMD="stop" + elif [ "$c" = "--start" ] || [ "$c" = "-start" ] || [ "$c" = "start" ]; then + CMD="start" + elif [ "$c" = "--version" ] || [ "$c" = "-version" ] || [ "$c" = "version" ]; then + CMD="version" + elif [ "$c" = "--restart" ] || [ "$c" = "-restart" ] || [ "$c" = "restart" ]; then + CMD="restart" + elif [ "$c" = "--test" ] || [ "$c" = "-test" ] || [ "$c" = "test" ]; then + CMD="test" + else + args="$args $c" + fi +done + +if [ "$CMD" = "--debug" ]; then + if [ "$PORT" = "" ]; then + echo " Please specify the debug port after the --debug option" + exit 1 + fi + if [ -n "$JAVA_OPTS" ]; then + echo "Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option." + fi + CMD="RUN" + JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$PORT" + echo "Please start the remote debugging client to continue..." +elif [ "$CMD" = "start" ]; then + if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + if ps -p $PID > /dev/null ; then + echo "Process is already running" + exit 0 + fi + fi + export CARBON_HOME=$CARBON_HOME +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "stop" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + exit 0 +elif [ "$CMD" = "restart" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + process_status=0 + pid=`cat $CARBON_HOME/wso2carbon.pid` + while [ "$process_status" -eq "0" ] + do + sleep 1; + ps -p$pid 2>&1 > /dev/null + process_status=$? + done + +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "test" ]; then + JAVACMD="exec "$JAVACMD"" +elif [ "$CMD" = "version" ]; then + cat $CARBON_HOME/bin/version.txt + cat $CARBON_HOME/bin/wso2carbon-version.txt + exit 0 +fi + +# ---------- Handle the SSL Issue with proper JDK version -------------------- +jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` +if [ "$jdk_17" = "" ]; then + echo " Starting WSO2 Carbon (in unsupported JDK)" + echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +fi + +CARBON_XBOOTCLASSPATH="" +for f in "$CARBON_HOME"/wso2/lib/xboot/*.jar +do + if [ "$f" != "$CARBON_HOME/wso2/lib/xboot/*.jar" ];then + CARBON_XBOOTCLASSPATH="$CARBON_XBOOTCLASSPATH":$f + fi +done + +JAVA_ENDORSED_DIRS="$CARBON_HOME/wso2/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/wso2/lib/endorsed" + +CARBON_CLASSPATH="" +if [ -e "$JAVA_HOME/lib/tools.jar" ]; then + CARBON_CLASSPATH="$JAVA_HOME/lib/tools.jar" +fi +for f in "$CARBON_HOME"/bin/*.jar +do + if [ "$f" != "$CARBON_HOME/bin/*.jar" ];then + CARBON_CLASSPATH="$CARBON_CLASSPATH":$f + fi +done +for t in "$CARBON_HOME"/wso2/lib/commons-lang*.jar +do + CARBON_CLASSPATH="$CARBON_CLASSPATH":$t +done +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` + CARBON_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + AXIS2_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` + CARBON_CLASSPATH=`cygpath --path --windows "$CARBON_CLASSPATH"` + CARBON_XBOOTCLASSPATH=`cygpath --path --windows "$CARBON_XBOOTCLASSPATH"` +fi + +# ----- Execute The Requested Command ----------------------------------------- + +echo JAVA_HOME environment variable is set to $JAVA_HOME +echo CARBON_HOME environment variable is set to $CARBON_HOME + +cd "$CARBON_HOME" + +TMP_DIR=$CARBON_HOME/tmp +if [ -d "$TMP_DIR" ]; then +rm -rf "$TMP_DIR" +fi + +START_EXIT_STATUS=121 +status=$START_EXIT_STATUS + +#setting up profile parameter for runtime http-gateway +NODE_PARAMS="-Dprofile=device-key-manager" + +#To monitor a Carbon server in remote JMX mode on linux host machines, set the below system property. +# -Djava.rmi.server.hostname="your.IP.goes.here" + +while [ "$status" = "$START_EXIT_STATUS" ] +do + $JAVACMD \ + -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ + -Xms256m -Xmx1024m -XX:MaxPermSize=512m \ + -XX:+HeapDumpOnOutOfMemoryError \ + -XX:HeapDumpPath="$CARBON_HOME/repository/logs/heap-dump.hprof" \ + $JAVA_OPTS \ + -Dcom.sun.management.jmxremote \ + -classpath "$CARBON_CLASSPATH" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CARBON_HOME/wso2/tmp" \ + -Dcatalina.base="$CARBON_HOME/wso2/lib/tomcat" \ + -Dwso2.server.standalone=true \ + -Dcarbon.registry.root=/ \ + -Djava.command="$JAVACMD" \ + -Dcarbon.home="$CARBON_HOME" \ + -Dlogger.server.name="IoT-Core" \ + -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ + -Dcarbon.config.dir.path="$CARBON_HOME/conf" \ + -Dcarbon.components.dir.path="$CARBON_HOME/wso2/components" \ + -Dcarbon.dropins.dir.path="$CARBON_HOME/dropins" \ + -Dcarbon.external.lib.dir.path="$CARBON_HOME/lib" \ + -Dcarbon.patches.dir.path="$CARBON_HOME/patches" \ + -Dcarbon.servicepacks.dir.path="$CARBON_HOME/servicepacks" \ + -Dcarbon.internal.lib.dir.path="$CARBON_HOME/wso2/lib" \ + -Djava.util.logging.config.file="$CARBON_HOME/conf/etc/logging-bridge.properties" \ + -Dcomponents.repo="$CARBON_HOME/wso2/components/plugins" \ + -Dconf.location="$CARBON_HOME/conf"\ + -Dcom.atomikos.icatch.file="$CARBON_HOME/wso2/lib/transactions.properties" \ + -Dcom.atomikos.icatch.hide_init_file_path=true \ + -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \ + -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true \ + -Dcom.sun.jndi.ldap.connect.pool.authentication=simple \ + -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 \ + -Dorg.terracotta.quartz.skipUpdateCheck=true \ + -Djava.security.egd=file:/dev/./urandom \ + -Dfile.encoding=UTF8 \ + -Djava.net.preferIPv4Stack=true \ + -Dcom.ibm.cacheLocalHost=true \ + -DworkerNode=false \ + -Dorg.wso2.ignoreHostnameVerification=true \ + -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ + -Diot.analytics.host="localhost" \ + -Diot.analytics.https.port="9445" \ + -Diot.manager.host="localhost" \ + -Diot.manager.https.port="9443" \ + -Dmqtt.broker.host="localhost" \ + -Dmqtt.broker.port="1886" \ + -Diot.core.host="localhost" \ + -Diot.core.https.port="9443" \ + -Diot.keymanager.host="localhost" \ + -Diot.keymanager.https.port="9443" \ + -Diot.gateway.host="localhost" \ + -Diot.gateway.https.port="8243" \ + -Diot.gateway.http.port="8280" \ + -Diot.apimpublisher.host="localhost" \ + -Diot.apimpublisher.https.port="9443" \ + -Diot.apimstore.host="localhost" \ + -Diot.apimstore.https.port="9443" \ + $NODE_PARAMS \ + org.wso2.carbon.bootstrap.Bootstrap $* + status=$? +done diff --git a/modules/distribution/src/core/resources/profiles/manager/iot-server.bat b/modules/distribution/src/core/resources/profiles/manager/iot-server.bat new file mode 100644 index 00000000..cc61ba3f --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/manager/iot-server.bat @@ -0,0 +1,182 @@ +@echo off + +REM --------------------------------------------------------------------------- +REM Copyright 2005-2009 WSO2, Inc. http://www.wso2.org +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. + +rem --------------------------------------------------------------------------- +rem Main Script for WSO2 Carbon +rem +rem Environment Variable Prequisites +rem +rem CARBON_HOME Home of CARBON installation. If not set I will try +rem to figure it out. +rem +rem +rem JAVA_HOME Must point at your Java Development Kit installation. +rem +rem JAVA_OPTS (Optional) Java runtime options used when the commands +rem is executed. +rem --------------------------------------------------------------------------- + +rem ----- if JAVA_HOME is not set we're not happy ------------------------------ +:checkJava + +if "%JAVA_HOME%" == "" goto noJavaHome +if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome +goto checkServer + +:noJavaHome +echo "You must set the JAVA_HOME variable before running CARBON." +goto end + +rem ----- Only set CARBON_HOME if not already set ---------------------------- +:checkServer +rem %~sdp0 is expanded pathname of the current script under NT with spaces in the path removed +SET CARBON_HOME=%~sdp0.. +SET curDrive=%cd:~0,1% +SET wsasDrive=%CARBON_HOME:~0,1% +if not "%curDrive%" == "%wsasDrive%" %wsasDrive%: + +rem find CARBON_HOME if it does not exist due to either an invalid value passed +rem by the user or the %0 problem on Windows 9x +if not exist "%CARBON_HOME%\bin\version.txt" goto noServerHome + +set AXIS2_HOME=%CARBON_HOME% +goto updateClasspath + +:noServerHome +echo CARBON_HOME is set incorrectly or CARBON could not be located. Please set CARBON_HOME. +goto end + +rem ----- update classpath ----------------------------------------------------- +:updateClasspath + +setlocal EnableDelayedExpansion +cd %CARBON_HOME% +set CARBON_CLASSPATH= +FOR %%C in ("%CARBON_HOME%\bin\*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\bin\%%~nC%%~xC" + +set CARBON_CLASSPATH="%JAVA_HOME%\lib\tools.jar";%CARBON_CLASSPATH%; + +FOR %%D in ("%CARBON_HOME%\wso2\lib\commons-lang*.jar") DO set CARBON_CLASSPATH=!CARBON_CLASSPATH!;".\lib\%%~nD%%~xD" + +rem ----- Process the input command ------------------------------------------- + +rem Slurp the command line arguments. This loop allows for an unlimited number +rem of arguments (up to the command line limit, anyway). + + +:setupArgs +if ""%1""=="""" goto doneStart + +if ""%1""==""-run"" goto commandLifecycle +if ""%1""==""--run"" goto commandLifecycle +if ""%1""==""run"" goto commandLifecycle + +if ""%1""==""-restart"" goto commandLifecycle +if ""%1""==""--restart"" goto commandLifecycle +if ""%1""==""restart"" goto commandLifecycle + +if ""%1""==""debug"" goto commandDebug +if ""%1""==""-debug"" goto commandDebug +if ""%1""==""--debug"" goto commandDebug + +if ""%1""==""version"" goto commandVersion +if ""%1""==""-version"" goto commandVersion +if ""%1""==""--version"" goto commandVersion + +shift +goto setupArgs + +rem ----- commandVersion ------------------------------------------------------- +:commandVersion +shift +type "%CARBON_HOME%\bin\version.txt" +type "%CARBON_HOME%\bin\wso2carbon-version.txt" +goto end + +rem ----- commandDebug --------------------------------------------------------- +:commandDebug +shift +set DEBUG_PORT=%1 +if "%DEBUG_PORT%"=="" goto noDebugPort +if not "%JAVA_OPTS%"=="" echo Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option. +set JAVA_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT% +echo Please start the remote debugging client to continue... +goto findJdk + +:noDebugPort +echo Please specify the debug port after the --debug option +goto end + +rem ----- commandLifecycle ----------------------------------------------------- +:commandLifecycle +goto findJdk + +:doneStart +if "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +rem ---------- Handle the SSL Issue with proper JDK version -------------------- +rem find the version of the jdk +:findJdk + +set CMD=RUN %* + +:checkJdk17 +"%JAVA_HOME%\bin\java" -version 2>&1 | findstr /r "1.[7|8]" >NUL +IF ERRORLEVEL 1 goto unknownJdk +goto jdk17 + +:unknownJdk +echo Starting WSO2 Carbon (in unsupported JDK) +echo [ERROR] CARBON is supported only on JDK 1.7 and 1.8 +goto jdk17 + +:jdk17 +goto runServer + +rem ----------------- Execute The Requested Command ---------------------------- + +:runServer +cd %CARBON_HOME% + +rem ------------------ Remove tmp folder on startup ----------------------------- +set TMP_DIR=%CARBON_HOME%\tmp +cd "%TMP_DIR%" +del *.* /s /q > nul +FOR /d %%G in ("*.*") DO rmdir %%G /s /q +cd .. + +rem ---------- Add jars to classpath ---------------- + +set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% + +set JAVA_ENDORSED=".\wso2\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" + +set profile=-Dprofile=device-manager + +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dlogger.server.name="IoT-Core" -Dcatalina.base="%CARBON_HOME%\wso2\lib\tomcat" -Djava.util.logging.config.file="%CARBON_HOME%\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcomponents.repo="%CARBON_HOME%\wso2\components\plugins" -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcarbon.components.dir.path="%CARBON_HOME%\wso2\components" -Dcarbon.extensions.dir.path="%CARBON_HOME%\extensions" -Dcarbon.dropins.dir.path="%CARBON_HOME%\dropins" -Dcarbon.external.lib.dir.path="%CARBON_HOME%\lib" -Dcarbon.patches.dir.path="%CARBON_HOME%\patches" -Dcarbon.servicepacks.dir.path="%CARBON_HOME%\servicepacks" -Dcarbon.internal.lib.dir.path="%CARBON_HOME%\wso2\lib" -Dconf.location="%CARBON_HOME%\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\wso2\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path=true -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dcom.ibm.cacheLocalHost=true -DworkerNode=false -Dorg.wso2.ignoreHostnameVerification=true -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Diot.analytics.host="localhost" -Diot.analytics.https.port="9445" -Diot.manager.host="localhost" -Diot.manager.https.port="9443" -Dmqtt.broker.host="localhost" -Dmqtt.broker.port="1886" -Diot.core.host="localhost" -Diot.core.https.port="9443" -Diot.keymanager.host="localhost" -Diot.keymanager.https.port="9443" -Diot.gateway.host="localhost" -Diot.gateway.https.port="8243" -Diot.gateway.http.port="8280" -Diot.apimpublisher.host="localhost" -Diot.apimpublisher.https.port="9443" -Diot.apimstore.host="localhost" -Diot.apimstore.https.port="9443" %profile% +:runJava +echo JAVA_HOME environment variable is set to %JAVA_HOME% +echo CARBON_HOME environment variable is set to %CARBON_HOME% +"%JAVA_HOME%\bin\java" %CMD_LINE_ARGS% org.wso2.carbon.bootstrap.Bootstrap %CMD% +if "%ERRORLEVEL%"=="121" goto runJava +:end +goto endlocal + +:endlocal + +:END \ No newline at end of file diff --git a/modules/distribution/src/core/resources/profiles/manager/iot-server.sh b/modules/distribution/src/core/resources/profiles/manager/iot-server.sh new file mode 100755 index 00000000..91667a2f --- /dev/null +++ b/modules/distribution/src/core/resources/profiles/manager/iot-server.sh @@ -0,0 +1,339 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Copyright 2005-2012 WSO2, Inc. http://www.wso2.org +# +# 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. + +# ---------------------------------------------------------------------------- +# Main Script for the WSO2 Carbon Server +# +# Environment Variable Prequisites +# +# CARBON_HOME Home of WSO2 Carbon installation. If not set I will try +# to figure it out. +# +# JAVA_HOME Must point at your Java Development Kit installation. +# +# JAVA_OPTS (Optional) Java runtime options used when the commands +# is executed. +# +# NOTE: Borrowed generously from Apache Tomcat startup scripts. +# ----------------------------------------------------------------------------- + +# OS specific support. $var _must_ be set to either true or false. +#ulimit -n 100000 + +cygwin=false; +darwin=false; +os400=false; +mingw=false; +case "`uname`" in +CYGWIN*) cygwin=true;; +MINGW*) mingw=true;; +OS400*) os400=true;; +Darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ]; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '.*/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +# Get standard environment variables +PRGDIR=`dirname "$PRG"` + +# Only set CARBON_HOME if not already set +[ -z "$CARBON_HOME" ] && CARBON_HOME=`cd "$PRGDIR/.." ; pwd` + +# Set AXIS2_HOME. Needed for One Click JAR Download +AXIS2_HOME=$CARBON_HOME + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CARBON_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` + [ -n "$AXIS2_HOME" ] && CARBON_HOME=`cygpath --unix "$CARBON_HOME"` +fi + +# For OS400 +if $os400; then + # Set job priority to standard for interactive (interactive - 6) by using + # the interactive priority - 6, the helper threads that respond to requests + # will be running at the same priority as interactive jobs. + COMMAND='chgjob job('$JOBNAME') runpty(6)' + system $COMMAND + + # Enable multi threading + QIBM_MULTI_THREADED=Y + export QIBM_MULTI_THREADED +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$CARBON_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + [ -n "$AXIS2_HOME" ] && + CARBON_HOME="`(cd "$CARBON_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " CARBON cannot execute $JAVACMD" + exit 1 +fi + +# if JAVA_HOME is not set we're not happy +if [ -z "$JAVA_HOME" ]; then + echo "You must set the JAVA_HOME variable before running CARBON." + exit 1 +fi + +if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + PID=`cat "$CARBON_HOME"/wso2carbon.pid` +fi + +# ----- Process the input command ---------------------------------------------- +args="" +for c in $* +do + if [ "$c" = "--debug" ] || [ "$c" = "-debug" ] || [ "$c" = "debug" ]; then + CMD="--debug" + continue + elif [ "$CMD" = "--debug" ]; then + if [ -z "$PORT" ]; then + PORT=$c + fi + elif [ "$c" = "--stop" ] || [ "$c" = "-stop" ] || [ "$c" = "stop" ]; then + CMD="stop" + elif [ "$c" = "--start" ] || [ "$c" = "-start" ] || [ "$c" = "start" ]; then + CMD="start" + elif [ "$c" = "--version" ] || [ "$c" = "-version" ] || [ "$c" = "version" ]; then + CMD="version" + elif [ "$c" = "--restart" ] || [ "$c" = "-restart" ] || [ "$c" = "restart" ]; then + CMD="restart" + elif [ "$c" = "--test" ] || [ "$c" = "-test" ] || [ "$c" = "test" ]; then + CMD="test" + else + args="$args $c" + fi +done + +if [ "$CMD" = "--debug" ]; then + if [ "$PORT" = "" ]; then + echo " Please specify the debug port after the --debug option" + exit 1 + fi + if [ -n "$JAVA_OPTS" ]; then + echo "Warning !!!. User specified JAVA_OPTS will be ignored, once you give the --debug option." + fi + CMD="RUN" + JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=$PORT" + echo "Please start the remote debugging client to continue..." +elif [ "$CMD" = "start" ]; then + if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then + if ps -p $PID > /dev/null ; then + echo "Process is already running" + exit 0 + fi + fi + export CARBON_HOME=$CARBON_HOME +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "stop" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + exit 0 +elif [ "$CMD" = "restart" ]; then + export CARBON_HOME=$CARBON_HOME + kill -term `cat $CARBON_HOME/wso2carbon.pid` + process_status=0 + pid=`cat $CARBON_HOME/wso2carbon.pid` + while [ "$process_status" -eq "0" ] + do + sleep 1; + ps -p$pid 2>&1 > /dev/null + process_status=$? + done + +# using nohup sh to avoid erros in solaris OS.TODO + nohup sh $CARBON_HOME/bin/wso2server.sh $args > /dev/null 2>&1 & + exit 0 +elif [ "$CMD" = "test" ]; then + JAVACMD="exec "$JAVACMD"" +elif [ "$CMD" = "version" ]; then + cat $CARBON_HOME/bin/version.txt + cat $CARBON_HOME/bin/wso2carbon-version.txt + exit 0 +fi + +# ---------- Handle the SSL Issue with proper JDK version -------------------- +jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` +if [ "$jdk_17" = "" ]; then + echo " Starting WSO2 Carbon (in unsupported JDK)" + echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +fi + +CARBON_XBOOTCLASSPATH="" +for f in "$CARBON_HOME"/wso2/lib/xboot/*.jar +do + if [ "$f" != "$CARBON_HOME/wso2/lib/xboot/*.jar" ];then + CARBON_XBOOTCLASSPATH="$CARBON_XBOOTCLASSPATH":$f + fi +done + +JAVA_ENDORSED_DIRS="$CARBON_HOME/wso2/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/wso2/lib/endorsed" + +CARBON_CLASSPATH="" +if [ -e "$JAVA_HOME/lib/tools.jar" ]; then + CARBON_CLASSPATH="$JAVA_HOME/lib/tools.jar" +fi +for f in "$CARBON_HOME"/bin/*.jar +do + if [ "$f" != "$CARBON_HOME/bin/*.jar" ];then + CARBON_CLASSPATH="$CARBON_CLASSPATH":$f + fi +done +for t in "$CARBON_HOME"/wso2/lib/commons-lang*.jar +do + CARBON_CLASSPATH="$CARBON_CLASSPATH":$t +done +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` + CARBON_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + AXIS2_HOME=`cygpath --absolute --windows "$CARBON_HOME"` + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` + CARBON_CLASSPATH=`cygpath --path --windows "$CARBON_CLASSPATH"` + CARBON_XBOOTCLASSPATH=`cygpath --path --windows "$CARBON_XBOOTCLASSPATH"` +fi + +# ----- Execute The Requested Command ----------------------------------------- + +echo JAVA_HOME environment variable is set to $JAVA_HOME +echo CARBON_HOME environment variable is set to $CARBON_HOME + +cd "$CARBON_HOME" + +TMP_DIR=$CARBON_HOME/tmp +if [ -d "$TMP_DIR" ]; then +rm -rf "$TMP_DIR" +fi + +START_EXIT_STATUS=121 +status=$START_EXIT_STATUS + +#setting up profile parameter for runtime http-gateway +NODE_PARAMS="-Dprofile=device-manager" + +#To monitor a Carbon server in remote JMX mode on linux host machines, set the below system property. +# -Djava.rmi.server.hostname="your.IP.goes.here" + +while [ "$status" = "$START_EXIT_STATUS" ] +do + $JAVACMD \ + -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ + -Xms256m -Xmx1024m -XX:MaxPermSize=512m \ + -XX:+HeapDumpOnOutOfMemoryError \ + -XX:HeapDumpPath="$CARBON_HOME/repository/logs/heap-dump.hprof" \ + $JAVA_OPTS \ + -Dcom.sun.management.jmxremote \ + -classpath "$CARBON_CLASSPATH" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CARBON_HOME/wso2/tmp" \ + -Dcatalina.base="$CARBON_HOME/wso2/lib/tomcat" \ + -Dwso2.server.standalone=true \ + -Dcarbon.registry.root=/ \ + -Djava.command="$JAVACMD" \ + -Dcarbon.home="$CARBON_HOME" \ + -Dlogger.server.name="IoT-Core" \ + -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ + -Dcarbon.config.dir.path="$CARBON_HOME/conf" \ + -Dcarbon.components.dir.path="$CARBON_HOME/wso2/components" \ + -Dcarbon.dropins.dir.path="$CARBON_HOME/dropins" \ + -Dcarbon.external.lib.dir.path="$CARBON_HOME/lib" \ + -Dcarbon.patches.dir.path="$CARBON_HOME/patches" \ + -Dcarbon.servicepacks.dir.path="$CARBON_HOME/servicepacks" \ + -Dcarbon.internal.lib.dir.path="$CARBON_HOME/wso2/lib" \ + -Djava.util.logging.config.file="$CARBON_HOME/conf/etc/logging-bridge.properties" \ + -Dcomponents.repo="$CARBON_HOME/wso2/components/plugins" \ + -Dconf.location="$CARBON_HOME/conf"\ + -Dcom.atomikos.icatch.file="$CARBON_HOME/wso2/lib/transactions.properties" \ + -Dcom.atomikos.icatch.hide_init_file_path=true \ + -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \ + -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true \ + -Dcom.sun.jndi.ldap.connect.pool.authentication=simple \ + -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 \ + -Dorg.terracotta.quartz.skipUpdateCheck=true \ + -Djava.security.egd=file:/dev/./urandom \ + -Dfile.encoding=UTF8 \ + -Djava.net.preferIPv4Stack=true \ + -Dcom.ibm.cacheLocalHost=true \ + -DworkerNode=false \ + -Dorg.wso2.ignoreHostnameVerification=true \ + -Dorg.opensaml.httpclient.https.disableHostnameVerification=true \ + -Diot.analytics.host="localhost" \ + -Diot.analytics.https.port="9445" \ + -Diot.manager.host="localhost" \ + -Diot.manager.https.port="9443" \ + -Dmqtt.broker.host="localhost" \ + -Dmqtt.broker.port="1886" \ + -Diot.core.host="localhost" \ + -Diot.core.https.port="9443" \ + -Diot.keymanager.host="localhost" \ + -Diot.keymanager.https.port="9443" \ + -Diot.gateway.host="localhost" \ + -Diot.gateway.https.port="8243" \ + -Diot.gateway.http.port="8280" \ + -Diot.apimpublisher.host="localhost" \ + -Diot.apimpublisher.https.port="9443" \ + -Diot.apimstore.host="localhost" \ + -Diot.apimstore.https.port="9443" \ + $NODE_PARAMS \ + org.wso2.carbon.bootstrap.Bootstrap $* + status=$? +done From fb24264eb066dc3472c5410360ee243c666ee164 Mon Sep 17 00:00:00 2001 From: sinthuja Date: Wed, 5 Apr 2017 18:20:52 +0530 Subject: [PATCH 2/7] Removing unnecessary deployables from the each IoT profiles. --- modules/distribution/src/assembly/bin.xml | 12 +- .../src/core/bin/profile-creator.bat | 173 ------------------ .../src/core/bin/profile-creator.sh | 20 +- modules/p2-profile/iot-core-profile/pom.xml | 25 +-- 4 files changed, 28 insertions(+), 202 deletions(-) delete mode 100644 modules/distribution/src/core/bin/profile-creator.bat diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml index f68f9af9..43cf9c49 100755 --- a/modules/distribution/src/assembly/bin.xml +++ b/modules/distribution/src/assembly/bin.xml @@ -1106,12 +1106,12 @@ ${pom.artifactId}-${pom.version}/bin 755 - - src/core/bin/profile-creator.bat - ${pom.artifactId}-${pom.version}/bin - 755 - true - + + + + + + src/core/bin/profile-creator.sh ${pom.artifactId}-${pom.version}/bin diff --git a/modules/distribution/src/core/bin/profile-creator.bat b/modules/distribution/src/core/bin/profile-creator.bat deleted file mode 100644 index 134f7a59..00000000 --- a/modules/distribution/src/core/bin/profile-creator.bat +++ /dev/null @@ -1,173 +0,0 @@ -@echo OFF - -REM --------------------------------------------------------------------------- -REM Copyright 2017 WSO2, Inc. http://www.wso2.org -REM -REM Licensed under the Apache License, Version 2.0 (the "License"); -REM you may not use this file except in compliance with the License. -REM You may obtain a copy of the License at -REM -REM http://www.apache.org/licenses/LICENSE-2.0 -REM -REM Unless required by applicable law or agreed to in writing, software -REM distributed under the License is distributed on an "AS IS" BASIS, -REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -REM See the License for the specific language governing permissions and -REM limitations under the License. -REM --------------------------------------------------------------------------- -REM Profile creator tool for EI -REM --------------------------------------------------------------------------- - -set DIR=%~dp0 -set DISTRIBUTION=wso2ei-@product.version@ -REM get the desired profile -echo This tool will erase all the files which are not required for the selected profile. -echo WARNING:This may cause loss of any changes to the other profiles. -echo WSO2 Enterprise Integrator Supports following profiles. -echo 1.Integrator profile -echo 2.Analytics Profile -echo 3.Business Process profile -echo 4.Broker profile -echo 5.Msf4j profile - -set /p profileNumber= [Please enter the desired profile number to create the profile specific distribution] - -IF /I "%profileNumber%" EQU "1" goto Integrator -IF /I "%profileNumber%" EQU "2" goto Analytics -IF /I "%profileNumber%" EQU "3" goto BPS -IF /I "%profileNumber%" EQU "4" goto Broker -IF /I "%profileNumber%" EQU "5" goto Msf4j - -echo Invalid profile identifier. -goto Exit - -:Integrator - echo Preparing the Integrator profile distribution. - set DEFAULT_BUNDLES=%DIR%..\wso2\components\default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - set WORKER_BUNDLES=%DIR%..\wso2\components\worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - call :Remove_BPS - call :Remove_BROKER - call :Remove_ANALYTICS - call :Remove_JARS - call :Remove_MSF4J - echo Integrator profile created successfully. - goto Exit - -:Broker - echo Preparing the Broker profile. - set DEFAULT_BUNDLES=%DIR%..\wso2\components\broker-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - set WORKER_BUNDLES=%DIR%..\wso2\components\broker-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - call :Remove_BPS - call :Remove_INTEGRATOR - call :Remove_ANALYTICS - call :Remove_JARS - call :Remove_MSF4J - echo Broker profile created successfully. - goto Exit - -:BPS - echo Preparing the Business Process profile. - set DEFAULT_BUNDLES=%DIR%..\wso2\components\business-process-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - set WORKER_BUNDLES=%DIR%..\wso2\components\business-process-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - call :Remove_BROKER - call :Remove_INTEGRATOR - call :Remove_ANALYTICS - call :Remove_JARS - call :Remove_MSF4J - echo Business Process profile created successfully. - goto Exit - -:Analytics - echo Preparing the Analytics profile. - set DEFAULT_BUNDLES=%DIR%..\wso2\components\analytics-default\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - set WORKER_BUNDLES=%DIR%..\wso2\components\analytics-worker\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info - call :Remove_BPS - call :Remove_INTEGRATOR - call :Remove_BROKER - call :Remove_JARS - call :Remove_MSF4J - echo Analytics profile created successfully. - goto Exit - -:Msf4j - echo Preparing the Msf4j profile. - call :Remove_BPS - call :Remove_BROKER - call :Remove_ANALYTICS - call :Remove_INTEGRATOR - IF EXIST %DIR%\..\conf @RD /S /Q %DIR%\..\conf - IF EXIST %DIR%\..\lib @RD /S /Q %DIR%\..\lib - IF EXIST %DIR%\..\dropins @RD /S /Q %DIR%\..\dropins - IF EXIST %DIR%\..\dbscripts @RD /S /Q %DIR%\..\dbscripts - IF EXIST %DIR%\..\patches @RD /S /Q %DIR%\..\patches - IF EXIST %DIR%\..\repository @RD /S /Q %DIR%\..\repository - IF EXIST %DIR%\..\resources @RD /S /Q %DIR%\..\resources - IF EXIST %DIR%\..\samples @RD /S /Q %DIR%\..\samples - IF EXIST %DIR%\..\servicepacks @RD /S /Q %DIR%\..\servicepacks - IF EXIST %DIR%\..\webapp-mode @RD /S /Q %DIR%\..\webapp-mode - IF EXIST %DIR%\..\wso2\analytics @RD /S /Q %DIR%\..\wso2\analytics - IF EXIST %DIR%\..\wso2\broker @RD /S /Q %DIR%\..\wso2\broker - IF EXIST %DIR%\..\wso2\business-process @RD /S /Q %DIR%\..\wso2\business-process - IF EXIST %DIR%\..\wso2\components @RD /S /Q %DIR%\..\wso2\components - IF EXIST %DIR%\..\wso2\lib @RD /S /Q %DIR%\..\wso2\lib - IF EXIST %DIR%\..\wso2\tmp @RD /S /Q %DIR%\..\wso2\tmp - echo Msf4j profile created successfully. - goto Exit - -:Remove_BPS - echo Removing Business Process profile - IF EXIST %DIR%\..\wso2\business-process @RD /S /Q %DIR%\..\wso2\business-process - IF EXIST %DIR%\..\samples\business-process @RD /S /Q %DIR%\..\samples\business-process - IF EXIST %DIR%\..\wso2\components\business-process-default @RD /S /Q %DIR%\..\wso2\components\business-process-default - IF EXIST %DIR%\..\wso2\components\business-process-worker @RD /S /Q %DIR%\..\wso2\components\business-process-worker - IF EXIST %DIR%\business-process.bat del %DIR%\business-process.bat - IF EXIST %DIR%\business-process.sh del %DIR%\business-process.sh - goto :eof - -:Remove_BROKER - echo Removing Broker profile - IF EXIST %DIR%\..\wso2\broker @RD /S /Q %DIR%\..\wso2\broker - IF EXIST %DIR%\..\wso2\components\broker-default @RD /S /Q %DIR%\..\wso2\components\broker-default - IF EXIST %DIR%\..\wso2\components\broker-worker @RD /S /Q %DIR%\..\wso2\components\broker-worker - IF EXIST %DIR%\broker.bat del %DIR%\broker.bat - IF EXIST %DIR%\broker.sh del %DIR%\broker.sh - goto :eof - -:Remove_ANALYTICS - echo Removing Analytics profile - IF EXIST %DIR%\..\wso2\analytics @RD /S /Q %DIR%\..\wso2\analytics - IF EXIST %DIR%\..\wso2\components\analytics-default @RD /S /Q %DIR%\..\wso2\components\analytics-default - IF EXIST %DIR%\..\wso2\components\analytics-worker @RD /S /Q %DIR%\..\wso2\components\analytics-worker - IF EXIST %DIR%\broker.bat del %DIR%\analytics.bat - IF EXIST %DIR%\broker.sh del %DIR%\analytics.sh - goto :eof - -:Remove_INTEGRATOR - echo Removing Integrator profile - IF EXIST %DIR%\..\conf @RD /S /Q %DIR%\..\conf - IF EXIST %DIR%\..\wso2\components\default @RD /S /Q %DIR%\..\wso2\components\default - IF EXIST %DIR%\..\wso2\components\worker @RD /S /Q %DIR%\..\wso2\components\worker - IF EXIST %DIR%\..\samples\service-bus @RD /S /Q %DIR%\..\samples\service-bus - IF EXIST %DIR%\integrator.bat del %DIR%\integrator.bat - IF EXIST %DIR%\integrator.sh del %DIR%\integrator.sh - IF EXIST %DIR%\wso2ei-samples.bat del %DIR%\wso2ei-samples.bat - IF EXIST %DIR%\wso2ei-samples.sh del %DIR%\wso2ei-samples.sh - goto :eof - -:Remove_JARS - echo Removing unnecessary jars - mkdir %DIR%\..\wso2\components\tmp_plugins - - FOR /F "tokens=1,2* delims=, " %%i in (%DEFAULT_BUNDLES%) do copy %DIR%\..\wso2\components\plugins\%%i_%%j.jar %DIR%\..\wso2\components\tmp_plugins - FOR /F "tokens=1,2* delims=, " %%i in (%WORKER_BUNDLES%) do copy %DIR%\..\wso2\components\plugins\%%i_%%j.jar %DIR%\..\wso2\components\tmp_plugins - - @RD /S /Q %DIR%\..\wso2\components\plugins - rename %DIR%\..\wso2\components\tmp_plugins plugins - goto :eof - -:Remove_MSF4J - IF EXIST %DIR%\..\wso2\msf4j @RD /S /Q %DIR%\..\wso2\msf4j - goto :eof - -:Exit - pause diff --git a/modules/distribution/src/core/bin/profile-creator.sh b/modules/distribution/src/core/bin/profile-creator.sh index 9a51c188..3725e86a 100644 --- a/modules/distribution/src/core/bin/profile-creator.sh +++ b/modules/distribution/src/core/bin/profile-creator.sh @@ -67,6 +67,7 @@ then rm -rf ${DIR}/../repository/deployment/server/webapps/* rm -rf ${DIR}/../repository/deployment/server/carbonapps/* rm -rf ${DIR}/../repository/deployment/server/axis2services/* + rm -rf ${DIR}/../repository/deployment/server/devicetypes/* PROFILE="_gateway" @@ -99,13 +100,17 @@ then cp -rf ${DIR}/../repository/resources/profiles/keymanager/* ${DIR}/../bin/ rm -rf ${DIR}/../repository/deployment/server/jaggeryapps/* rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/sequences/_*.xml mkdir ${DIR}/../repository/deployment/server/tempwebapp cp ${DIR}/../repository/deployment/server/webapps/oauth2.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/client-registration#v0.11.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/dynamic-client-web.war ${DIR}/../repository/deployment/server/tempwebapp/ rm -rf ${DIR}/../repository/deployment/server/webapps/* cp -rf ${DIR}/../repository/deployment/server/tempwebapp/* ${DIR}/../repository/deployment/server/webapps/ rm -rf ${DIR}/../repository/deployment/server/tempwebapp rm -rf ${DIR}/../repository/deployment/server/carbonapps/* rm -rf ${DIR}/../repository/deployment/server/axis2services/* + rm -rf ${DIR}/../repository/deployment/server/devicetypes/* PROFILE="_keymanager" @@ -136,8 +141,10 @@ then rm -rf ${DIR}/profile-creator.sh rm -rf ${DIR}/profile-creator.bat rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/sequences/_*.xml cp -rf ${DIR}/../repository/resources/profiles/backend/* ${DIR}/../bin/ - rm -rf ${DIR}/../repository/deployment/server/webapps/oauth2.war ${DIR}/../repository/deployment/server/webapps/shindig.war + rm -rf ${DIR}/../repository/deployment/server/webapps/oauth2.war ${DIR}/../repository/deployment/server/webapps/shindig.war ${DIR}/../repository/deployment/server/webapps/api#am#publisher#v0.11.war ${DIR}/../repository/deployment/server/webapps/api#am#store#v0.11.war ${DIR}/../repository/deployment/server/webapps/api#appm#oauth#v1.0.war ${DIR}/../repository/deployment/server/webapps/api#appm#publisher#v1.1.war ${DIR}/../repository/deployment/server/webapps/api#appm#store#v1.1.war + rm -rf ${DIR}/../repository/deployment/server/webapps/dynamic-client-web.war ${DIR}/../repository/deployment/server/webapps/client-registration#v0.11.war rm -rf ${DIR}/../repository/deployment/server/jaggeryapps/* rm -rf ${DIR}/../repository/deployment/server/axis2services/* @@ -170,10 +177,19 @@ then rm -rf ${DIR}/profile-creator.sh rm -rf ${DIR}/profile-creator.bat cp -rf ${DIR}/../repository/resources/profiles/manager/* ${DIR}/../bin/ + mkdir ${DIR}/../repository/deployment/server/tempwebapp + cp ${DIR}/../repository/deployment/server/webapps/api#am#publisher#v0.11.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/api#am#store#v0.11.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/api#appm#oauth#v1.0.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/api#appm#publisher#v1.1.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/api#appm#store#v1.1.war ${DIR}/../repository/deployment/server/tempwebapp/ + cp ${DIR}/../repository/deployment/server/webapps/shindig.war ${DIR}/../repository/deployment/server/tempwebapp/ rm -rf ${DIR}/../repository/deployment/server/webapps/* + cp -rf ${DIR}/../repository/deployment/server/tempwebapp/* ${DIR}/../repository/deployment/server/webapps/ + rm -rf ${DIR}/../repository/deployment/server/tempwebapp rm -rf ${DIR}/../repository/deployment/server/axis2services/* rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/api/* - rm -rf ${DIR}/../repository/deployment/server/carbonapps/* + rm -rf ${DIR}/../repository/deployment/server/synapse-configs/default/sequences/_*.xml PROFILE="_device-manager" diff --git a/modules/p2-profile/iot-core-profile/pom.xml b/modules/p2-profile/iot-core-profile/pom.xml index 3f9b871a..cd55e41d 100644 --- a/modules/p2-profile/iot-core-profile/pom.xml +++ b/modules/p2-profile/iot-core-profile/pom.xml @@ -2839,13 +2839,14 @@ org.wso2.carbon.service.mgt.server.feature.group ${carbon.deployment.version} - org.wso2.carbon.message.flows.feature.group ${carbon.commons.version} - - + + org.wso2.carbon.social.feature.group + ${carbon.store.version} + org.wso2.carbon.registry.core.feature.group ${carbon.registry.version.iotcore} @@ -3869,24 +3870,6 @@ ${identity.inbound.auth.saml.version} - - - - org.wso2.carbon.dashboards.shindig.feature.group - ${carbon.dashboard.version} - - - org.wso2.carbon.dashboards.portal.feature.group - ${carbon.dashboard.version} - - - org.wso2.carbon.dashboard.deployment.feature.group - ${carbon.dashboard.version} - - - org.wso2.carbon.iot.device.statistics.dashboard.feature.group - ${carbon.device.mgt.plugin.version} - From 18cb016b88531cdafaee41f7eddc4a1aca3d54ca Mon Sep 17 00:00:00 2001 From: sinthuja Date: Wed, 5 Apr 2017 19:30:59 +0530 Subject: [PATCH 3/7] Configuring executables as 755 file modes. --- modules/distribution/src/assembly/bin.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml index 43cf9c49..71ddab4b 100755 --- a/modules/distribution/src/assembly/bin.xml +++ b/modules/distribution/src/assembly/bin.xml @@ -602,6 +602,21 @@ **/wso2server.sh **/wso2server.bat + + **/*.sh + **/*.bat + + 755 + + + + ../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/bin + + ${pom.artifactId}-${pom.version}/bin + + **/*.sh + **/*.bat + ../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/components From b32b2ab1840844f9d622e66faacbe7b505dc5f86 Mon Sep 17 00:00:00 2001 From: lakshani Date: Thu, 6 Apr 2017 13:58:49 +0530 Subject: [PATCH 4/7] Fixed issues of https://github.com/wso2/product-iots/issues/347 --- modules/distribution/src/assembly/bin.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml index 0fadebcf..e1fd063a 100755 --- a/modules/distribution/src/assembly/bin.xml +++ b/modules/distribution/src/assembly/bin.xml @@ -1569,6 +1569,14 @@ ${pom.artifactId}-${pom.version}/conf/identity + + + ../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/resources/lifecycles/MobileAppLifeCycle.xml + + + ${pom.artifactId}-${pom.version}/repository/resources/lifecycles + + From ccb9a24ecf130a64b865d2471a29fdc470bd96b3 Mon Sep 17 00:00:00 2001 From: Amal Gunatilake Date: Fri, 7 Apr 2017 15:06:49 +0530 Subject: [PATCH 5/7] Updating carbon-device-mgt/plugins versions --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 45d1ceed..801e63bc 100644 --- a/pom.xml +++ b/pom.xml @@ -1518,7 +1518,7 @@ - 2.0.38 + 2.0.42 [2.0.0, 3.0.0) @@ -1526,7 +1526,7 @@ - 3.0.21 + 3.0.22 6.1.80 From d4f818e8668cc48b44e8933edaaaf312c8146cff Mon Sep 17 00:00:00 2001 From: Amal Gunatilake Date: Fri, 7 Apr 2017 15:51:23 +0530 Subject: [PATCH 6/7] Updating carbon.device.mgt.plugin.version --- modules/distribution/src/core/plugins/plugins-deployer.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/distribution/src/core/plugins/plugins-deployer.xml b/modules/distribution/src/core/plugins/plugins-deployer.xml index 61d2bef2..8f32e26c 100644 --- a/modules/distribution/src/core/plugins/plugins-deployer.xml +++ b/modules/distribution/src/core/plugins/plugins-deployer.xml @@ -207,6 +207,6 @@ - 3.0.17 + 3.0.22 - \ No newline at end of file +