1 / 34

WTP Server Tools Open House

WTP Server Tools Open House. Tim deBoer deboer@ca.ibm.com. Agenda. Plugins Contributors API Status Quality Current work items. WST Server Plugins. Server Tools Framework org.eclipse.wst.server.core* org.eclipse.wst.server.ui* org.eclipse.wst.server.util

gafna
Download Presentation

WTP Server Tools Open House

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WTP Server Tools Open House Tim deBoer deboer@ca.ibm.com

  2. Agenda • Plugins • Contributors • API Status • Quality • Current work items

  3. WST Server Plugins • Server Tools Framework • org.eclipse.wst.server.core* • org.eclipse.wst.server.ui* • org.eclipse.wst.server.util • Adds notion of a “server” to Eclipse • Starting/stopping servers, publishing, targeting projects, adding & removing modules • Framework for adding new server types • Servers view, wizards, editor framework, etc. • Ability to choose resource and Run on Server • Depends only on Eclipse * Contains API

  4. WST Internet Plugins • TCP/IP Monitor • org.eclipse.wst.internet.monitor.core** • org.eclipse.wst.internet.monitor.ui** • Monitor for Web pages, Web services • Shows request from client and the server’s response • Useful for understanding applications, debugging, etc. • Supports TCP/IP and HTTP • View bytes, images, or XML ** Contains provisional API

  5. WST Internet Plugins • Web Browser utilities • org.eclipse.wst.internet.webbrowser • The internal Web browser and support for launching external browsers moved into Eclipse in 3.1M6 • Utilities for the Eclipse browser plugin • Easily switch between browsers, toolbar button to open internal browser

  6. WST Internet Plugins • Proxy Settings • org.eclipse.wst.internet.proxy • Manage internet proxy configuration and JRE properties • Preference page • HTTP proxy servers and firewalls • Authenticating proxy servers • SOCKS • Likely to move to Eclipse 3.2

  7. WST Internet Plugins • Internet Cache • org.eclipse.wst.internet.cache • Caches documents requested from the internet • Currently only used by the XML resolver

  8. JST Server Plugins • J2EE server utilities • org.eclipse.jst.server.core* • org.eclipse.jst.server.ui • Generic Server support • org.eclipse.jst.server.generic.core* • org.eclipse.jst.server.generic.serverdefinition • org.eclipse.jst.server.generic.ui • Adds support for J2EE servers to be defined using plain XML files • No code required, add support for a new server in minutes • .serverdefinition plugin contains adapters for WebLogic, JONaS, and JBoss

  9. JST Server Plugins • Apache Tomcat Server support • org.eclipse.jst.server.tomcat.core • org.eclipse.jst.server.tomcat.ui • Apache Geronimo Server support • org.eclipse.jst.server.geronimo.core • org.eclipse.jst.server.geronimo.ui

  10. Server Tools Contributors • Gorkem Ercan • Generic server support and adapters for JONaS, WebLogic, JBoss • Larry Isaacs (SAS) • Tomcat support • Tim deBoer (IBM) • Server Tools framework, TCP/IP monitor, Tomcat support • Elson Yuen (IBM) • Server Tools framework • Ted Bashor, Thomas Yip, Konstantin Komissarchik (BEA) • Server Tools API • Tim Francis (IBM) • Geronimo support

  11. API Status • Done! … almost • API is basically ready to go. Based on past experience we’re reasonably comfortable with the current content • Reasonable validation through several servers and API users in WTP • BEA and IBM are both in the process of validating the API internally • Provisional APIs: • TCP/IP Monitor • Parts of server tools relating to features

  12. Quality • Initial code contribution was shipped in previous products. Although it has undergone lots of cleanup and refactoring since then, much of the code is still stable • We’ve been fixing bugs continuously to keep the code relatively stable throughout • Bugs have been slowing growing – 30 currently on queue • Still some work to do to get ship-ready

  13. Current Work Items - Assembly • Each server type has it’s own requirements on assembly • Does it happen on build or on publish? • Do utility projects get jarred up? Does complete EAR file get created? • The current .deployables directory is server specific and should not be in the workspace • Working with J2EE team and BEA to define an assembly mechanism • Provide support to assemble modules in .metadata • Assembly can be done via a builder or as part of a publish • Everything is under the server’s control

  14. Current Work Items - Features • Proposal from BEA to enable/disable fine grained features on a module/component • Allows better control over classpath, UI, and which servers support a module that has extensions • Recently deferred to 1.1 • Marking affected classes as provisional API • Still investigating to keep options open and migration low

  15. For more information • Component overviews • Overviews exist for all three components (wst.internet, wst.server, jst.server) on the WTP website • Some documentation about specific function: • Run on Server • Generic servers • EclipseCon presentation • API – javadoc in code or in online help • Bugzilla • Feel free to open enhancement requests for unclear javadoc, further documentation you’d like to see, etc.

  16. Help Needed • We’re not done yet! • If you are planning on using or building on WTP, we can use your help with: • API review • Bug fixes • Testing • JUnit tests • Feedback

  17. Thank you Questions & Comments

  18. Backup

  19. What exactly is Server Tools? • Sub-component of WTP in both WST and JST • Server Tools provides: • Targeting applications to a specific server • Adding & removing projects from servers • Publishing applications to a server • Starting & stopping servers • Implementations for specific servers: • Tomcat, JBoss, …

  20. Server Tools Components • The server tools framework supports any server, not just J2EE • Support in both of the WTP subprojects: • wst.server • Server Tools framework (.server.core) • Server Tools UI (.server.ui) • jst.server • J2EE server tools (.server.*) • Generic J2EE server framework (.server.generic.*) • Tomcat, JBoss support, …

  21. Users of Server Tools APIs • Server Providers • Add support for additional servers • E.g. Tomcat, JBoss • Module Providers • Add additional module types and Run on Server support • E.g. J2EE Tools • Client App Providers • Provide clients for Run on Server • E.g. Web browser • Client Users • Use API to configure and launch servers, check runtime target, etc. • E.g. Web Services, DD editors

  22. Model Overview Module 1 Server 1 Runtime 1 Module 2 Server 2 Module 3 Server 2

  23. Modules • A module is content that can be deployed to a server • Typically a project or folder (e.g. Web module) within the workspace, but can consist of anything • Extension Points: • moduleTypes • Define a new type of module • moduleFactories • Provide factory for creating and discovering modules of a specific type • Provides module delegates with a specified interface

  24. Runtimes • A runtime is an installed server on the local hard-drive • Executables, Jar files, etc. • Used for build-time compilation, validation • Extension points: • runtimeTypes • Define a new type of runtime and delegate class • runtimeLocator • Automatically locate new runtimes on disk • runtimeTargetHandler • Change what happens when a project (containing modules) is targeted to a particular runtime • Modify classpath, validation, etc.

  25. Servers • A server is an instance of (handle to) a real server • Add & remove modules • Publish modules • Usually supports starting & stopping • Often based on a local runtime • Extension points: • serverTypes • Define a new type of server and delegate classes • Handles publishing, starting & stopping server, etc.

  26. Run on Server support • Run > Run on Server menu item allows users to quickly choose/create a server and run module • Allows user to choose or create a server • Starts server, publish • Launches client application (e.g. Web browser) • To enable on a selection: • Adapt object to ILaunchable to make Run menu appear (via Eclipse debug support) • ModuleArtifactAdapter extension point provides enablement support • Adapt object to IModuleArtifact • Each server provides support via launchableAdapter ext. point • Clients (e.g. Web browser) can add support via clients ext. point

  27. UI Support • Provided by org.eclipse.wst.server.ui • Servers view for creating and configuring servers • Preferences and property pages, etc. • Extension points: • images • Provide images for runtimes, servers, etc. • editorPages and editorPageSections • Provide sections and pages for the server editor • wizardFragments • Provide pages to appear when servers are created

  28. Generic Server Introduction • Extension to WTP server tools • RuntimeTypes • ServerTypes • Design has its roots from Lomboz, • Community already familiar with its use • A special server and runtime that can adjust behaviour • Server type definition files determine behaviour

  29. Server type definiton file • XML based meta information • Validated against an XSD • Introduced using “org.eclipse.jst.server.generic.core.serverdefinition” extension • Virtually two parts • Properties • Derived information • Properties are variables that users provide values using server tooling UI • Derived info is information used by the generic server to perform server tooling functionality

  30. Server type definition file example . . <property id="serverRootDirectory" label="Application Server Directory:" type="directory" context="runtime" default="/your_server_root/appservers/jboss-3.2.3" /> . . <start> <class>org.jboss.Main</class> <workingDirectory>${serverRootDirectory}/bin</workingDirectory> <programArguments>-c ${serverConfig}</programArguments> <vmParameters></vmParameters> <classpathReference>jboss</classpathReference> </start>

  31. Making sense of the server type definition files • <classpath> : define a classpath used by other elements • <start>: information for starting a server(classpath,class,vmarguments, etc.) • <stop>: information used for stopping a server • <port>:port(s) to start server on • <project>: classpath to provide when creating a project for this runtime • <module>: information for each supported modules, such as publisher and type • <publisher>: data used by different publishers when publishing to this server • <property>:define variable data to be collected from user

  32. Using metadata for UI • Property type determines the type of widget used • Context determines whether this is a server or runtime property • Currently 4 types are supported • Directory • String • Boolean • File

  33. UI example <property id="jonasRoot" label="JonAS Installation Directory:" type="directory" context="runtime" default="/your_server_root/JOnAS-4.1.4" /> <property id="jonasBase" label="JonAS Configuration Directory:" type="directory" context="runtime" default="/your_server_root/JOnAS-4.1.4" /> <property id="classPath" label="Classpath Variable:" type="directory" context="runtime" default="/your_server_root/JOnAS-4.1.4" />

  34. Generic publishers • Handles publishing modules to servers • Only part where you may need to code • Introduced using org.eclipse.jst.server.generic.antpublisher extension point • Extend GenericPublisher class • It is optional you may choose to use an existing publisher • ANT build file based publisher is available part of the core package • More general publishers to come...

More Related