Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Swordfish Documentation: Running Target Platform Outside An IDE"
Line 31: | Line 31: | ||
</pre> | </pre> | ||
− | Also it is possible to specify different ports for Swordfish Registry and/or JMX server running inside target platform (it is necessary | + | Also it is possible to specify different ports for Swordfish Registry and/or JMX server running inside target platform (it is necessary in case of running multiple target platforms on the same machine). |
<pre> | <pre> | ||
#Port the Swordfish registry runs on | #Port the Swordfish registry runs on |
Revision as of 16:54, 30 September 2009
Contents
Running Swordfish Target Platform outside an Eclipse IDE
This section contains instructions on running Swordfish Target Platform outside an Eclipse IDE.
The whole process consists of three steps: preparing a target platform, customizing platform properties and launching platform.
More detailed information for each step is provided below.
Prerequisites
Eclipse Galileo (Eclipse 3.5) build or later. The examples described here are based on Eclipse 3.5.
Preparing Target Platform
Target Platform is one of the artifacts produced by the Swordfish Headless Build.
To build a platform you have to set up the Headless Build and run it by executing ant command from the build directory (org.eclipse.swordfish.build).
After build finishes prepared target platform can be found in org.eclipse.swordfish.build/target/platform directory.
Customizing Target Platform properties
By default Swordfish target platform is launched with predefined set of properties. These properties include Equinox runtime properties (e.g. set of bundles a target platform consists of, packages exported by a framework system bundle etc.) and Swordfish specific ones (e.g. Swordfish registry URL or JMX server port).
All properties are defined in config.ini
file in <target platform dir>/configuration directory (template with default values can be found here:
config.ini).
NOTE: This article doesn't contain detailed description of all properties listed in target platform configuration. For additional information please refer to Equinox runtime properties, Running Swordfish Target Platform articles.
Depending on real situation default settings can be changed to specify for example different set of bundles or different ports to be used.
In order to run user defined services inside Swordfish Target Platform it is necessary to modify config.ini
file and add these services to list of bundles included into the target platform. For example if a service provider bundle has the symbolic name swordfish.test.service then the list of bundles should look in the following way:
#List of bundles the target platform consists of osgi.bundles=\ com.ctc.wstx@start,\ ... org.springframework.osgi.io@start,\ swordfish.test.service@start
Also it is possible to specify different ports for Swordfish Registry and/or JMX server running inside target platform (it is necessary in case of running multiple target platforms on the same machine).
#Port the Swordfish registry runs on org.osgi.service.http.port=9002
#Port the ServiceMix's JMX server runs on. rmiRegistryPort=5556
Running Target Platform
To run Swordfish Target Platform:
- Switch to the target platform directory (org.eclipse.swordfish.build/target/platform).
- Depending on your operating system start the platform by running corresponding launch script (
launch.bat
for Windows,launch.sh
for MacOS/Linux). - Verify that the platform has started successfully. To do this check the status of bundles included into the platform by typing ss command in the console window.
In case of successfull start all bundles must be in ACTIVE state except few fragment bundles (org.eclipse.swordfish.compatibility.wsdl4j, org.mortbay.jetty.security etc.) which must be in RESOLVED state.
NOTE: To provide the same behavior as target platform started inside Eclipse IDE, all launchers specify osgi.compatibility.bootdelegation system property set to true.
Use of this property enables delegation to parent (boot) classloader by default if class can not be found, hence provides successful resolving of all packages visible for parent class loader (javax.*, org.w3c.*, etc.) regardless if their imports are present in bundle manifest. For more information regarding Eclipse boot delegation and usage of osgi.compatibility.bootdelegation property please refer to: Equinox boot delegation, Bug 178477