A journey with                       Target PlatformsMickael Istria @mickaelistriaEclipseCon Europe 2012Licensed under CC-...
Target Platforms...“Which dependencies are available?”
Before Target-PlatformsPDE allows you to add dependency to any bundle from IDE                                            ...
Default Target-PlatformsPDE allows you to add dependency to any bundle from IDE                                           ...
Target-platforms                                            p2 Repo B     p2 Repo A                              ● Bundle ...
Edit Target PlatformsFrom Preferences
Edit Target PlatformsWith Target Editor
Edit Target Platforms as XML
Include Sources in IDE                But not in Tycho ;)
Planner vs SlicerPlanner tries to get dependencies – and fails when it cant. [~p2 director]Slicer just takes what you want...
Use TP in IDE       OR
Use TP in a Maven build
Separate Tools and Dependencies                                                Workspace IDE              Eclipse Core 4.2...
Target for compatibility: Example●   JBoss Tools    –   1 target for “minimal dependencies” ensures we can        build an...
Develop for an “old” productWithout loading all code as projects in your workspace                                      Wo...
Share TP: on SCM
Share TP: “mvn deploy” it
Performances: aggregate    repoA              repoB                 multiple                               repoC          ...
Performances: mirrorshttp://wiki.eclipse.org/Tycho/Target_Platform/Authentication_and_Mirrors#Mirrors  remote             ...
Missing concept: project-specific TP●   PDE only allows 1 TP for the whole workspace    –   Finer grain would be convenien...
Missing concept: “compound” TPCompose, use multiple or reference target-platforms–   1 .target for general deps (Eclipse.o...
Related (?) topics●   Most p2 repo are not sustainable    –   https://bugs.eclipse.org/bugs/show_bug.cgi?id=331385    –   ...
Questions?                            Discussions?                              Debates?Mickael Istria @mickaelistriaEclip...
Upcoming SlideShare
Loading in …5
×

A journey with Target Platforms

3,246
-1

Published on

Slides from EclipseCon Europe 2012 session "A journey with Target Platforms".
This presentation contains some tips on tricks on how to leverage Eclipse target platforms at development time and build time, based n experiences from JBoss Tools team.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,246
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

A journey with Target Platforms

  1. 1. A journey with Target PlatformsMickael Istria @mickaelistriaEclipseCon Europe 2012Licensed under CC-BY 3.0
  2. 2. Target Platforms...“Which dependencies are available?”
  3. 3. Before Target-PlatformsPDE allows you to add dependency to any bundle from IDE Workspace IDE Eclipse Core 4.2 Bundle B PDE Default TP EGit Feature F GMF Tooling Mylyn JBoss Tools 4.0 Depends on Does NOT depend on Depends on ANOTHER VERSION
  4. 4. Default Target-PlatformsPDE allows you to add dependency to any bundle from IDE Workspace IDE Eclipse Core 4.2 Bundle B PDE Default TP EGit Feature F GMF Tooling Mylyn JBoss Tools 4.0 Depends on Does NOT depend on Depends on ANOTHER VERSION
  5. 5. Target-platforms p2 Repo B p2 Repo A ● Bundle B1 (1.3.0) ● Bundle B1 (1.0.0) ● Bundle B3 (1.0.0) ● Bundle B2 (1.0.0) ● Feature F1 (1.3.0) ● Feature F1 (1.0.0) My dependencies set: Local Filesystem a .target file ● Bundle B3 (1.0.0) ● Bundle B4 (5.1.201)Local Filesystem● RCP app (“installation”) ● plugins/* Local Filesystem ● Feature F1 (1.2.0) ● Feature F3 (1.0.0) ● Feature F4 (5.1.201)Specify available dependencies in PDE Workspaceor Maven Reactor.
  6. 6. Edit Target PlatformsFrom Preferences
  7. 7. Edit Target PlatformsWith Target Editor
  8. 8. Edit Target Platforms as XML
  9. 9. Include Sources in IDE But not in Tycho ;)
  10. 10. Planner vs SlicerPlanner tries to get dependencies – and fails when it cant. [~p2 director]Slicer just takes what you want it to take. [~p2 mirror]
  11. 11. Use TP in IDE OR
  12. 12. Use TP in a Maven build
  13. 13. Separate Tools and Dependencies Workspace IDE Eclipse Core 4.2 Bundle B PDE Managed TP EGit Feature FGMF Tooling Mylyn JBoss Tools 4.0 EGit repo JBoss Tools 3.3 repo Eclipse Indigo repo ● Eclipse Core 3.7
  14. 14. Target for compatibility: Example● JBoss Tools – 1 target for “minimal dependencies” ensures we can build and run against our minimal requirements – 1 target for “recommended dependencies” ensures we can build and run against latest versions of deps● JBoss Developer Studio (install into Eclipse) – 1 target for “minimal” – 1 target for “recommended”● JBoss Developer Studio (RCP) Same one – Uses “recommended” for product build
  15. 15. Develop for an “old” productWithout loading all code as projects in your workspace Workspace IDE Eclipse Core 4.2 Bundle A (1.1.0) PDE Managed TP EGit Bundle C GMF Tooling Mylyn JBoss Tools 4.0 Older RCP app ● Bundle A (1.0.0) ● Bundle B IDE only! ● Feature F Does not work with Tycho
  16. 16. Share TP: on SCM
  17. 17. Share TP: “mvn deploy” it
  18. 18. Performances: aggregate repoA repoB multiple repoC aggregated Aggregated repo repoE repoD● Create a new site + a new .target file● 2 Maven Mojos available – “Flatten” platform (multiple to aggregated) org.jboss.tools.tycho-plugins:repository-utils:0.0.1-SNAPSHOT:flattern-target – TP to p2 repo org.jboss.tools.tycho-plugins:repository-utils:0.0.1-SNAPSHOT:mirror-target-to-repo
  19. 19. Performances: mirrorshttp://wiki.eclipse.org/Tycho/Target_Platform/Authentication_and_Mirrors#Mirrors remote piiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing Remote repo remote + ping Local mirror repo Mirror defintion In settings.xml
  20. 20. Missing concept: project-specific TP● PDE only allows 1 TP for the whole workspace – Finer grain would be convenient – https://bugs.eclipse.org/bugs/show_bug.cgi?id=159072● Tycho already supports “project-specific” TP. – Could PDE rely on m2e and Tycho to use TP specified in project pom?
  21. 21. Missing concept: “compound” TPCompose, use multiple or reference target-platforms– 1 .target for general deps (Eclipse.org, GWT...)– Each project adds its specific extra deps– Not supported in PDE nor Tycho ● https://bugs.eclipse.org/bugs/show_bug.cgi?id=392652 ● https://bugs.eclipse.org/bugs/show_bug.cgi?id=380120– Maven plugin to merge targets ● https://github.com/jbosstools/jbosstools-maven-plugins
  22. 22. Related (?) topics● Most p2 repo are not sustainable – https://bugs.eclipse.org/bugs/show_bug.cgi?id=331385 – Mirror and manage them locally● Still no link between Eclipse/p2/Tycho and SpringSource EBR – Would be useful to allow EBR bundles in a TP – https://issuetracker.springsource.com/browse/EBR-868
  23. 23. Questions? Discussions? Debates?Mickael Istria @mickaelistriaEclipseCon Europe 2012Licensed under CC-BY 3.0
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×