}}

Web XML Discoverer

The goal of the Generic Web Xml Discoverer plug-in is to allow generic extractions of information from a Web.xml file, without the need for a metamodel dedicated to a conforming Document Type Definition(DTD) or XML Schema Description (XSD).

Details

Considering Web.xml files conforming to a DTD or XSD, it would be more convenient to have dedicated metamodels to manipulate the information. However, the generic XML Discoverer is an alternative for miscellaneous XML files.

This plug-in aims at analyzing any Web.xml file by providing a model describing the information found. The supported versions are JEE 1.2, 1.3, 1.4, 5 and 6.

Moreover, it allows to serialize the xml file back from the model. Thus, some M2M transformation might be used jointly to upgrade some xml files.

User manual

Discovering and browsing from contextual menu

The plug-in provides the user a contextual menu to easily create models.

To discover a Web XML configuration file, right-click on it in the Eclipse Package Explorer view, and select Discovery > Discoverers > Discover JEE web.xml:

Menu to discover a Web XML file

A discovery parameters dialog opens to let you specify the parameters of the discovery:

Web XML discoverer parameters dialog

Once launched, a progress dialog will appear as soon as the operation begins. Depending on the size of your application, the reverse engineering process might take some time to complete:

Progress dialog during model creation

At the end of the process, the newly created model file is added to the root of your project if you set SERIALIZE_TARGET to true:

Web XML model in the Package Explorer

And the model is opened in the default model browser if you selected Open model in editor after discovery:

Web XML model in the MoDisco model browser

The Web XML XMI files (with a filename ending in ".xml_webapp.xmi" by convention) can be opened in any model browser:

Opening a Web XML model

Discoverer API

Each MoDisco discoverer responds to a normalized interface and can be called programmatically (see org.eclipse.modisco.infra.discovery.core.IDiscoverer<T>).

First, add the following plug-in dependencies to your project ( Require-Bundle in your Manifest.MF):

You can easily discover a web-xml model programmatically. For example: <source lang="java"> WebXmlDiscoverer2 discoverer = new WebXmlDiscoverer2(); discoverer.discoverElement(xmlFile, new NullProgressMonitor()); Resource webXmlResource = discoverer.getTargetModel(); </source>

To have a monitor to pass to the discoverElement method, you can either call the discoverer in an Eclipse Job, or pass a new NullProgressMonitor if you don't need progress reporting.

As an example, you may checkout the code from project org.eclipse.modisco.jee.webapp.discoverer.tests.

Source Repository

All the source code is stored in the Eclipse public source repository:

Category:MoDisco

Updating This Document

This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit http://wiki.eclipse.org/MoDisco/Components/JEE/WebApp/Documentation/0.9