Dave Carver: Generating Eclipse Help from Docbook
A while ago Chris Aniszczyk and Lawrence Mandel wrote an article for eclipse corner titled "Authoring With Eclipse". This is a very good article that uses several freely available pluginsto allow creating and authoring of PDF, HTML and other formats from Docbook. I recently discovered the joys of Docbookas I was working on converting some guidelines for work into multiple formats. Being able to separate content from the presentation is a great benefit when you have to support multiple output formats.

Docbook includes a stylesheet for generating eclipse help system files. This is described in detail by Jirka Koreskain "DocBookfor Eclipse" . The screen shot shown is the XSLLaunch configuration for generating the appropriate files, using the XSLTooling project. There is one issue, and that is by default, it will output the plugin.xml, and toc.xmlto whatever the working directory is, and not the base. dir.
There are several ways to address this:
1. Create a Customization layer for the eclipse.xslfile, so that the plugin.xmland toc.xmlare placed in the pluginproject directly. Either through a new variable or modifying the templates directly.
2. The other option is to add support in the XSLLaunch Configuration to specify the working directory. Bug 221042suggests just this very thing.
3. Create a build.xml file that generates the file. This allows for inclusion of XIncludes and additional post processing beyond what the XSL Launch configuration allows.
Option 2 is needed anyways, when dealing with the exslt:document function, which allows outputingmultiple documents during one transformation process. Otherwise they end up in whatever is the current working directory, and this usually isn't a project directory in your workspace.
The Docbookeclipse stylesheetdoes need a few updates, but it works very well as is (once you move the files to the correct directories). There are some open request for both DITA and Docbooksupport within the XSLTooling project. We've already had our first code contribution from Lars Vogelto allow us to support XInclude,and also have an ANT Task. Look for this to be hopefully added in 0.5M6.
Updated 03/02/08 to correct the spelling of Chris's last name.

Docbook includes a stylesheet for generating eclipse help system files. This is described in detail by Jirka Koreskain "DocBookfor Eclipse" . The screen shot shown is the XSLLaunch configuration for generating the appropriate files, using the XSLTooling project. There is one issue, and that is by default, it will output the plugin.xml, and toc.xmlto whatever the working directory is, and not the base. dir.
There are several ways to address this:
1. Create a Customization layer for the eclipse.xslfile, so that the plugin.xmland toc.xmlare placed in the pluginproject directly. Either through a new variable or modifying the templates directly.
2. The other option is to add support in the XSLLaunch Configuration to specify the working directory. Bug 221042suggests just this very thing.
3. Create a build.xml file that generates the file. This allows for inclusion of XIncludes and additional post processing beyond what the XSL Launch configuration allows.
Option 2 is needed anyways, when dealing with the exslt:document function, which allows outputingmultiple documents during one transformation process. Otherwise they end up in whatever is the current working directory, and this usually isn't a project directory in your workspace.
The Docbookeclipse stylesheetdoes need a few updates, but it works very well as is (once you move the files to the correct directories). There are some open request for both DITA and Docbooksupport within the XSLTooling project. We've already had our first code contribution from Lars Vogelto allow us to support XInclude,and also have an ANT Task. Look for this to be hopefully added in 0.5M6.
Updated 03/02/08 to correct the spelling of Chris's last name.
Related Articles
Dave Carver: Authoring With Eclipse - Revisited
Dave Carver: XInclude Support in 0.5M6
Dave Carver: Docbook, Blocked by IP Concerns
Lars Gersmann: XSLT Feature for Eclipse Europa
Lars Gersmann: XSLT Feature for Eclipse Europa
Dave Carver: XSL Tooling Updates
Dave Carver: XSL Tooling Update
First release of phpUnderControl
Dave Carver: XInclude Support in 0.5M6
Dave Carver: Docbook, Blocked by IP Concerns
Lars Gersmann: XSLT Feature for Eclipse Europa
Lars Gersmann: XSLT Feature for Eclipse Europa
Dave Carver: XSL Tooling Updates
Dave Carver: XSL Tooling Update
First release of phpUnderControl
Relatd Projects
Java-based tool for performing XSL transformations. Allows for multiple XSL stylesheets to be chained together and allows for parameters and output properties to be set on each stylesheet. Remembers configuration information and provides timing numbers.
Apache Commons LaunchThe Launcher Component is designed to be a cross platform Java application launcher.
The original Java classes come from the Tomcat 4.0 project.
Commons-launcher eliminates the need for a batch or shell script to launch a Java class. Some situations where elimination of a batch or shell script may be desirable are:
* You want to avoid having to determining where certain application paths are e.g. your application's home directory, etc. Determining this dynamically in a Windows batch scripts is very tricky on some versions of Windows or when softlinks are used on Unix platforms.
* You want to avoid having to handle native file and path separators or native path quoting issues.
* You need to enforce certain system properties e.g. java.endorsed.dirs when running with JDK 1.4.
* You want to allow users to pass in custom JVM arguments or system properties without having to parse and reorder arguments in your script. This can be tricky and/or messy in batch and shell scripts.
* You want to bootstrap system properties from a configuration file instead hard-coding them in your batch and shell scripts.
* You want to provide localized error messages which is very tricky to do in batch and shell scripts.
Swingweb Swingwebis a web-application framework that enables AWT/Swing application to operate inside
a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript.
The swing application will render and behave in the web-container the same as it would as a desktop application.
There is little knowledge required for the developer to start developing swingweb application as long as
they are familiar with swing UI development.
The main goals of the Swingweb framework are to:
- Enable true component-based web-application development platform
Swingweb allows the developer to specify the web-application in terms of UI components and their interactions. The functionality of the web-application is more formally definedas opposed to page-centric model where functionality is composed by gluing the webpages loosely together. Furthermore, the application functionality is more predictable and guaranteed to work as long as all UI components are unit-tested. There will be no more page-management and http session-state manipulation hassle. Once written, the component, either fine-grain like a text-box, or coarse-grain like calendar, will be reusableand save development costs over time.
- Use swing UI model for web application development
Swing component model is one of the best and most-practiced UI modelfor java platform. There should be no learning curvefor most Java developer to pick up web-application development using swingweb. Swingweb tries to make distinction between desktop and web application development as transparentas it could be yet at the same time maintains flexibility on the controls of the look and feel of the web-application through UI component template system.
- Allow rapid development using existing GUI editors for web application development
There are a lot of good tools for swing application development. Most java IDEs (including eclipse) also contain GUI editors. The editors allow the developer to rapidly develop, maintain and changethe application in response to changed requirement. - Save development cost by merging the development process of swing desktop application and (e.g. in-house) web application
Given the right architecture, the desktop and web application development can be merged into a single process and thus reduces development cost.
Some of the features of Swingweb include the following:
- Support web-environment with multiple concurrent application sessions
While most desktop applications are designed to run in a stand-alone jvm, swingweb extended the AWT toolkit implementation so that multiple concurrent application sessionscan run in the web container jvm, yet making each application session isolated so that the running applications will not interfere with each other's operations. - Component-oriented architecture that allows developers to enable existing swing component to web environment easily
Swingweb underlying framework allows developer to control how the interaction and event-input of each component individually. Thus it is very easy to extendan existing swing component (e.g. some third-party widget) so that it can operate in web environment. - Flexible template-based approach allowing changing look/functionality of component/application
The rendering of the each swing components is provided through a template file that is written in jxp template language(essentially java language). Thus it is very easy to control the look and feel of a component as web widget. Furthermore, the template can be configured per component type or per instance. - Transparent URL manipulation and session management inside swingweb application
Swingweb support url manipulationso the developer can customize how the browser url changes as the interface changes. The application can also access and react to url changesusing very simple API. This allow implementation of webapplication that allows bookmarking, back-buttonand other advanced features such as component caching and sharing. There is also API for per session variables. - Light-weight, performance focus, and scalable for high traffic web-applications
The (awt)toolkit implementation utilizes several techniques including lightweight peers, threadless event queue, custom repaint managerto reduce memory footprint and increase the performance of the swing application in the web context. There is also a special deployment mode, share-app mode, which allows sharing of component instancesacross the application sessions for scalability. - Natural adaptation of components to the webSome adaptation has been made to the components for the web development - e.g. - FileDialog will upload local files to webserver, all button icons will be buffered and rendered property as <img src=""> tag, all components that uses Graphics2D can be rendered nicely as image (with a flag set of the component) etc.
Generate any kind of text file using XML, XSL and XPath with this Ant task. JAnyGen has been created for the purpose of generating Java class files under a project tree using XSL template files.
javadocbookProvides a simple Java .jar file for converting Docbook files to HTML, FO or XHTML and includes all the XSL files needed. Great for cross platform Docbook conversions and Ant build scripts.
xsl-playThis project aims to create a simple, interactive tool for learning and practicing XSL.
The basic tool has three "File-Listing" areas, one for XML input, another for XSL input and one for the output produced when you hit the "translate" button.
workmanagerA graphics tool to manage your homework, project assignment: scan you homework directory and display each project's input files, output files in listview, when you click it, will call external application to view the files. usable in windows/linux.
jxlaWeb analyzer for logs from different formats, which output XML reports, multi-hosts logs file supported, possibility to apply an XSL page to ouput in HTML, and use of SVG to make the graphs.
The project includes the library to parse HTTP_USER_AGENT
springuiProvides a set of plugins for the Eclipse platform to ease working with SpringFramework Bean Factory configuration files
datavisionDataVision is a reporting tool similar to Crystal Reports. DV supports many data sources (JDBC, files) and many output formats (HTML, XML, PDF, LaTeX, Excel, delimited files, DocBook). DV includes a GUI editor. DV is embeddable. Reports are XML-based.




