Download presentation
Presentation is loading. Please wait.
Published byMicah Blakes Modified over 9 years ago
1
Provisioning & Migration with p2: Case study - The Good, the Bad and the Ugly Christian Bourgeois @bourgeois_c
2
Some Context on Previous Product Version 2 Based on Eclipse 3.4 Too much time to deliver a simple update Migration would leave system in inconsistent state
3
3 How can we update a software component and migrate it’s configuration data while having a stable system in case of failure?
4
Demonstration 4
5
Provisioning UI 5 import org.eclipse.equinox.internal.p2.ui.ProvUI; import org.eclipse.equinox.internal.p2.ui.ProvUIProvisioningListener; import org.eclipse.equinox.internal.p2.ui.dialogs.AddRepositoryDialog; import org.eclipse.equinox.internal.provisional.p2.repository.RepositoryEvent;
6
client.feature info.feature client.bundle common.bundle client.bundle.nls server.feature info.feature server.bundle common.bundle config.feature 6 Business Model Artifacts Layout
7
properties.1.name = bsm.adaptor properties.1.value = true properties.2.name = adaptor.name properties.2.value = ZExampleAdaptor properties.3.name = client.feature.name properties.3.value = zzz.compuware.example.adaptor.client.feature properties.4.name = server.feature.name properties.4.value = zzz.compuware.example.adaptor.server.feature properties.5.name = adaptor.id properties.5.value = ZExampleAdaptor properties.6.name = adaptor.version properties.6.value = 1.0.0 properties.7.name = company.id properties.7.value = CPWR properties.8.name = domains.ids properties.8.value = APM 7 Business Model info.feature – p2.inf
8
8 Migrations… How to integrate them with p2? public abstract class org.eclipse.equinox.p2.engine.spi.ProvisioningAction { … public abstract IStatus execute(Map parameters); public abstract IStatus undo(Map parameters); … }
9
Remote Provisioning 9 Client Server Create Plan Execute Plan Create Plan Execute Plan Migrate Save Uninstall timestamp Install timestamp
10
10 p2 Touchpoint Actions instructions.configure=markStarted(started:true); instructions.configure=copy(source:a, target:b,overwrite:true); instructions.configure=setProgramProperty(propName:key, propValue:value); instructions.configure=addJvmArg(jvmArg:-XX:+UnlockDiagnosticVMOptions); They are executed in the “builder”!
11
Custom p2 Touchpoint Actions 11 instructions.configure=…adaptors.p2.engine.touchpoint.migrate(); instructions.unconfigure=…adaptors.p2.engine.touchpoint.saveConfigurations(); Executes business logic Must have knowledge of their runtime
12
12 public IStatus execute(Map parameters) { boolean isServer = RuntimeInfo.isServer(); if (!isServer) { return Status.OK_STATUS; } … IInstallableUnit infoInstallableUnit = this.getInfoInstallableUnit(iu, repositoryManager, progressMonitor); String adaptorID = this.getAdaptorID(infoInstallableUnit); Version adaptorVersion = this.getAdaptorVersion(infoInstallableUnit); MigrationManager manager = this.getMigrationManager(); MigrationStatus migrationStatus = manager.migrate(adaptorID, adaptorVersion); IStatus status = EclipseStatusFactory.createStatus(migrationStatus); return status; } public IStatus undo(Map parameters) { … MigrationManager manager = this.getMigrationManager(); manager.revert(adaptorID, adaptorVersion); }
13
13 Ok… But now I get a “No action found” message?
14
p2 Meta-Requirements 14 Provisions the meta-requirements in the builder provides.0.namespace=com.compuware.vantage.vsm.adaptors.p2 provides.0.name=touchpoints provides.0.version=1.1 com.compuware.vantage.vsm.adaptors.p2.engine.touchpoint.feature com.compuware.vantage.vsm.adaptors.p2.prerequisite.feature metaRequirements.0.namespace=com.compuware.vantage.vsm.adaptors.p2 metaRequirements.0.name=touchpoints metaRequirements.0.range=1.1
15
p2 Meta-Requirements Beware! 15 Tycho Bugzilla 351487 tycho-p2-director-plugin ignores meta- requirements *.target in IDE
16
Conclusion 16 p2 is easy to use (when you know the basics) p2 API is becoming more high level Must be aware of the “tricks” and pitfalls
17
Christian Bourgeois @bourgeois_c Feedback is always appreciated
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.