[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [platform-update-dev] Question about update on multi-user systems


There is a pattern of using Eclipse that works on Windows, and I don't know why it won't work on Linux.  

You can get a master configuration and then private configurations based on the master.  
Master is r/o and private configs are r/w, but changes to the master control the private for those things kept in the master.
It is a brute force approach that depends on order of invocation 1st time around.  

>If you start with an empty eclipse and start it the config is local and r/w.  

>If you make an empty eclipse r/o, or just use the -configuration parm to direct the config to a private location and the eclipse instance has never
  been started to create a config in the default location, you have a full r/w config.


>If you start the base eclipse once and let the config be stored in the default location, then make it r/o or use -configuration to force the
  use of a new configuration, the first configuration is the master and the second   can only add new content and manage that content; the rest is
  controlled by the first configuration in the default location.

You can tell when you are using a config based on the master when the platform.xml contains this content:
        <config date="1143778421878" shared_ur="file:configuration/org.eclipse.update/platform.xml" transient="false" version="3.0" />

Its been this way since at least 3.0. I've tested all the above again with 3.2M5a and things are pretty much the same.

My testing environment was setup by having a fresh eclipse instance with a local JRE (S:\ManagedIDE\eclipse).  
I then shared the S:\ManagedIDE dir read only and mounted it as a new drive.  That is where I'd launch my private configs (M:\eclipse).

Testing cycle using that environment:
 - run a private config without a master config  -full control in private config;  delete config/workspace when done - they were in these locations by default:
     C:\Documents and Settings\Administrator\workspace
     C:\Documents and Settings\Administrator\.eclipse\org.eclipse.platform_3.1.0\configuration
 
- run a master/default config   -full control in master config;  default locations:
    C:\Documents and Settings\Administrator\workspace
    S:\ManagedIDE\eclipse\configuration

- run a private config; now with the master in place.  Still using these by default:
    C:\Documents and Settings\Administrator\workspace
    S:\ManagedIDE\eclipse\configuration
  but the private config references the master : shared_ur="file:configuration/org.eclipse.update/platform.xml"

Added EMF using to the master config - shows in private runtime but it can't be disabled.
Added GEF using to the master config - shows in private runtime but it can't be disabled.

Added VE to the private config - works fine.

Disabled GEF in the master config.
Started with private config - VE is disabled; GEF pre-req not available.

Additional details in here:


I think you can use a config.ini in your private configuration target location to create a custom environment.
I also think you can use a setting to make the private config ignore the master (otherwise it will always use it).  This setting in the config.ini would look like:

#Prevents eclipse from using the parent  configuration
osgi.configuration.cascaded=false


You might be able to fashion a centrally managed environment with freedom to the users in their private configs with this strategy.
Changes to the master are pushed to the private config, but they must restart first of course.

Good luck.


Pat McCarthy  
Read-write - no extras - 1st start
S:\ManagedIDE\eclipse - rw instance
C:\Documents and Settings\Administrator\workspace
S:\ManagedIDE\eclipse\configuration

  <config date="1143778276429" transient="false" version="3.0">
   <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
    <feature id="org.eclipse.platform" url="features/org.eclipse.platform_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.rcp" url="features/org.eclipse.rcp_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
    <feature id="org.eclipse.platform.source" url="features/org.eclipse.platform.source_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.jdt" url="features/org.eclipse.jdt_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.jdt.source" url="features/org.eclipse.jdt.source_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.pde" url="features/org.eclipse.pde_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.sdk" url="features/org.eclipse.sdk_3.2.0.v20060210--hQXJzJJez/" version="3.2.0.v20060210--hQXJzJJez" /> 
    <feature id="org.eclipse.pde.source" url="features/org.eclipse.pde.source_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.rcp.source" url="features/org.eclipse.rcp.source_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
   </site>
  </config>

--------------------------------------------------
Read-only - no extras - never started
M:\eclipse - read-only
C:\Documents and Settings\Administrator\workspace
C:\Documents and Settings\Administrator\.eclipse\org.eclipse.platform_3.1.0\configuration

  <config date="1143778150088" transient="false" version="3.0">
   <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
    <feature id="org.eclipse.platform" url="features/org.eclipse.platform_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.rcp" url="features/org.eclipse.rcp_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
    <feature id="org.eclipse.platform.source" url="features/org.eclipse.platform.source_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.jdt" url="features/org.eclipse.jdt_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.jdt.source" url="features/org.eclipse.jdt.source_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.pde" url="features/org.eclipse.pde_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.sdk" url="features/org.eclipse.sdk_3.2.0.v20060210--hQXJzJJez/" version="3.2.0.v20060210--hQXJzJJez" /> 
    <feature id="org.eclipse.pde.source" url="features/org.eclipse.pde.source_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.rcp.source" url="features/org.eclipse.rcp.source_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
   </site>
  </config>

--------------------------------------------------
Read-only - no extras - base instance was started first - first start of read-only instance
M:\eclipse - read-only
C:\Documents and Settings\Administrator\workspace
C:\Documents and Settings\Administrator\.eclipse\org.eclipse.platform_3.1.0\configuration

  <config date="1143778421878" shared_ur="file:configuration/org.eclipse.update/platform.xml" transient="false" version="3.0" /> 

--------------------------------------------------
Added emf to S:\ManagedIDE\eclipse - rw instance
Stored in base config - S:\ManagedIDE\eclipse\configuration

  <config date="1143779290958" transient="false" version="3.0">
   <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
    <feature id="org.eclipse.platform" plugin-version="3.2.0.v20060214-1600" url="features/org.eclipse.platform_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.platform.source" url="features/org.eclipse.platform.source_3.2.0.v20060215-6arkIf-1sI/" version="3.2.0.v20060215-6arkIf-1sI" /> 
    <feature id="org.eclipse.rcp" plugin-version="3.2.0.v20051206" url="features/org.eclipse.rcp_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
    <feature id="org.eclipse.jdt" plugin-version="3.2.0.v20060216-0800" url="features/org.eclipse.jdt_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.jdt.source" url="features/org.eclipse.jdt.source_3.2.0.v20060215-1200-0cq-cuim1y/" version="3.2.0.v20060215-1200-0cq-cuim1y" /> 
    <feature id="org.eclipse.pde" plugin-version="3.2.0.v20060213-1200" url="features/org.eclipse.pde_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.pde.source" url="features/org.eclipse.pde.source_3.2.0.v20060210--qSWJzJJez/" version="3.2.0.v20060210--qSWJzJJez" /> 
    <feature id="org.eclipse.sdk" plugin-version="3.2.0.v20060214" url="features/org.eclipse.sdk_3.2.0.v20060210--hQXJzJJez/" version="3.2.0.v20060210--hQXJzJJez" /> 
    <feature id="org.eclipse.rcp.source" url="features/org.eclipse.rcp.source_3.2.0.v20060210-38mARRhN5X/" version="3.2.0.v20060210-38mARRhN5X" /> 
   </site>
   <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:E:/Eclipse-Development/eclipse_tools/emf-sdk-xsd211/eclipse/">
    <feature id="org.eclipse.emf.source" url="features/org.eclipse.emf.source_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf.sdk" url="features/org.eclipse.emf.sdk_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.xsd.doc" url="features/org.eclipse.xsd.doc_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.xsd.source" url="features/org.eclipse.xsd.source_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf.ecore.sdo.doc" url="features/org.eclipse.emf.ecore.sdo.doc_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf.ecore.sdo" url="features/org.eclipse.emf.ecore.sdo_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf.ecore.sdo.source" url="features/org.eclipse.emf.ecore.sdo.source_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf.doc" url="features/org.eclipse.emf.doc_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.xsd" url="features/org.eclipse.xsd_2.1.1/" version="2.1.1" /> 
    <feature id="org.eclipse.emf" url="features/org.eclipse.emf_2.1.1/" version="2.1.1" /> 
   </site>
  </config>

--------------------------------------------------
Read-only - started after base had added emf
Added GEF to the private config - C:\Documents and Settings\Administrator\.eclipse\org.eclipse.platform_3.1.0\configuration

- <config date="1143780377641" shared_ur="file:configuration/org.eclipse.update/platform.xml" transient="false" version="3.0">
- <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:E:/Eclipse-Development/eclipse_tools/gef311/eclipse/">
  <feature id="org.eclipse.gef.source" url="features/org.eclipse.gef.source_3.1.1/" version="3.1.1" /> 
  <feature id="org.eclipse.gef" url="features/org.eclipse.gef_3.1.1/" version="3.1.1" /> 
  <feature id="org.eclipse.gef.sdk" plugin-identifier="org.eclipse.gef.source" url="features/org.eclipse.gef.sdk_3.1.1/" version="3.1.1" /> 
  </site>
  </config>

--------------------------------------------------
Could disable EMF in the base config - can't change it in the private config

Added VE to the private config - works fine

Disabled EMF in the base config - VE fails in the private config - base took EMF away