SlideShare a Scribd company logo
Eclipse Launching Framework ,[object Object],[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

What's hot

L18 applets
L18 appletsL18 applets
L18 applets
teach4uin
 
Applet in JAVA
Applet in JAVAApplet in JAVA
Applet in JAVA
Jignesh Majethiya
 
Java applets
Java appletsJava applets
Java applets
Pihu Goel
 
ITFT- Applet in java
ITFT- Applet in javaITFT- Applet in java
ITFT- Applet in java
Atul Sehdev
 
Applets
AppletsApplets
java applets
java appletsjava applets
java applets
Waheed Warraich
 
Appl clas nd architect.56
Appl clas nd architect.56Appl clas nd architect.56
Appl clas nd architect.56myrajendra
 
Basic of Applet
Basic of AppletBasic of Applet
Basic of Applet
suraj pandey
 
Oop suplemnertary september 2019
Oop suplemnertary september  2019Oop suplemnertary september  2019
Oop suplemnertary september 2019
ktuonlinenotes
 
Java applet - java
Java applet - javaJava applet - java
Java applet - java
Rubaya Mim
 
Applet skelton58
Applet skelton58Applet skelton58
Applet skelton58myrajendra
 
Java Applet
Java AppletJava Applet
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
QAFest
 
Java Applet
Java AppletJava Applet
Java Applet
Athharul Haq
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
Tareq Hasan
 
Java applet basics
Java applet basicsJava applet basics
Java applet basicsSunil Pandey
 
Maven plugin guide using Modello Framework
Maven plugin guide using Modello FrameworkMaven plugin guide using Modello Framework
Maven plugin guide using Modello Framework
fulvio russo
 

What's hot (20)

L18 applets
L18 appletsL18 applets
L18 applets
 
Java Applets
Java AppletsJava Applets
Java Applets
 
Applet in JAVA
Applet in JAVAApplet in JAVA
Applet in JAVA
 
Java applets
Java appletsJava applets
Java applets
 
ITFT- Applet in java
ITFT- Applet in javaITFT- Applet in java
ITFT- Applet in java
 
Applets
AppletsApplets
Applets
 
java applets
java appletsjava applets
java applets
 
Appl clas nd architect.56
Appl clas nd architect.56Appl clas nd architect.56
Appl clas nd architect.56
 
Basic of Applet
Basic of AppletBasic of Applet
Basic of Applet
 
Oop suplemnertary september 2019
Oop suplemnertary september  2019Oop suplemnertary september  2019
Oop suplemnertary september 2019
 
Java swings
Java swingsJava swings
Java swings
 
Java applet - java
Java applet - javaJava applet - java
Java applet - java
 
Applet skelton58
Applet skelton58Applet skelton58
Applet skelton58
 
Java Applet
Java AppletJava Applet
Java Applet
 
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
QA Fest 2019. Алексей Альтер-Песоцкий. Snapshot testing with native mobile fr...
 
Java Applet
Java AppletJava Applet
Java Applet
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
 
04b swing tutorial
04b swing tutorial04b swing tutorial
04b swing tutorial
 
Java applet basics
Java applet basicsJava applet basics
Java applet basics
 
Maven plugin guide using Modello Framework
Maven plugin guide using Modello FrameworkMaven plugin guide using Modello Framework
Maven plugin guide using Modello Framework
 

Similar to Eclipse Launching Framework

Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
whbath
 
Gui
GuiGui
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
Mikkel Flindt Heisterberg
 
SwingApplet.pptx
SwingApplet.pptxSwingApplet.pptx
SwingApplet.pptx
GEETHAS668001
 
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex ScenariosUnit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Flutter Agency
 
Spring boot
Spring bootSpring boot
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorial
antiw
 
Quick Intro to Android Development
Quick Intro to Android DevelopmentQuick Intro to Android Development
Quick Intro to Android DevelopmentJussi Pohjolainen
 
Pde build
Pde buildPde build
Pde build
Owen Ou
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected Journey
Oren Farhi
 
Maven
MavenMaven
Maven
feng lee
 
Angular performance slides
Angular performance slidesAngular performance slides
Angular performance slides
David Barreto
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driver
Pankaj Biswas
 
Swing
SwingSwing
Burp Suite Extension Development
Burp Suite Extension DevelopmentBurp Suite Extension Development
Burp Suite Extension Development
NSConclave
 

Similar to Eclipse Launching Framework (20)

Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
Gui
GuiGui
Gui
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
myslide1
myslide1myslide1
myslide1
 
myslide6
myslide6myslide6
myslide6
 
NewSeriesSlideShare
NewSeriesSlideShareNewSeriesSlideShare
NewSeriesSlideShare
 
Unit 7 Java
Unit 7 JavaUnit 7 Java
Unit 7 Java
 
SwingApplet.pptx
SwingApplet.pptxSwingApplet.pptx
SwingApplet.pptx
 
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex ScenariosUnit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
 
Spring boot
Spring bootSpring boot
Spring boot
 
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorial
 
Quick Intro to Android Development
Quick Intro to Android DevelopmentQuick Intro to Android Development
Quick Intro to Android Development
 
Pde build
Pde buildPde build
Pde build
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected Journey
 
Maven
MavenMaven
Maven
 
Angular performance slides
Angular performance slidesAngular performance slides
Angular performance slides
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driver
 
Swing
SwingSwing
Swing
 
Burp Suite Extension Development
Burp Suite Extension DevelopmentBurp Suite Extension Development
Burp Suite Extension Development
 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 

Eclipse Launching Framework

  • 1.
  • 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

  1. D:works untime-EclipseApplication.metadata.pluginsorg.eclipse.debug.core.launches config1.launch