Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-update-dev] R2.0 Startup / Launch point creation/configuration

I've reviewed the R2.0 startup document on the Eclipse.org Update component site ( http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/doc/working/startup.html ).

Some general questions first:
 

1. Under R2.0 semantics you say:
Consequently, the -application argument need not be specified. If it is specified, its value overrides the value set by
     install/ update in the platform configuration.
Do you mean product configuration as in product.ini in the plugin identified as the feature?

2. The configuration argument - as in:

    argument -configuration specifies the URL of the platform configuration file used to determine the location of the Eclipse platform, the matching set of org.eclipse.core.boot, org.eclipse.core.runtime and org.apache.xerces plugins to use (this information is maintained by the install/ update support), plus the plugin-path to all additional configured plugins
     
  • Is this the platform.cfg file associated to the base eclipse install or one specific to a product launch point (which may identify the base install and another source for plugins)
  • Are we allowed to create one as part of implementing a launch point?  (I've done so - but stopped)


In general I'm confused as to what I should be doing (vs what I've learned to do).  An example, with a file system layout and the actual 'eclipse -feature xx -configuration xxx ...' command string that does something useful would really help.

In the last week or so I have been working up launch points to better understand behavior and config options with an approach closer to 1.0, but with the use of multiple plugin directories.

At first I was editing platform.cfg to get what I want - then realized I should not do this, and have moved to an approach where I have an eclipse-like dir structure, a link file, /splash, and a /plugins which also includes the plugin that is my product branding (-feature).

One of the scenarios I have used so far:
d:\base\eclipse (full sdk unzip)

d:\myprod\eclipse which contains:
myprod.exe (rebuilt .exe branded for my product)
startup.jar (seems to be required)

\install\install.ini - file with the application and feature defaults
\splash\splash_full.bmp - my product splash (do we need/use a splash_basic.bmp anymore?)
\plugins\....  - my product plugins, included the plugin identified as the active feature as well as a copy of org.eclipse.boot.core (so it works)
\links\base.properties - a link to the d:\base\eclipse code.

This works, I can run myproduct, but I don't see yet how/if I can control access to features in the Workbench base.
This is what triggered my wild-duck thought about breaking the workbench into separate plugin dirs by feature so my link to the base would include as many of the features as I wanted (as in path=rw d:/base/eclipse/platform, rw d:/base/eclipse/jdt, rw d:/base/eclipse/pde, rw d:/base/eclipse/qrs-xyz).

---------------

More on launch point - there were three scenarios discussed in the R2.0 startup doc - not sure how well they fit what we have been trying to do with respect to our WSWB-branded/extended Workbench.  For WSWB I've been working with the following objectives:
 

  • One install of the Workbench, with all features (and associated source) on a given target system.
  • This install occurs through the use of a shared, silently installable, package of the Workbench with a WebSphere Studio brand
  • Products install in product specific directories,
  • Products create a private launch point, with appropriate references to the Workbench install, to enable/include the Workbench features desired in their product configuration.
  • Product installs produce product instances, but post install (or as part of a smart install), the customer is able to merge the available function so that they see all installed products in one active/launched Workbench, if that is their desire.
  • Products that are not launchable, but contribute utility like function, are able to be installed so that they can be configured/added to any other launchable configuration, but are not forced, by default, on any existing (or newly added) launchable configuration.
Given that list (of what might include some mutually exclusive requirements) - I've been trying to understand how I use Install/Update and the mix of link, feature install, and other options to see how these scenarios might be supported (text below includes some data from my attempts so far):

Installation Scenarios
Goal of this section is to capture the installation processing and configuration management activities that occur on a target system as Workbench-based products are installed and service is applied to both the Workbench-base and products.  By stepping through these scenarios we can validate the expected capabilities of the platform provided Update Manager and implications of certain product-packaging decisions.

The following terms/packages will be used to discuss the installation scenarios:

· Base  – The Workbench run-time platform, as silently installed, currently viewed as the equivalent of the unzipable WSWB SDK (platform, jdt, pde, gef, and all associated source) packaged as a set of features known to the platform on first launch, which will exist on the target system only once.
· WS-A  – A WebSphere Studio family product (such as WebSphere Studio Site Developer)
· WS-B  – A WebSphere Studio family product (such as WebSphere Studio Application Developer)
· ISV-A  – An ISV product based on the Workbench
· ISV-U  – An ISV product that represents utility function.  As a general-purpose enhancement to the Workbench base this function should be available in all installed products.
Expectations and assumptions
· First product installed triggers silent install of the Base
· An install of the Base will include the appropriate \install\feature\feature.xml files to enable service to the Base using Update Manager function.
· The multiple features included in the Base may be packaged in separate feature-specific \plugins directories to allow for controlled reuse/reference by products (using link files).
· All products, including the Base, are installed in their own directory (ISV-U may end up being installed in the Base\Plugins directory)
· All products use the Workbench Update Manager to configure their function as part of the Workbench. (ISV-U may not need to do this – depends on if this update, made using the Base Workbench launch point, will then be available to all products that already reference the Workbench).
· All products implement a launch point with their brand (ISV-U may not need to do this as their launch point is any valid Workbench-based product).
· Maintenance applied to the Base will be available to all products, regardless of which product is was active when the maintenance to the base was installed.
· If products do not desire immediate (next launch) access to maintenance or upgrades added to the Base they need to code their plugin.xml requires tags to be version-specific.  This means that maintenance applied to the Base will not be used until the product is maintained to change the version-specific requires tagging in the product plugin.xml files. (If multiple products are merged they may be required to follow a common approach to plugin.xml version-specific requires tagging.)


Management of Installed Plug-ins
There are several options:

· One common \plugins directory
Con:  All plugins would be, by default, accessible by all configured launch points
Con:  Detailed use of exclude lists would be required to remove any plug-in functions
Pro:  Platform would be aware of all dependencies to any plugin that might be removed
Pro:  Maintenance to plugin sets would only have to be applied to one location

· Separate \plugins directories for every product
Pro: Product-level isolation
Con: Common plugin sets would have to be installed as part of each configuration
Con: Common plugin sets might be installed in multiple locations

· Managed use of shared \plugins directories.
o Most products, including the Workbench, would have their own directory.
o A shared(common) plugin directory would be used as the install location for plugin sets that are designed to be available for all product launch points.

Pro: Product-level isolation
Pro:  Maintenance to plugin sets would only have to be applied to one location
Con:  Platform would not be aware of all dependencies to any plugin that might be removed
(only those in the active configuration)

· Separate \plugins directories for base Workbench feature.  That is, platform, jdt, pde, help, GEF, and so on, in different directories in the workbench base, so that link files can be used to include appropriate features in a product-specific launch.
Pro: Ease of configuration when some features may not be used by all product stacks
(such as PDE or C++)
Con:  Would required a structure that is different from the current Eclipse platform build.


Need to understand:
· Ability of Update Manager to support dynamic enablement of features (is this configure/deconfigure?)
· How the existence of multiple product configurations would impact serviceability goals
· How to restrict use of utility plugins from configurations that do not require (or want) access to some or all of the common features

Scenario 1:  Simple Install of a Workbench-based Product – WS-A

Tasks and the end state of the system will be described for a simple install of WS-A.

Task 1: Install WS-A
a. WS-A install process determines that the Base is not installed and runs the Base silent install

State:
· Base installed at d:\Base\eclipse\….
· Base Launch point exits as d:\Base\eclipse\Base.EXE.
· Registry tree entry for Base, as installed by WS-A, added to system
eclipse.org
/V2
     /Workbench
/com.ibm.wswb

Note: The details of this registry entry are described in the Windows registry structure topic found on page 4.

· Branding exists as plugin in d:\Base\eclipse\plugins\com.ibm.wswb.sdk
· A Workbench install initialization file (install.ini) exists in d:\Base\eclipse\install and contains something similar to:
feature.default.application=org.eclipse.ui.workbench
feature.default.id=com.ibm.wswb.sdk
 

b. WS-A install process continues and installs required plugins and product branding

State:
· WS-A installed at d:\WS-A\eclipse\….
· WS-A Launch point exits as d:\WS-A\eclipse\WS-A.EXE.
· Launch point includes a link file d:\WS-A\eclipse\install\links\base.properties with the following content:
path=rw d:\Base\eclipse\plugins\
Note the angle of the slash (\) required.

· Branding exists as plugin in d:\WS-A\Eclipse\Plugins\WS-A.plugin.id
· Registry entry tree for WS-A, as defined by WS-A, exists in system
· A Workbench install initialization file (install.ini) exists in d:\WS-A\Eclipse\Install and contains something similar to:
feature.default.application=org.eclipse.ui.workbench
feature.default.id=com.ibm.wssd

· Registry entry added in the Base registry tree to reflect the existence of a product that depends on the Base installation
eclipse.org
/V2
     /Workbench
/com.ibm.wswb
/com.ibm.wssd

Note: The details of this registry entry are described in the Product installation scenario topic found on page 5.

Task 1 Summary:  The installation of the WS-A product included the install of the Base.  Both can be launched.  Each, when launched, can use the Update Manager to service the base (this is the expectation of what will be allowed when a Workbench base build provides a launch point that will identify the platform as a set of features).

Capabilities of installed software:  There are two launch points, Workbench and the WS-A product

· Direct invocation of the d:\Base\Eclipse\Eclipse.exe will start the Workbench

After shutting down the launched workbench, a Workbench configuration file (platform.cfg) will be created in d:\Base\Eclipse\Install and contains something similar to:
# Sun Mar 31 23:18:02 EST 2002
version=1.0

stamp=-222457515
stamp.features=0
stamp.plugins=-222457515
 

site.0.url="" href="file:D:/Base/eclipse/">file:D:/Base/eclipse/
site.0.stamp=1065652238
site.0.stamp.features=0
site.0.stamp.plugins=-222457515
site.0.updateable=true
site.0.policy=USER-EXCLUDE
eof=eof

· The following command will launch the product branded Workbench when the Eclipse.exe and startup.jar files are in d:\WS-A\Eclipse and the splash file is in d:\WS-A\Eclipse\Splash:
eclipse -boot file:D:\Base\eclipse\plugins\org.eclipse.core.boot\boot.jar -ws Win32 -feature com.ibm.wssd -data d:\WS-A\MyWorkspace
Notes:
o The location of the splash file may change.  It is expected to be part of the feature plugin content.
o The –boot parm does not actually work right, unless the –data parm is provided a workspace directory is not created, but a .metadata directory is created in the current directory.
Fix is to copy the plugin org.ecipse.core.boot to the branded launch point plugin directory.  Not sure of final solution at this time (-boot may go away?).

After shutting down the launched workbench, a Workbench configuration file (platform.cfg) exists in d:\WS-A\Eclipse\Install and contains something similar to:
# Sun Mar 31 23:09:31 EST 2002
version=1.0

stamp=31739255861
stamp.features=0
stamp.plugins=31739255861

feature.default.id=com.ibm.wswb.sdk

feature.0.id=com.ibm.wswb.sdk
feature.0.application=org.eclipse.ui.workbench

site.0.url="" href="file:D:/Base/eclipse/">file:D:/Base/eclipse/
site.0.stamp=1065652238
site.0.stamp.features=0
site.0.stamp.plugins=-222457515
site.0.updateable=true
site.0.policy=USER-EXCLUDE

site.1.url="" href="file:D:/WS-A/eclipse/">file:D:/WS-A/eclipse/
site.1.stamp=30342733524
site.1.stamp.features=0
site.1.stamp.plugins=-31919501984
site.1.updateable=true
site.1.policy=USER-EXCLUDE
eof=eof

Issues with installed configuration:  Any features installed/configured on to the base launch point are not available when using the product launch point unless the install target is the base plugin directory.

Scenario 2:  Install of a Second Workbench-based Product – WS-B

Tasks and the end state of the system will be described for a simple install of WS-B.

Task 2: Install WS-B
a. WS-B install process determines that the Base is installed and that the prereq WS-A is also installed.
State:
· Base installed at d:\Base\eclipse\….
· Base Launch point exits as d:\Base\eclipse\Base.EXE.
· WS-A installed at d:\WS-A\eclipse\….
· WS-A Launch point exits as d:\WS-A\eclipse\WS-A.EXE.

· Registry tree entry for Base and WS-A, as previously installed, exists in system
eclipse.org
/V2
     /Workbench
/com.ibm.wswb
/com.ibm.wssd

Note: This entry identifies that WS-A (wssd) is dependent on the Base (wswb).
 

c. WS-B install process continues and installs required plugins and product branding

State:
· WS-B installed at d:\WS-B\eclipse\….
· WS-B Launch point exits as d:\WS-B\eclipse\WS-B.EXE.
· Launch point includes a link file d:\WS-B\eclipse\install\links\base.properties with the following content:
path=rw d:\Base\eclipse\plugins\, rw d:\WS-A\eclipse\plugins\
Note the angle of the slash (\) required.

· Branding exists as plugin in d:\WS-B\Eclipse\Plugins\WS-B.plugin.id
· Registry tree entry for WS-B, as defined by WS-B, added to system to reflect the existence of a product that depends on the WS-A installation
eclipse.org
/V2
     /Workbench
/com.ibm.wswb
/com.ibm.wssd
/com.ibm.wsad

· A Workbench install initialization file (install.ini) exists in d:\WS-B\eclipse\install and contains something similar to:
feature.default.application=org.eclipse.ui.workbench
feature.default.id=com.ibm.wsad
 

Task 2 Summary:  The installation of the WS-B product included a second reference to the install of the Base and a reference to the WS-A install (another layer in the WS family Russian doll).  All can be launched.  Each, when launched, can use the Update Manager to service the base (this is the expectation of what will be allowed when a Workbench base build provides a launch point that will identify the platform as a set of features).  Given that, the WS-A and WS-B launch points should be able to service themselves, and in the case of WS-B, also service WS-A.

Capabilities of installed software:  There are three launch points, Workbench and both the WS-A and WS-B products.

Issues with installed configuration:
· Any features installed/configured on to the base launch point are not available when using a product launch point unless the install target is the base plugin directory.
· If features are installed, using the base, into the base plugin directory, these features are available in a product launch, but not viewed as installed features.  The
· Any features installed/configured on to the WSSD launch point are not available when using the WS-B launch point unless the install target is the WS-A plugin directory.

Scenario 3:  Install of an ISV Workbench-based Product – ISV-A

Issues to be brought out:
· How to support standalone install vs merged install (could be a simple user choice at install time, but what if they want both options)
· How to allow either ISV-A or WS-B to be the branded launch point but have access to all WS-A and ISV-A function in either workbench (how to merge function post install of a product)
· What service posture should be mandated, such as a requires of:
 <import plugin="com.xxx" version="1.0.*" match=”compatible”/>
 

Concerns as of today:
· How to allow customer to manage a merge of ISV-A and WS-A after the formal install.
· How to dynamically enable/disable features if/when required, across launch points.

Scenario 4:  Install of an ISV Workbench-based Utility Product – ISV-U

Issues to be brought out:
· How to install a product that does not have a launch point.
· How to dynamically enable/disable features if/when required, across launch points.

Concerns as of today:
· How to allow customer to manage the install of a utility that should be available on n launch points (but not by default for all workbench-based tools).  This means it can’t be installed in the base plugin directory.
· How to dynamically enable/disable features if/when required, across launch points.
 

Pat Mc.
 
 


Back to the top