SlideShare a Scribd company logo
1 of 45
What’s new in Plug-in Development
    Galileo Edition

                                                                  Chris Aniszczyk (EclipseSource)
                                                                                    PDE Co-Lead
                                                                                          zx@eclipsesource.com




             What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
1
Agenda
•   API Tools
•   UI
•   Build
•   The Future




      What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
Agenda
•   API Tools
•   UI
•   Build
•   The Future




      What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
Ideal Release Equation

    Developer: Compatibility (producer)

                                                         +

       Client: Honor API contract (consumer)

                                                         =

                                   Free migration
        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
4
The Ideal Never Happens...




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
5
The Ideal Never Happens...
          Developer: (features + deprecation +
         Optional extensions to existing features +
                   Replacement API +
                     Provisional API)

                                                        +
                   Client: Illegal internal references

                                                        =
                                   Migration at a cost

        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
6
API Compatibility
    •Assist developer with mechanics of API evolution
     • developers document APIs with restrictions (Javadoc tags)
    •API Tooling identifies:
        • binary compatibility issues
        • breaking API changes, API changes after freeze
        • API leaks
    •Suggests bundle version numbers
    •Inserts and validates @since tags




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
7
API Consumption
    •API descriptions are shipped with bundles
    •Assist client's task of honoring API contracts
    • tell them when they break the rules of engagement




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
8
System Library Validation
    Validate system library use based on a bundle's
    required execution environment (BREE)
    • if a bundle claims to run on J2SE-1.4, access to members
      in J2SE-1.5 and higher are flagged as illegal




    API tooling provides descriptions
    • install description fragments
    • J2SE-1.5 description is 1.35 MB



          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
9
Demo




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
10
API Tools in Build and IDE
     •Analysis engine
        •Runs without OSGi or a workspace
        •Runs in engineering build (via ant tasks)
        •Runs in workspace (via builder)
     •Inputs
        •bundles
        •baseline
        •problem filters
     •Outputs
        •problems



           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
11
Infrastructure Enhancements
     •Test Suite
        •Built a large regression test suite (>2000 tests)
        •Found and fixed a lot of bugs (>200)
        •Developed performance tests
     •Improved
        •Analysis of split bundles (compare > compare.core)
        •API leak analysis (reduced false positives)
        •Performance of incremental build (in progress)




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
12
API Usage Scans
     •A producer centric view of APIs used by components
        •Find out which parts of your API are consumed by others
        •Set up scans for cross sections. E.g. what are the
        references between WTP and the SDK?




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
13
Who is {ab}using JDT?




         What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
14
Demo




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
15
Why API Usage Scans?
     API producers can see what internals are being used
     •   Inform clients how to use proper API
     •   Determine what new API needs to be added
     •   Know what clients will be broken
     •   Avoid breaking internals until clients have migrated

     Future Directions?
     • Consumers provide producers with API use scan
     • Tooling warns when producer breaks a dependency
     • Central registry of API use scans




            What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
16
Agenda
•   API Tools
•   UI
•   Build
•   The Future




      What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
Target Definitions
     A fundamental task of PDE is to manage the set of
     plug-ins (bundles) that the workspace is compiled and
     run against

     • Provisional API for target definitions
     • Compose target with various bundle sources
            installations vs. directories
        o
            features
        o
            set of installable units from p2 repositories
        o
     • Leveraging the API within PDE
            an API baseline is just a target definition
        o
            plug-in import
        o



            What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
18
Target Definition User Interface
     • Instead of having one target platform, the user can
       manage a set of target definitions and switch
       between them

     • Targets definitions are backed by files in the
       metadata or workspace

     • Preference page sets workspace's active target
       and provides wizards to create/edit targets

     • Users can modify target definitions using an editor


          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
19
Manage Target Definitions




         What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
20
Edit Target Definitions




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
21
Demo




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
22
Plug-in Export Enhancements
     Export and install into running platform
     • build and export plug-ins and install them into the running host
     • replaces the old quot;export, copy, paste, delete, restartquot; slam technique

     Export existing class files from workspace
     • avoid re-compiling

     Generate source bundles

     Keypass support




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
23
Plug-in Export and p2 Metadata
     Export with Metadata
     • Current support uses 3.4 metadata generator (binary jars)
     • Coming in 3.5 metadata support using p2 publisher (source)

     Exporting Products
     • Coming in 3.5, product export with metadata will perform a director
       install to get a fully p2 enabled product.




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
24
Demo




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
25
Start Levels




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
26
Declarative Services Tooling
     • OSGi Declarative Services in Eclipse 3.5
     • PDE provides DS Tooling




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
27
Demo




        What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
28
Product Definition Enhancements
     •   Versions
     •   License
     •   Start levels
     •   Properties
     •   Optional Product Extension




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
29
Target Platform State
     • The state of the state (target platform)




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
30
Plug-in Spy
     • I Spy Menus!




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
31
Plug-in Registry
     • OSGi Services




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
32
Category Definitions
     • Categorize your features




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
33
Agenda
•   API Tools
•   UI
•   Build
•   The Future




      What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
Build and p2
     Building with p2: quot;p2.gathering=truequot;
     •   Supports publishing from source by gathering compile results
     •   Feature builds result in a p2 repository
     •   Product builds result in a installed p2 enabled product (or repo)
     •   Consume zips of repositories in your build via transformed repos

     p2 releng tools
     • Process artifact repositories
     • Sign, perform pack200 processing
     • Mirror tools:
        o Mirror using a baseline to keep pre-existing binaries.
        o Use a comparator to detect differences against pre-existing
          binaries.



            What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
35
Sorting Dependencies
     In Eclipse 3.4 and earlier, compilation is done via the feature hierarchy
      • Features are visited depth-first.
      • Within a given feature, plug-ins are compiled in dependency order
      • Required careful management of feature hierarchy

     In Eclipse 3.5, we can sort bundles according to dependencies
      • parallelCompilation=true
      • flattenDependencies=true

       <project name=quot;Compile masterquot; default=quot;mainquot;>
          <target name=quot;mainquot;>
             <parallel threadsPerProcessor='3'>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.junit4quot; target=quot;build.jarsquot;/>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.rcpquot; target=quot;build.jarsquot;/>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.osgiquot; target=quot;build.jarsquot;/>
             </parallel>
             <parallel threadsPerProcessor='3'>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.junit4.runtimequot; target=quot;build.jarsquot;/>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.doc.userquot; target=quot;build.jarsquot;/>
                <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.doc.isvquot; target=quot;build.jarsquot;/>
             </parallel>
             ....




              What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
36
More Build Improvements
     • Performance Improvements
            reusing .class files from the workspace
        o
            avoiding some copying while building plug-ins
        o
            publishing to a p2 repository directly from source
        o


     • Signing with Keypass

     • Per Feature Individual Source Bundles

     • Product build improvements

     • Custom Execution Environments




            What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
37
Agenda
•   API Tools
•   UI
•   Build
•   The Future




      What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
API Tooling
     • API comparison views/reports
            show me the API changes between two releases
        o
     • Determine compatible version ranges
            of require bundles
        o
            as dependencies are introduced/removed
        o
            which versions satisfy my set of references
        o
     • Analyze pure Java projects
            need a way to specify package visibility (API descriptions)
        o
            JSR 277 - Java Module System
        o
     • Tighter integration with Java builder
            feed a fine grained set of access rules to the Java compiler
        o
     • Package level versioning
            agree on a versioning specification
        o
     • Analyze extension points & extensions
            What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
39
Target Management
     Support target platform per project in the workspace
     • share target definition on classpath with team
     • share API baseline on a classpath with team

     API to compose/manipulate targets

     Support provisioned targets via repositories
     • bundles are actually installed into target (using p2)
     • has a managed profile
     • running/debugging installs workspace bundles and leverages OSGi
       framework to perform launch

     Unify target concepts/implementation
     • target platform, launch configs, products all have similar information
           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
40
Launching
     •Support other OSGi Frameworks
     •Take advantage of new OSGi Launching APIs




          What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
41
Repository Tooling
     • Repository Management
        browse
        publish
        install into target(s)




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
42
Build
     •Further Integration with p2
        •Improved fetching from p2 repositories
        •Improved reuse of p2 metadata
        •Publishing p2 products
     •Incremental Building
     •Workspace Integration




             What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
43
OSGi and Community Building
     We aren't alone in the bundle tooling world!

     No reason to reinvent the wheel!

     PDE is attended the OSGi Tool Summit




           What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
44
Thank you for your attention!


• Questions and feedback welcome!

• What do you want from PDE?

                                                            Chris Aniszczyk (EclipseSource)
                                                                                  zx@eclipsesource.com




     What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource

More Related Content

What's hot

Best Strategy for Developing App Architecture and High Quality App
Best Strategy for Developing App Architecture and High Quality AppBest Strategy for Developing App Architecture and High Quality App
Best Strategy for Developing App Architecture and High Quality AppFlurry, Inc.
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTCharles Rivet
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testingpvanderlei
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Frank Braun
 
PuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesPuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesMartin Alfke
 
DevOps - How to get technical buy in
DevOps - How to get technical buy inDevOps - How to get technical buy in
DevOps - How to get technical buy inMartin Alfke
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tychojsievers
 
PapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code GenerationPapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code GenerationErnesto Posse
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev toolsShaka Huang
 
ADDO 2019 DevOps in a containerized world
ADDO 2019 DevOps in a containerized worldADDO 2019 DevOps in a containerized world
ADDO 2019 DevOps in a containerized worldMartin Alfke
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradleSwain Loda
 
Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Zachary Christmas
 
Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Florent BENOIT
 
Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Zachary Christmas
 
Papyrus-RT - Executable modeling on eclipse
Papyrus-RT - Executable modeling on eclipsePapyrus-RT - Executable modeling on eclipse
Papyrus-RT - Executable modeling on eclipseCharles Rivet
 
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITPuppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITMartin Alfke
 
Papyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on EclipsePapyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on EclipseCharles Rivet
 
Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Zachary Christmas
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseVMware Tanzu
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnixSuman Chakraborty
 

What's hot (20)

Best Strategy for Developing App Architecture and High Quality App
Best Strategy for Developing App Architecture and High Quality AppBest Strategy for Developing App Architecture and High Quality App
Best Strategy for Developing App Architecture and High Quality App
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testing
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio
 
PuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesPuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and Provides
 
DevOps - How to get technical buy in
DevOps - How to get technical buy inDevOps - How to get technical buy in
DevOps - How to get technical buy in
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tycho
 
PapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code GenerationPapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code Generation
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
 
ADDO 2019 DevOps in a containerized world
ADDO 2019 DevOps in a containerized worldADDO 2019 DevOps in a containerized world
ADDO 2019 DevOps in a containerized world
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradle
 
Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2
 
Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014
 
Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1
 
Papyrus-RT - Executable modeling on eclipse
Papyrus-RT - Executable modeling on eclipsePapyrus-RT - Executable modeling on eclipse
Papyrus-RT - Executable modeling on eclipse
 
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITPuppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
 
Papyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on EclipsePapyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on Eclipse
 
Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnix
 

Similar to What's New in Plug-in Development (Galileo)

apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementrobertodepalma
 
Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training sessionterradue
 
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMIntroducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMmfrancis
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...Sascha Junkert
 
Eclipse Con 2009 Sca Tools Short Talk
Eclipse Con 2009   Sca Tools Short TalkEclipse Con 2009   Sca Tools Short Talk
Eclipse Con 2009 Sca Tools Short TalkVincent Zurczak
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008rajivmordani
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionObeo
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksChris Aniszczyk
 
Odo improving the developer experience on OpenShift - hack &amp; sangria
Odo   improving the developer experience on OpenShift - hack &amp; sangriaOdo   improving the developer experience on OpenShift - hack &amp; sangria
Odo improving the developer experience on OpenShift - hack &amp; sangriaJorge Morales
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & TestingChris Aniszczyk
 
Microsoft .NET 6 -What's All About The New Update
Microsoft .NET 6 -What's All About The New UpdateMicrosoft .NET 6 -What's All About The New Update
Microsoft .NET 6 -What's All About The New UpdateAdam John
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Diego Zuluaga
 

Similar to What's New in Plug-in Development (Galileo) (20)

apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training session
 
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMIntroducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
 
Eclipse Con 2009 Sca Tools Short Talk
Eclipse Con 2009   Sca Tools Short TalkEclipse Con 2009   Sca Tools Short Talk
Eclipse Con 2009 Sca Tools Short Talk
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Eclipse
EclipseEclipse
Eclipse
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
 
Codename one
Codename oneCodename one
Codename one
 
Odo improving the developer experience on OpenShift - hack &amp; sangria
Odo   improving the developer experience on OpenShift - hack &amp; sangriaOdo   improving the developer experience on OpenShift - hack &amp; sangria
Odo improving the developer experience on OpenShift - hack &amp; sangria
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & Testing
 
Microsoft .NET 6 -What's All About The New Update
Microsoft .NET 6 -What's All About The New UpdateMicrosoft .NET 6 -What's All About The New Update
Microsoft .NET 6 -What's All About The New Update
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
 

More from Chris Aniszczyk

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationChris Aniszczyk
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Chris Aniszczyk
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative UpdateChris Aniszczyk
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Chris Aniszczyk
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source ProgramsChris Aniszczyk
 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsChris Aniszczyk
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open SourceChris Aniszczyk
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsChris Aniszczyk
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterChris Aniszczyk
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the TweetsChris Aniszczyk
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Chris Aniszczyk
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter StackChris Aniszczyk
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at TwitterChris Aniszczyk
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at TwitterChris Aniszczyk
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonChris Aniszczyk
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with EclipseChris Aniszczyk
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open SourceChris Aniszczyk
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseChris Aniszczyk
 

More from Chris Aniszczyk (20)

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 months
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for Students
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at Twitter
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with Eclipse
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

What's New in Plug-in Development (Galileo)

  • 1. What’s new in Plug-in Development Galileo Edition Chris Aniszczyk (EclipseSource) PDE Co-Lead zx@eclipsesource.com What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 1
  • 2. Agenda • API Tools • UI • Build • The Future What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
  • 3. Agenda • API Tools • UI • Build • The Future What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
  • 4. Ideal Release Equation Developer: Compatibility (producer) + Client: Honor API contract (consumer) = Free migration What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 4
  • 5. The Ideal Never Happens... What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 5
  • 6. The Ideal Never Happens... Developer: (features + deprecation + Optional extensions to existing features + Replacement API + Provisional API) + Client: Illegal internal references = Migration at a cost What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 6
  • 7. API Compatibility •Assist developer with mechanics of API evolution • developers document APIs with restrictions (Javadoc tags) •API Tooling identifies: • binary compatibility issues • breaking API changes, API changes after freeze • API leaks •Suggests bundle version numbers •Inserts and validates @since tags What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 7
  • 8. API Consumption •API descriptions are shipped with bundles •Assist client's task of honoring API contracts • tell them when they break the rules of engagement What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 8
  • 9. System Library Validation Validate system library use based on a bundle's required execution environment (BREE) • if a bundle claims to run on J2SE-1.4, access to members in J2SE-1.5 and higher are flagged as illegal API tooling provides descriptions • install description fragments • J2SE-1.5 description is 1.35 MB What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 9
  • 10. Demo What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 10
  • 11. API Tools in Build and IDE •Analysis engine •Runs without OSGi or a workspace •Runs in engineering build (via ant tasks) •Runs in workspace (via builder) •Inputs •bundles •baseline •problem filters •Outputs •problems What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 11
  • 12. Infrastructure Enhancements •Test Suite •Built a large regression test suite (>2000 tests) •Found and fixed a lot of bugs (>200) •Developed performance tests •Improved •Analysis of split bundles (compare > compare.core) •API leak analysis (reduced false positives) •Performance of incremental build (in progress) What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 12
  • 13. API Usage Scans •A producer centric view of APIs used by components •Find out which parts of your API are consumed by others •Set up scans for cross sections. E.g. what are the references between WTP and the SDK? What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 13
  • 14. Who is {ab}using JDT? What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 14
  • 15. Demo What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 15
  • 16. Why API Usage Scans? API producers can see what internals are being used • Inform clients how to use proper API • Determine what new API needs to be added • Know what clients will be broken • Avoid breaking internals until clients have migrated Future Directions? • Consumers provide producers with API use scan • Tooling warns when producer breaks a dependency • Central registry of API use scans What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 16
  • 17. Agenda • API Tools • UI • Build • The Future What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
  • 18. Target Definitions A fundamental task of PDE is to manage the set of plug-ins (bundles) that the workspace is compiled and run against • Provisional API for target definitions • Compose target with various bundle sources installations vs. directories o features o set of installable units from p2 repositories o • Leveraging the API within PDE an API baseline is just a target definition o plug-in import o What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 18
  • 19. Target Definition User Interface • Instead of having one target platform, the user can manage a set of target definitions and switch between them • Targets definitions are backed by files in the metadata or workspace • Preference page sets workspace's active target and provides wizards to create/edit targets • Users can modify target definitions using an editor What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 19
  • 20. Manage Target Definitions What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 20
  • 21. Edit Target Definitions What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 21
  • 22. Demo What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 22
  • 23. Plug-in Export Enhancements Export and install into running platform • build and export plug-ins and install them into the running host • replaces the old quot;export, copy, paste, delete, restartquot; slam technique Export existing class files from workspace • avoid re-compiling Generate source bundles Keypass support What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 23
  • 24. Plug-in Export and p2 Metadata Export with Metadata • Current support uses 3.4 metadata generator (binary jars) • Coming in 3.5 metadata support using p2 publisher (source) Exporting Products • Coming in 3.5, product export with metadata will perform a director install to get a fully p2 enabled product. What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 24
  • 25. Demo What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 25
  • 26. Start Levels What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 26
  • 27. Declarative Services Tooling • OSGi Declarative Services in Eclipse 3.5 • PDE provides DS Tooling What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 27
  • 28. Demo What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 28
  • 29. Product Definition Enhancements • Versions • License • Start levels • Properties • Optional Product Extension What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 29
  • 30. Target Platform State • The state of the state (target platform) What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 30
  • 31. Plug-in Spy • I Spy Menus! What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 31
  • 32. Plug-in Registry • OSGi Services What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 32
  • 33. Category Definitions • Categorize your features What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 33
  • 34. Agenda • API Tools • UI • Build • The Future What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
  • 35. Build and p2 Building with p2: quot;p2.gathering=truequot; • Supports publishing from source by gathering compile results • Feature builds result in a p2 repository • Product builds result in a installed p2 enabled product (or repo) • Consume zips of repositories in your build via transformed repos p2 releng tools • Process artifact repositories • Sign, perform pack200 processing • Mirror tools: o Mirror using a baseline to keep pre-existing binaries. o Use a comparator to detect differences against pre-existing binaries. What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 35
  • 36. Sorting Dependencies In Eclipse 3.4 and earlier, compilation is done via the feature hierarchy • Features are visited depth-first. • Within a given feature, plug-ins are compiled in dependency order • Required careful management of feature hierarchy In Eclipse 3.5, we can sort bundles according to dependencies • parallelCompilation=true • flattenDependencies=true <project name=quot;Compile masterquot; default=quot;mainquot;> <target name=quot;mainquot;> <parallel threadsPerProcessor='3'> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.junit4quot; target=quot;build.jarsquot;/> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.rcpquot; target=quot;build.jarsquot;/> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.osgiquot; target=quot;build.jarsquot;/> </parallel> <parallel threadsPerProcessor='3'> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.junit4.runtimequot; target=quot;build.jarsquot;/> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.doc.userquot; target=quot;build.jarsquot;/> <ant antfile=quot;build.xmlquot; dir=quot;plugins/org.eclipse.jdt.doc.isvquot; target=quot;build.jarsquot;/> </parallel> .... What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 36
  • 37. More Build Improvements • Performance Improvements reusing .class files from the workspace o avoiding some copying while building plug-ins o publishing to a p2 repository directly from source o • Signing with Keypass • Per Feature Individual Source Bundles • Product build improvements • Custom Execution Environments What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 37
  • 38. Agenda • API Tools • UI • Build • The Future What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource
  • 39. API Tooling • API comparison views/reports show me the API changes between two releases o • Determine compatible version ranges of require bundles o as dependencies are introduced/removed o which versions satisfy my set of references o • Analyze pure Java projects need a way to specify package visibility (API descriptions) o JSR 277 - Java Module System o • Tighter integration with Java builder feed a fine grained set of access rules to the Java compiler o • Package level versioning agree on a versioning specification o • Analyze extension points & extensions What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 39
  • 40. Target Management Support target platform per project in the workspace • share target definition on classpath with team • share API baseline on a classpath with team API to compose/manipulate targets Support provisioned targets via repositories • bundles are actually installed into target (using p2) • has a managed profile • running/debugging installs workspace bundles and leverages OSGi framework to perform launch Unify target concepts/implementation • target platform, launch configs, products all have similar information What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 40
  • 41. Launching •Support other OSGi Frameworks •Take advantage of new OSGi Launching APIs What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 41
  • 42. Repository Tooling • Repository Management  browse  publish  install into target(s) What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 42
  • 43. Build •Further Integration with p2 •Improved fetching from p2 repositories •Improved reuse of p2 metadata •Publishing p2 products •Incremental Building •Workspace Integration What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 43
  • 44. OSGi and Community Building We aren't alone in the bundle tooling world! No reason to reinvent the wheel! PDE is attended the OSGi Tool Summit What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource 44
  • 45. Thank you for your attention! • Questions and feedback welcome! • What do you want from PDE? Chris Aniszczyk (EclipseSource) zx@eclipsesource.com What’s New in Plug-in Development | Galileo Edition | © 2009 EclipseSource

Editor's Notes