Hi All,
Hope all is well.
I've just committed the start of the XFC subproject in
jakarta-avalon-excalibur. XFC stands for (X)Conf (F)ile
(C)onverter (for the lack of a better name), and is a subproject
that aims to make it possible to convert between our current
container's configuration files.
The code committed is pretty bare bones at the moment, but can
so far (mostly) convert an ECM style roles file into a Fortress
one.
There's still a long way to go, but I wanted to get the code into
CVS so you can all see what's happening, and hopefully provide any
feedback.
I plan to add support for converting configuration files as well,
along with other containers (eg. Merlin, etc).
Technically, XFC works by using the following interface:
/**
* Interface defining the operations for creation and serialization of
* {@link Model} objects.
*
* <p>
* Implementations of this interface provide creation/serialization
* support for specific containers, allowing us to convert to and from
* different file formats now and in the future.
* </p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Marcus Crafter</a>
* @version CVS $Id: Module.java,v 1.1 2002/10/02 17:32:28 crafterm Exp $
*/
public interface Module
{
/**
* Generate a {@link Model} object from a given input
* <code>Context</code>.
*
* @param context a <code>String</code> Context value
* @return a {@link Model} instance
* @exception Exception if an error occurs
*/
Model generate( String context )
throws Exception;
/**
* Serialize the contents of a {@link Model} into a particular
* output <code>Context</code>.
*
* @param model a {@link Model} instance
* @param context a <code>String</code> Context value
* @exception Exception if an error occurs
*/
void serialize( Model model, String context )
throws Exception;
}
The interface defines 2 operations for creating a Model object and
for serializing it.
The rest of XFC supports this interface by providing implementations
as input and output 'modules' (eg. ECM as input, Fortress as output),
the Model class itself, and a command line runner.
I have several improvements coming, so I'll leave it there for the
moment, and add the improvements and future direction in a separate
email.
Cheers,
Marcus
--
.....
,,$$$$$$$$$, Marcus Crafter
;$' '$$$$: Computer Systems Engineer
$: $$$$: ManageSoft GmbH
$ o_)$$$: 82-84 Mainzer Landstrasse
;$, _/\ &&:' 60327 Frankfurt Germany
' /( &&&
\_&&&&'
&&&&.
&&&&&&&:
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>