Your SlideShare is downloading. ×
0
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Eclipse - Single Source;Three Runtimes

2,888

Published on

Presentation from <a>Suresh Krishna madhuvarsu</a> on the RCP, eRCP and RAP in the Redwood City DemoCamp.

Presentation from <a>Suresh Krishna madhuvarsu</a> on the RCP, eRCP and RAP in the Redwood City DemoCamp.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,888
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
71
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Single Source : Three Runtimes <ul><li>Suresh Krishna </li></ul><ul><li>Oracle Inc. </li></ul><ul><li>[email_address] </li></ul>A tale of Desktop (RCP), Web (RAP) and Mobile (eRCP) applications.
  • 2. Motivation is to… <ul><li>Understand the strengths and limitations of three runtimes (RCP, RAP and eRCP) </li></ul><ul><li>Leverage these Eclipse platforms for business solutions </li></ul><ul><li>“how much” is really free ? </li></ul>
  • 3.  
  • 4. Develop for Desktop; Get Web and Mobile app for Free* * conditions and refactoring apply
  • 5. Simple Application… <ul><li>“Task Organizer” application is created using Eclipse RCP </li></ul><ul><li>Application is functionally simple </li></ul><ul><li>Can add, modify and delete the personal tasks </li></ul><ul><li>Data is populated from a simple in memory model; modified data is not persisted </li></ul><ul><li>Demonstrates the strengths and limitations of runtimes (RCP, RAP and eRCP) </li></ul>
  • 6. RCP – TaskOrganizer <ul><li>Create a simple View with Eclipse RCP plugin wizard </li></ul><ul><li>Contains simple TableViewer, TaskView, Sorter and CellModifier </li></ul><ul><li>Productization is done with the icons, splash screen and the launcher name </li></ul><ul><li>Personal Organization is exported as product so that it can be distributed as standalone </li></ul>
  • 7. RCP – TaskOrganizer Code <ul><li>TaskOrganizerApplication : Implements Application and defines the application's life cycle </li></ul><ul><li>ApplicationActionBarAdvisor : Manages the life cycle of actions added to windows </li></ul><ul><li>ApplicationWorkbenchAdvisor : Initializes the perspective </li></ul><ul><li>ApplicationWorkbenchWindowAdvisor : responsible for many of the visual aspects of windows (size, statusline, menubars, etc.) </li></ul><ul><li>Perspective : Contains the Personal Task Viewer that will be visible in the application </li></ul><ul><li>PersonalTaskView : Simple Table Viewer with data pre-populated from a model </li></ul>
  • 8. RCP – TaskOrganizer – Demo
  • 9. RAP – Overview <ul><li>RAP allows you to build Ajax-enabled Web applications using the Eclipse development model. </li></ul><ul><li>Browser-side widget rendering is done with the qooxdoo Ajax library </li></ul><ul><li>Abstracts the JavaScript and allows you to work with the Java APIs to build RIAs. </li></ul><ul><li>Custom widget developers need to have JavaScript , qooxdoo , and RAP knowledge. </li></ul><ul><li>Client-side development allows for the embedding of client-side technologies like other JavaScript frameworks , Flash , and applets . </li></ul>
  • 10. RAP - Architecture <ul><li>Special implementation of the SWT, JFace and Workbench, and, as such, is actually a subset of RCP. </li></ul><ul><li>RAP applications are accessed via standard browsers in the same way RCP applications are executed on the desktop environment. </li></ul>
  • 11. RAP - TaskOrganizer <ul><li>Since RAP is an RCP subset, it cannot co-exist in the same Eclipse instance as RCP. </li></ul><ul><li>Download and set the RAP target platform; alternatively one can download the RAP SDK. </li></ul><ul><li>Refactor the code </li></ul><ul><ul><li>Extension Points </li></ul></ul><ul><ul><li>Plugin Dependencies </li></ul></ul><ul><ul><li>Remove/Add/Modify classes </li></ul></ul><ul><ul><li>Define EntryPoint </li></ul></ul><ul><li>Test with OSGi configuration </li></ul>
  • 12. RAP – TaskOrganizer (transformation) <ul><li>Organize the RAP application plug-in dependencies. </li></ul><ul><ul><li>org.eclipse.ui , add the RAP equivalent org.eclipse.rap.ui . </li></ul></ul><ul><li>Look for the compile errors and correct them with compatible APIs, constants, etc. </li></ul><ul><ul><li>Shell </li></ul></ul><ul><ul><li>SWT Style Bits </li></ul></ul><ul><li>Modify or removed the functionality currently not supported in RAP (e.g., CellEditors). </li></ul><ul><ul><li>As of now CellEditors are not supported in RAP </li></ul></ul>
  • 13. RAP – TaskOrganizer (transformation) <ul><li>An EntryPoint (org.eclipse.rap.ui.entrypoint) represents the main entry point for a RAP application (It can be compared with the main() method in SWT applications) </li></ul><ul><li>EntryPoint creates the UI with the help of the WorkbenchAdvisor , Initial Perspective, and ApplicationActionBarAdvisor . </li></ul><ul><li>URL <host>:<port>/rap?startup=<entrypointname> </li></ul><ul><li>As RAP uses the OSGi* as the server-side framework, you will want to launch the application with the OSGi framework. </li></ul><ul><li>OSGi framework includes a Jetty server and the startup ports can be configured. </li></ul>* The Equinox's OSGi framework component is the full implementation to the OSGi Core framework R4 specification.
  • 14. RAP – TaskOrganizer - Launch
  • 15. RAP – TaskOrganizer – Editing Capability * CellEditor replacement in the personal task organizer
  • 16. RAP – TaskOrganizer - Branding <ul><li>Add org.eclipse.rap.ui.branding extension point </li></ul><ul><ul><li>servletName: taskOrganizer : </li></ul></ul><ul><ul><ul><li>Allows a user to access the application via localhost:9090/taskOrganizer, rather than /rap. </li></ul></ul></ul><ul><ul><li>title: Personal Task Organizer : </li></ul></ul><ul><ul><ul><li>Will be displayed as the title of the Web page in the browser, either in the title bar or the tab. </li></ul></ul></ul><ul><ul><li>favicon: icons/alt_window_16.gif : </li></ul></ul><ul><ul><ul><li>Available for use as part of the work done in Part 1, but if you have a logo of your own in an .ico file, use that, as many browsers only accept .ico for the favicon. </li></ul></ul></ul><ul><ul><li>exitConfirmation: Do you want to Exit Personal Task Organizer? : </li></ul></ul><ul><ul><ul><li>Will display in a dialog when the user closes his browser or navigates to another URL while running the application. </li></ul></ul></ul>
  • 17. RAP – TaskOrganizer - Branding
  • 18. RAP – TaskOrganizer - Theming <ul><li>Theming is based on CSS and allows you to define colors, fonts, borders, margins, and images for the widgets. </li></ul><ul><li>Add the extension point org.eclipse.rap.ui.themes </li></ul><ul><li>Unfortunately, there is no documentation on what properties can be set on what widgets. </li></ul><ul><ul><li>For example, the menu has its theme listed in Menu.theme.xml, the List in List.theme.xml; etc. </li></ul></ul>
  • 19. RAP – TaskOrganizer – Before/After
  • 20. RAP – TaskOrganizer – Packaging <ul><li>Deploy your application to a servlet container </li></ul><ul><li>Additional plug-ins must be bundled for deployment </li></ul><ul><li>ServletBridge is the connection between the OSGi framework and servlet container. </li></ul><ul><ul><li>org.eclipse.equinox.servletbridge </li></ul></ul><ul><ul><li>org.eclipse.equinox.servletbridge.http </li></ul></ul><ul><ul><li>org.eclipse.equinox.http.servlet </li></ul></ul><ul><ul><li>org.eclipse.equinox.http.registry </li></ul></ul><ul><ul><li>javax.servlet </li></ul></ul><ul><li>Crete a deploy script (war file, config creator, etc…) </li></ul><ul><li>Run the build script to create the necessary files for deployment </li></ul><ul><li>Deploy the WAR file to a servlet container (e.g. Tomcat) </li></ul>
  • 21. RAP – TaskOrganizer - Deploy
  • 22. Smart Phone (R)evolution… <ul><li>Palm Centro/Treo </li></ul><ul><li>Black Berry </li></ul><ul><li>iPhone </li></ul><ul><li>Nokia N/E series, Communicator </li></ul><ul><li>Samsung BlackJack, SCH </li></ul><ul><li>Sony Ericsson P/W series </li></ul>
  • 23. eRCP – Overview <ul><li>eRCP is a project — sponsored by IBM®, Nokia, and Motorola — that removes the desktop-oriented features of RCP. </li></ul><ul><li>Replaces the traditional frameworks to mobile (SWT -> eSWT; JFace -> eJface; Workbench -> eWorkbench; Update -> eUpdate) </li></ul><ul><li>SWT Mobile Extensions package to provide support for embedded UI features. </li></ul><ul><li>eSWT ties directly to the native GUI system. It employs native code to do this and is, therefore, platform-dependent. </li></ul><ul><li>Cannot run the eRCP GUI applications without having a port of eSWT and mobile extensions for the target platform. </li></ul>
  • 24. eRCP - Architecture Mobile Extensions : An optional package that provides UI elements commonly found on mobile devices.
  • 25. eRCP – Supported Platforms <ul><li>4 platforms for development and testing </li></ul><ul><ul><li>Windows Desktop </li></ul></ul><ul><ul><li>Windows Mobile V5/6 Professional </li></ul></ul><ul><ul><li>Windows Mobile V5/6 Standard </li></ul></ul><ul><ul><li>WinCE V4.0 Professional </li></ul></ul><ul><li>Windows Mobile and Windows CE platforms require actual device or the simulator to test the application </li></ul><ul><li>Windows Desktop provides a full eRCP environment; which makes it easy to develop and test the mobile applications on the desktops. </li></ul>
  • 26. eRCP – TaskOrganizer – Refactoring <ul><li>Start with downloading the eRCP for Desktop runtime and set the target environment </li></ul><ul><li>Look for the compilation errors and change </li></ul><ul><ul><li>Dependant plugins </li></ul></ul><ul><ul><ul><li>Add org.eclipse.ercp.eworkbench </li></ul></ul></ul><ul><ul><li>Extension points </li></ul></ul><ul><ul><ul><li>Add org.eclipse.ercp.eworkbench.applications </li></ul></ul></ul><ul><ul><ul><li>Remove org.eclipse.core.runtime.applications </li></ul></ul></ul><ul><ul><ul><li>Remove org.eclipse.ui.perspectives </li></ul></ul></ul><ul><ul><ul><li>Remove org.eclipse.core.runtime.products </li></ul></ul></ul><ul><ul><li>API changes </li></ul></ul><ul><ul><ul><li>SelectionAdapter -> SelectionListener </li></ul></ul></ul><ul><ul><ul><li>Remove CellModifiers -> Not supported </li></ul></ul></ul><ul><ul><ul><li>Remove RCP related classes </li></ul></ul></ul>
  • 27. eRCP – TaskOrganizer – eWorkbench <ul><li>eWorkbench does not have the Perspective model </li></ul><ul><li>An eRCP application does not have an IApplication or IEntryPoint as a starting point </li></ul><ul><li>eRCP app extends the eWorkbench instance and runs as child thread </li></ul><ul><li>eWorkbench shares its execution thread among all eRCP applications (allowing all the applications to run in a single JVM) </li></ul>
  • 28. eRCP – TaskOrganizer – Launch <ul><li>Create a launch configuration using the application type as org.eclipse.ercp.eworkbench.eWorkbench . </li></ul>
  • 29. eRCP – TaskOrganizer – Deployment <ul><li>Earlier release of Symbian OS (S80) has been discontinued and only a handful Windows mobile OS are supported </li></ul><ul><li>eRCP requires a JVM capable of supporting the CDC/FP v1.0 or later whereas majority of today's devices support only CLDC/MIDP. </li></ul><ul><li>Download the version for Windows Mobile 2003/5/6 or Windows CE platforms </li></ul><ul><li>Purchase a licensed copy of IBM WebSphere Everyplace Micro Environment for Windows Mobile, which comes with IBM's J9 VM for ARM-based devices </li></ul>* Connected Device Configuration/Foundation Profile ** Connected Limited Device Configuration/Mobile Information Device Profile
  • 30. eRCP – TaskOrganizer on PocketPC
  • 31. <ul><li>Single Source; Three Runtimes </li></ul><ul><li>Thanks for attention ! </li></ul><ul><li>Have Fun ! </li></ul><ul><li>Suresh Krishna </li></ul>

×