Provisioning & Migration with p2: Case study - The Good, the Bad and the Ugly Christian

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

CollectionSpace Service Behind the scenes June 2009 Face-to-face Sanjay Dalal U.C. Berkeley IST/Data Services.
OpusCollege and Spring-DM. OSGi based web applications – three strategies OSGi container embedded in another container: OSGi Bridge Server (OBS)  e.g.
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
P2 in the Enterprise David DoddDavid Dodd, Emac ShenEmac Shen.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
APP-V 5.0 SP2 (MDOP 2013 R2) Presenter - Fred
Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource November 2011.
Test Automation Framework Ashesh Jain 2007EE50403 Manager Amit Maheshwari.
Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Building Great Looking.
QAD Integrated Customization Toolkit (ICT)
T-FLEX DOCs PLM, Document and Workflow Management.
Building New SOA and AJAX- Based Business Applications Mark Barnard R&D Manager – Natural Business Services Software AG (Canada) Inc.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Thank you SPSKC15 sponsors!. SharePoint 2013 Search Service Application (SSA) Ambar Nirgudkar Software Engineer
Secure Search Engine Ivan Zhou Xinyi Dong. Project Overview  The Secure Search Engine project is a search engine that utilizes special modules to test.
QAD .Net UI: New Enhancements
UNIT-V The MVC architecture and Struts Framework.
By: Taylor Helsper.  Introduction  Bug Tracking  Progress Tracking  Version Control  Conclusion  Questions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
© 2012 IBM Corporation Tivoli Workload Automation Informatica Power Center.
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
Choon Oh Lee OSGi Service Platform. About OSGi Service Platform What it is, Where it is used, What features it provides are Today’s Content.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
Project confidential Page 1 20-Jan-09 Integrated Project – EC FP AspireRFID Developers First CodeCamp Athens Information Technology Nikos Kefalakis.
Conditions and Terms of Use
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
V0.1 BlackBerry HTML5/WebWorks Applications for the BlackBerry ® PlayBook™ Tablet BlackBerry Academic Program Module 5 - Writing HTML5/WebWorks API Extensions.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
The In’s and Out’s of the IIS 6.0 Migration Tool The In’s and Out’s of the IIS 6.0 Migration Tool Chris Adams Web Platform Supportability Lead Microsoft.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
INFSO-RI Enabling Grids for E-sciencE Logging and Bookkeeping and Job Provenance Services Ludek Matyska (CESNET) on behalf of the.
Presented By: Muhammad Tariq Software Engineer Android Training course.
ColdFusion 9 and Flex 4: Application Development Ryan Stewart Platform Evangelist, Adobe Systems
Plug-in Development Environment. Session Outline Tools Installation Configuration New Project Basic Debugging Remote Debugging.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
Liferay Installation Prepared by: Do Xuan Hai 8 August 2011.
2/26/021 Pegasus Security Architecture Author: Nag Boranna Hewlett-Packard Company.
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
CSS Build and Update System Kunal Shroff EPICS Spring Collaboration Meeting, June 2010 Aix-en-Provence.
© 2006 Intland Software1 Aron Gombas Architect, Intland Software Extending & customizing CodeBeamer.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
DataLink for the Office 2007 Platform Jason King OSIsoft, Inc.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
Installing SAS 1. Requirements If you do not have an old copy of SAS installed on your computer, go directly to Slide 6. Make sure you have uninstalled.
Oracle Warehouse Builder - Beta 1 New Features Jean-Pierre Dijcks.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
RIA to visualize the health of a project Team #4 Midterm presentation February 28,2008.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Grid Builder Status Rui Wang July 16, Grid Builder The Grid Builder uses a management console to deploy grids dynamically and remotely –The user.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
4000 Imaje 4020 – Software Imaje 4020 – Content ■ Content of Chapter Software: 1. Flash Up 2. Netcenter 3. FTP 4. Active X 5. XCL commands 6. Exercise.
Data-Centric Systems Lab. A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa presenter 김영진.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
© 2013 IBM Corporation IBM Rational Asset Analyzer & Rational Asset Analyzer for System z Rational Asset Analyzer What is new! Leshek Fiedorowicz
Ingvar Bergström Senior Designer Developer Days June 2009 SMF in OpenSAF.
CF Eclipse Nick Kwiatkowski Michigan State University, Physical Plant 8/8/2006.
11 DEPLOYING AN UPDATE MANAGEMENT INFRASTRUCTURE Chapter 6.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Eclipse Vorto Alexander Edelmann.
1) CB plugin for Jenkins 2) Requirements Mapping
OpenOffice.org API Plugin for NetBeans- a look under the hood
Dynamic Updates for Videogames
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Presentation transcript:

Provisioning & Migration with p2: Case study - The Good, the Bad and the Ugly Christian

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 How can we update a software component and migrate it’s configuration data while having a stable system in case of failure?

Demonstration 4

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;

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

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 = 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 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); … }

Remote Provisioning 9 Client Server Create Plan Execute Plan Create Plan Execute Plan Migrate Save Uninstall timestamp Install timestamp

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”!

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 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 Ok… But now I get a “No action found” message?

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

p2 Meta-Requirements Beware! 15 Tycho Bugzilla tycho-p2-director-plugin ignores meta- requirements *.target in IDE

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

Christian Feedback is always appreciated