SlideShare une entreprise Scribd logo
1  sur  33
PDE State of the Union

                                                                Chris Aniszczyk (EclipseSource)
                                                                                     zx@eclipsesource.com

                                                                                    Andrew Niefer (IBM)
                                                                                       aniefer@ca.ibm.com

                                                                                     Darin Wright (IBM)
                                                                                Darin_Wright@ca.ibm.com



                            Confidential | Date | Other Information, if necessary
March 25th, 2009
                                                                                                © 2002 IBM Corporation

Wednesday, March 25, 2009
Agenda
          •   API Tools
          •   UI
          •   Build
          •   The Future




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Agenda
          •   API Tools
          •   UI
          •   Build
          •   The Future




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Ideal Release Equation

           Developer: Compatibility (producer)

                                                                     +

                Client: Honor API contract (consumer)

                                                                     =

                                               Free migration

       4            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
The Ideal Never Happens...

                      Developer: (features + deprecation +
                     Optional extensions to existing features +
                               Replacement API +
                                 Provisional API)

                                                                     +
                              Client: Illegal internal references

                                                                     =
                                               Migration at a cost
       5            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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




       6            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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




       7            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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



       8            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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)




       9            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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



       10           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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?




       11           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Who is {ab}using JDT?




       12           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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




       13           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Agenda
          •   API Tools
          •   UI
          •   Build
          •   The Future




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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 an update sites/p2
                o
                    repositories
            • Leveraging the API within PDE
                    an API baseline is just a target definition
                o
                    plug-in import
                o

       15           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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


       16           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Manage Target Definitions




       17           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Edit Target Definitions




       18           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Start Levels




       19           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Declarative Services Tooling

            • OSGi Declarative Services in Eclipse 3.5
            • PDE provides DS Tooling




       20           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Product Definition Enhancements

            •   Versions
            •   License
            •   Start levels
            •   Properties
            •   Optional Product Extension




       21           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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




       22           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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.




       23           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Agenda
          •   API Tools
          •   UI
          •   Build
          •   The Future




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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.



       25           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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>
                  ....




       26           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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




       27            PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Agenda
          •   API Tools
          •   UI
          •   Build
          •   The Future




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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
       29           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
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
       30           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Build

            • Exporting p2 from the UI
            • Further Integration with p2
                    Improved fetching from p2 repositories
                o
                    Improved Reuse of p2 metadata
                o
                    Publishing p2 products
                o
                    Repository management tools
                o


        The perennial favorites:
            • Incremental building ?
            • Workspace integration ?




       31           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
OSGi and Community Building

        We aren't alone in the bundle tooling world!

        No reason to reinvent the wheel!

        PDE is attending the OSGi Tool Summit on Friday




       32           PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009
Thank you for your attention!

          • Questions and feedback welcome!


                                                                             Chris Aniszczyk (EclipseSource)
                                                                                                     zx@eclipsesource.com

                                                                                                    Andrew Niefer (IBM)
                                                                                                         aniefer@ca.ibm.com

                                                                                                       Darin Wright (IBM)
                                                                                                darin_wright@ca.ibm.com




                    PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0

Wednesday, March 25, 2009

Contenu connexe

Similaire à PDE State Of The Union

A glimpse-of-cbd
A glimpse-of-cbdA glimpse-of-cbd
A glimpse-of-cbd
scuffio
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
Olivier Thomann
 
Five Steps to Add AppUp .NET SDK to Microsoft Visual Studio
Five Steps to Add AppUp .NET SDK to Microsoft Visual StudioFive Steps to Add AppUp .NET SDK to Microsoft Visual Studio
Five Steps to Add AppUp .NET SDK to Microsoft Visual Studio
readwritehack
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_ps
Majong DevJfu
 

Similaire à PDE State Of The Union (20)

API Tooling in Eclipse
API Tooling in EclipseAPI Tooling in Eclipse
API Tooling in Eclipse
 
A glimpse-of-cbd
A glimpse-of-cbdA glimpse-of-cbd
A glimpse-of-cbd
 
Whats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ HargraveWhats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ Hargrave
 
Android and OSGi Can They Work Together - BJ Hargrave & Neil Bartlett
Android and OSGi Can They Work Together - BJ Hargrave & Neil BartlettAndroid and OSGi Can They Work Together - BJ Hargrave & Neil Bartlett
Android and OSGi Can They Work Together - BJ Hargrave & Neil Bartlett
 
PCF vs Canvas Apps
PCF vs Canvas AppsPCF vs Canvas Apps
PCF vs Canvas Apps
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
 
ABC of Platform Workspace
ABC of Platform WorkspaceABC of Platform Workspace
ABC of Platform Workspace
 
Five Steps to Add AppUp .NET SDK to Microsoft Visual Studio
Five Steps to Add AppUp .NET SDK to Microsoft Visual StudioFive Steps to Add AppUp .NET SDK to Microsoft Visual Studio
Five Steps to Add AppUp .NET SDK to Microsoft Visual Studio
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_ps
 
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
 
BP207 - Apps, apps, apps and more apps: Meet the very best open source apps f...
BP207 - Apps, apps, apps and more apps: Meet the very best open source apps f...BP207 - Apps, apps, apps and more apps: Meet the very best open source apps f...
BP207 - Apps, apps, apps and more apps: Meet the very best open source apps f...
 
UrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesUrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slides
 
All About Jazz Team Server Technology
All About Jazz Team Server TechnologyAll About Jazz Team Server Technology
All About Jazz Team Server Technology
 
Overview
OverviewOverview
Overview
 
NPR API: Create Once Publish Everywhere
NPR API: Create Once Publish EverywhereNPR API: Create Once Publish Everywhere
NPR API: Create Once Publish Everywhere
 
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) – Automotive
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) – AutomotiveUnlock Your CAD Data for Real-Time Development (Unity+PiXYZ) – Automotive
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) – Automotive
 
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) - AEC
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) - AECUnlock Your CAD Data for Real-Time Development (Unity+PiXYZ) - AEC
Unlock Your CAD Data for Real-Time Development (Unity+PiXYZ) - AEC
 
CI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps PipelineCI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps Pipeline
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
 
Collaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applications
 

Plus de Chris Aniszczyk

The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
Chris Aniszczyk
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
Chris 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 Hudson
Chris Aniszczyk
 

Plus de 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
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

PDE State Of The Union

  • 1. PDE State of the Union Chris Aniszczyk (EclipseSource) zx@eclipsesource.com Andrew Niefer (IBM) aniefer@ca.ibm.com Darin Wright (IBM) Darin_Wright@ca.ibm.com Confidential | Date | Other Information, if necessary March 25th, 2009 © 2002 IBM Corporation Wednesday, March 25, 2009
  • 2. Agenda • API Tools • UI • Build • The Future PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 3. Agenda • API Tools • UI • Build • The Future PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 4. Ideal Release Equation Developer: Compatibility (producer) + Client: Honor API contract (consumer) = Free migration 4 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 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 5 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 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 6 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 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 7 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 8. 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 8 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 9. 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) 9 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 10. 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 10 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 11. 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? 11 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 12. Who is {ab}using JDT? 12 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 13. 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 13 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 14. Agenda • API Tools • UI • Build • The Future PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 15. 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 an update sites/p2 o repositories • Leveraging the API within PDE an API baseline is just a target definition o plug-in import o 15 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 16. 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 16 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 17. Manage Target Definitions 17 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 18. Edit Target Definitions 18 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 19. Start Levels 19 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 20. Declarative Services Tooling • OSGi Declarative Services in Eclipse 3.5 • PDE provides DS Tooling 20 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 21. Product Definition Enhancements • Versions • License • Start levels • Properties • Optional Product Extension 21 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 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 22 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 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. 23 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 24. Agenda • API Tools • UI • Build • The Future PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 25. 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. 25 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 26. 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> .... 26 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 27. 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 27 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 28. Agenda • API Tools • UI • Build • The Future PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 29. 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 29 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 30. 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 30 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 31. Build • Exporting p2 from the UI • Further Integration with p2 Improved fetching from p2 repositories o Improved Reuse of p2 metadata o Publishing p2 products o Repository management tools o The perennial favorites: • Incremental building ? • Workspace integration ? 31 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 32. OSGi and Community Building We aren't alone in the bundle tooling world! No reason to reinvent the wheel! PDE is attending the OSGi Tool Summit on Friday 32 PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009
  • 33. Thank you for your attention! • Questions and feedback welcome! Chris Aniszczyk (EclipseSource) zx@eclipsesource.com Andrew Niefer (IBM) aniefer@ca.ibm.com Darin Wright (IBM) darin_wright@ca.ibm.com PDE State of the Union | © 2009 by C. Aniszczyk, D. Wright, A. Niefer; made available under the EPL v1.0 Wednesday, March 25, 2009

Notes de l'éditeur