Bug 159445 BIRT ignores OSGi system properties
Configuring the OSGi framework by setting osgi.configuration.area or osgi.instance.area system property has no effect. The OSGILauncher in org.eclipse.birt.core overwrites any settings for the above system properties. The OSGILauncher should check whether the system properties are already set and use these settings. The OSGi system properties are described in the eclipse runtime options as being specific for the OSGi framework. These system properties are needed, e.g. to create a read-only installation.
core/org.eclipse.birt.core/src/org/eclipse/birt/core/framework/osgi/OSGILauncher.java
result = ( (Integer) left[1] ).compareTo( (Integer) right[1] ); 
		
		if ( result != 0 )
			return result;
		result = ( (Integer) left[2] ).compareTo( (Integer) right[2] ); 
		
		if ( result != 0 )
			return result;
		return ( (String) left[3] ).compareTo( (String) right[3] ); 
		
	}
	/**
	 * Do a quick parse of version identifier so its elements can be correctly
	 * compared. If we are unable to parse the full version, remaining elements
	 * are initialized with suitable defaults.
	 * 
	 * @param version
	 * @return an array of size 4; first three elements are of type Integer
	 *         (representing major, minor and service) and the fourth element is
	 *         of type String (representing qualifier). Note, that returning
	 *         anything else will cause exceptions in the caller.
	 */
	private Object[] getVersionElements( String version )
	{
		if ( version.endsWith( ".jar" ) ) 
			version = version.substring( 0, version.length( ) - 4 );
		Object[] result = {new Integer( 0 ), new Integer( 0 ),
				new Integer( 0 ), ""}; 
		StringTokenizer t = new StringTokenizer( version, "." ); 
		String token;