SlideShare a Scribd company logo
Eclipse Launching Framework brief introduction and prototype example [email_address] 2010.08
1. Introduction What is Launching? debug.core LaunchConfigurationTypes LaunchConfiguration debug.ui LaunchConfigurationDialog TabGroup Shortcuts 2. Prototype Demo (Run)
1. Introduction
What is Launching? Launching   - running or debugging a program from within Eclipse Launcher   - a set of Java classes that live in an Eclipse plug-in that performs launching   - launcher for Java application, JUnit test suites, ...   - What for  YOUR  application? Launching Framework   - extension mechanism   - Separating model and UI   - debug.core   - debug.ui
debug.core: Launching Framework’s model LaunchConfigurationTypes   - cookie cutters   - how to launch certain types of launch   - Java Application LaunchConfigurations   - cookie made from cutters   - information necessary to perform a launch   - it’s just key/value pair   - boolean, int, Map, List, String   - main class, JRE, VM arguments, ...
LaunchConfigurationTypes Extension point:  org.eclipse.debug.core.launchConfigurationTypes Interface:  org.eclipse.debug.core.model.ILaunchConfigurationDelegate Method:  launch(ILaunchConfiguration configuration, ...) <extension   point=&quot;org.eclipse.debug.core.launchConfigurationTypes&quot;>   <launchConfigurationType   delegate=&quot;test.launch.LaunchConfigurationDelegate&quot;   delegateName=&quot;test.launch.LaunchConfigurationDelegate&quot;   id=&quot;test.launch.launchConfigurationType&quot;   modes=&quot;debug,run&quot;   name=&quot;Test Launcher&quot;>   </launchConfigurationType> </extension>
debug.ui: Launching Framework’s UI LaunchConfigurationDialog Icon TabGroup   - utilize “Jigloo” Shortcuts   - ‘Run As’   - no Dialog   - create, set to default values and launch in a click   -  launch(ISelection selection, ...)   -  launch(IEditorPart editor, ...)
Icon Extension point:  org.eclipse.debug. ui.launchConfigurationTypeImages <extension   point=&quot;org.eclipse.debug.ui.launchConfigurationTypeImages&quot;>   <launchConfigurationTypeImage   configTypeID=&quot;test.launch.launchConfigurationType&quot;   icon=&quot;res/emu.png&quot;   id=&quot;test.launch.launchConfigurationIcon&quot;>   </launchConfigurationTypeImage> </extension>
TabGroup (1) Extension point:  org.eclipse.debug.ui.launchConfigurationTabGroups Interface:  org.eclipse.debug.ui.ILaunchConfigurationTabGroup Method:  createTabs(ILaunchConfigurationDialog dialog, ...) <extension   point=&quot;org.eclipse.debug.ui.launchConfigurationTabGroups&quot;>   <launchConfigurationTabGroup   class=&quot;test.launch.LaunchTabGroup&quot;   id=&quot;test.launch..LaunchTabGroup&quot;   type=&quot;test.launch.launchConfigurationType&quot;>   </launchConfigurationTabGroup>  </extension>
TabGroup (2) Steps:   1. write your own tab   - must implement  ILaunchConfigurationTab   - write UI code in  createControl()  // Jigloo comes in!   - value copying methods   -  setDefaults() ;  called when a new config is created   -  performApply() ; read from GUI   -  initializeFrom() ; read from config   2. write  createTabs()   - construct an array of  ILaunchConfigurationTab   -  setTabs() Notice:   - Extend  AbstractLaunchConfigurationTab   - Include [common] tab
Time to launch Steps:   1. write your own launcher   - must implement  ILaunchConfigurationDelegate   - write code in  launch()   -  ILaunchConfiguration ; config   -  mode ; Run or Debug   -  ILaunch ; DebugTarget/Process   -  IProgressMonitor ; monitor   - Construct a command line and pass it to  Runtime.exec()   - Create debug targets/processes and add to the  ILaunch  object Notice:   - Extend  LaunchConfigurationDelegate   - Check monitor ex.)) user cancelled
Advanced concepts Launch Group   - “category”   - built-in: Run, Debug, External Tools Comparator
2. Prototype Demo (Run)
Steps to run Edit MANIFEST.MF Require-Bundle : org.eclipse.ui,  org.eclipse.core.runtime,  org.eclipse.debug.core;bundle-version=&quot;3.5.1&quot;,  org.eclipse.debug.ui;bundle-version=&quot;3.5.2&quot;,  org.eclipse.jdt.launching;bundle-version=&quot;3.5.1“   org.eclipse.jdt.debug.ui;bundle-version=&quot;3.4.1&quot; Run Eclipse Application   - Create project   - Choose [Run Configurations...]
References & ToDo Item References:   - We Have Lift-off: The Launching Framework in Eclipse   http://www.eclipse.org/articles/Article-Launch-Framework/launch.html ToDo:   - Debug artifacts   - IDebugElement, IDebugTarget, IProcess   - ISuspendResume, IBreakpointListener

More Related Content

PPT
Java applets
PPTX
Applet
PPT
Applet Architecture - Introducing Java Applets
PPT
Applet life cycle
PPS
PPT
Applet init nd termination.59
PPT
Java applet
PPTX
java Applet Introduction
Java applets
Applet
Applet Architecture - Introducing Java Applets
Applet life cycle
Applet init nd termination.59
Java applet
java Applet Introduction

What's hot (20)

PPTX
L18 applets
PPTX
Java Applets
PPTX
Applet in JAVA
PPTX
Java applets
PDF
ITFT- Applet in java
PDF
PPT
java applets
PPT
Appl clas nd architect.56
PPT
Basic of Applet
PDF
Oop suplemnertary september 2019
PPT
Java swings
PPTX
Java applet - java
PPT
Applet skelton58
PDF
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
PPT
Java Applet
PPT
Java: Java Applets
PDF
04b swing tutorial
PDF
Java applet basics
PDF
Maven plugin guide using Modello Framework
L18 applets
Java Applets
Applet in JAVA
Java applets
ITFT- Applet in java
java applets
Appl clas nd architect.56
Basic of Applet
Oop suplemnertary september 2019
Java swings
Java applet - java
Applet skelton58
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
Java Applet
Java: Java Applets
04b swing tutorial
Java applet basics
Maven plugin guide using Modello Framework
Ad

Similar to Eclipse Launching Framework (20)

PPT
Introduction To Eclipse RCP
PDF
Eclipse plug in development
ODP
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
PPT
Eclipse IDE
PDF
Advance RCP
PPTX
Let me introduce you: DOTS
KEY
L0020 - The Basic RCP Application
PPT
Creation&imitation
PPT
.NET Debugging Tips and Techniques
PPT
.Net Debugging Techniques
ODP
Plug yourself in and your app will never be the same (1 hr edition)
PPTX
The power of dots
PPT
Eclipse Training - Introduction
PPT
myslide6
PPT
myslide1
PPT
NewSeriesSlideShare
PDF
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
PDF
intro-to-eclipse.pdf
PDF
Exploring MTJ
PDF
Eclipse IDE, 2019.09, Java Development
Introduction To Eclipse RCP
Eclipse plug in development
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Eclipse IDE
Advance RCP
Let me introduce you: DOTS
L0020 - The Basic RCP Application
Creation&imitation
.NET Debugging Tips and Techniques
.Net Debugging Techniques
Plug yourself in and your app will never be the same (1 hr edition)
The power of dots
Eclipse Training - Introduction
myslide6
myslide1
NewSeriesSlideShare
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
intro-to-eclipse.pdf
Exploring MTJ
Eclipse IDE, 2019.09, Java Development
Ad

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Approach and Philosophy of On baking technology
PPTX
Spectroscopy.pptx food analysis technology
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf
Big Data Technologies - Introduction.pptx
Empathic Computing: Creating Shared Understanding
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Programs and apps: productivity, graphics, security and other tools
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
sap open course for s4hana steps from ECC to s4
Approach and Philosophy of On baking technology
Spectroscopy.pptx food analysis technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Eclipse Launching Framework

  • 1. Eclipse Launching Framework brief introduction and prototype example [email_address] 2010.08
  • 2. 1. Introduction What is Launching? debug.core LaunchConfigurationTypes LaunchConfiguration debug.ui LaunchConfigurationDialog TabGroup Shortcuts 2. Prototype Demo (Run)
  • 4. What is Launching? Launching - running or debugging a program from within Eclipse Launcher - a set of Java classes that live in an Eclipse plug-in that performs launching - launcher for Java application, JUnit test suites, ... - What for YOUR application? Launching Framework - extension mechanism - Separating model and UI - debug.core - debug.ui
  • 5. debug.core: Launching Framework’s model LaunchConfigurationTypes - cookie cutters - how to launch certain types of launch - Java Application LaunchConfigurations - cookie made from cutters - information necessary to perform a launch - it’s just key/value pair - boolean, int, Map, List, String - main class, JRE, VM arguments, ...
  • 6. LaunchConfigurationTypes Extension point: org.eclipse.debug.core.launchConfigurationTypes Interface: org.eclipse.debug.core.model.ILaunchConfigurationDelegate Method: launch(ILaunchConfiguration configuration, ...) <extension point=&quot;org.eclipse.debug.core.launchConfigurationTypes&quot;> <launchConfigurationType delegate=&quot;test.launch.LaunchConfigurationDelegate&quot; delegateName=&quot;test.launch.LaunchConfigurationDelegate&quot; id=&quot;test.launch.launchConfigurationType&quot; modes=&quot;debug,run&quot; name=&quot;Test Launcher&quot;> </launchConfigurationType> </extension>
  • 7. debug.ui: Launching Framework’s UI LaunchConfigurationDialog Icon TabGroup - utilize “Jigloo” Shortcuts - ‘Run As’ - no Dialog - create, set to default values and launch in a click - launch(ISelection selection, ...) - launch(IEditorPart editor, ...)
  • 8. Icon Extension point: org.eclipse.debug. ui.launchConfigurationTypeImages <extension point=&quot;org.eclipse.debug.ui.launchConfigurationTypeImages&quot;> <launchConfigurationTypeImage configTypeID=&quot;test.launch.launchConfigurationType&quot; icon=&quot;res/emu.png&quot; id=&quot;test.launch.launchConfigurationIcon&quot;> </launchConfigurationTypeImage> </extension>
  • 9. TabGroup (1) Extension point: org.eclipse.debug.ui.launchConfigurationTabGroups Interface: org.eclipse.debug.ui.ILaunchConfigurationTabGroup Method: createTabs(ILaunchConfigurationDialog dialog, ...) <extension point=&quot;org.eclipse.debug.ui.launchConfigurationTabGroups&quot;> <launchConfigurationTabGroup class=&quot;test.launch.LaunchTabGroup&quot; id=&quot;test.launch..LaunchTabGroup&quot; type=&quot;test.launch.launchConfigurationType&quot;> </launchConfigurationTabGroup> </extension>
  • 10. TabGroup (2) Steps: 1. write your own tab - must implement ILaunchConfigurationTab - write UI code in createControl() // Jigloo comes in! - value copying methods - setDefaults() ; called when a new config is created - performApply() ; read from GUI - initializeFrom() ; read from config 2. write createTabs() - construct an array of ILaunchConfigurationTab - setTabs() Notice: - Extend AbstractLaunchConfigurationTab - Include [common] tab
  • 11. Time to launch Steps: 1. write your own launcher - must implement ILaunchConfigurationDelegate - write code in launch() - ILaunchConfiguration ; config - mode ; Run or Debug - ILaunch ; DebugTarget/Process - IProgressMonitor ; monitor - Construct a command line and pass it to Runtime.exec() - Create debug targets/processes and add to the ILaunch object Notice: - Extend LaunchConfigurationDelegate - Check monitor ex.)) user cancelled
  • 12. Advanced concepts Launch Group - “category” - built-in: Run, Debug, External Tools Comparator
  • 14. Steps to run Edit MANIFEST.MF Require-Bundle : org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.debug.core;bundle-version=&quot;3.5.1&quot;, org.eclipse.debug.ui;bundle-version=&quot;3.5.2&quot;, org.eclipse.jdt.launching;bundle-version=&quot;3.5.1“ org.eclipse.jdt.debug.ui;bundle-version=&quot;3.4.1&quot; Run Eclipse Application - Create project - Choose [Run Configurations...]
  • 15. References & ToDo Item References: - We Have Lift-off: The Launching Framework in Eclipse http://www.eclipse.org/articles/Article-Launch-Framework/launch.html ToDo: - Debug artifacts - IDebugElement, IDebugTarget, IProcess - ISuspendResume, IBreakpointListener

Editor's Notes

  • #11: D:works untime-EclipseApplication.metadata.pluginsorg.eclipse.debug.core.launches config1.launch