wtp server tools open house
DESCRIPTION
WTP Server Tools Open House. Tim deBoer [email protected]. 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 - PowerPoint PPT PresentationTRANSCRIPT
© 2005 by IBM; made available under the EPL v1.0 | May 19, 2005
WTP Server Tools Open HouseWTP Server Tools Open House
2 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
Agenda
Plugins Contributors API Status Quality Current work items
3 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
WST Internet Plugins
Internet Cache org.eclipse.wst.internet.cache
Caches documents requested from the internet Currently only used by the XML resolver
8 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
Thank you
Questions&
Comments
18 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
Backup
19 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
Model Overview
Module 1
Module 2
Module 3
Server 1
Server 2
Runtime 1
Server 2
23 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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 WTP | Server Tools Open House | © 2005 by IBM; made available under the EPL v1.0
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...