<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>ADB Tweaking Guide</title>
  <link href="../../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body lang="en" xml:lang="en">
<h1>ADB Tweaking Guide</h1>
<p>This document explains the mechanisms available to extend ADB and
possibly adopt it to compile schemas to support other
languages.</p>
<h2>Content</h2>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#config">Know the Configuration</a></li>
<li><a href="#first_tweak">The First Tweak - Generate Plain Java
Beans</a></li>
<li><a href="#advanced_tweak">A More Advanced Tweak - Generate Code
for Another Language</a></li>
</ul>
<a name="intro" id="intro"></a>
<h2>Introduction</h2>
<p>ADB is written with future extensions in mind, with a clear and
flexible way to extend or modify it's functionality. Available
mechanisms to extend ADB and possibly adopt it to compile schemas
to support other languages are described below.</p>
<a name="config" id="config"></a>
<h2>Know the Configuration</h2>
<p>The configuration for the ADB framework is in the
<strong>schema-compile.properties</strong> file found in the
<strong>org.apache.axis2.schema</strong> package. This
properties file has the following important properties</p>
<ul>
<li>schema.bean.writer.class
<p>This is the writer class. This is used by the schema compiler to
write the beans and should implement the
<strong>org.apache.axis2.schema.writer.BeanWriter</strong>
interface. The schema compiler delegates the bean writing task to
the specified instance of the BeanWriter.</p>
</li>
<li>schema.bean.writer.template
<p>This specifies the template to be used in the BeanWriter. The
BeanWriter author is free to use any mechanism to write the classes
but the default mechanism is to use a xsl template. This property
may be left blank if the BeanWriter implementation does not require
a template.</p>
</li>
<li>schema.bean.typemap
<p>This is the type map to be used by the schema compiler. It
should be an implementation of the
<strong>org.apache.axis2.schema.typemap.TypeMap</strong> interface. The
default typemap implementation encapsulates a hashmap with type
QName to Class name string mapping.</p>
</li>
</ul>
<a name="first_tweak" id="first_tweak"></a>
<h2>The First Tweak - Generate Plain Java Beans</h2>
<p>The first, most simple tweak for the code generator could be to
switch to plain bean generation. The default behavior of the ADB
framework is to generate ADBBeans, but most users, if they want to
use ADB as a standalone compiler, would love to have plain java
beans. This can in fact be done by simply changing the template
used.</p>
<p>The template for plain java beans is already available in the
<strong>org.apache.axis2.schema.template</strong> package. To make
this work replace the
<strong>/org/apache/axis2/databinding/schema/template/ADBBeanTemplate.xsl</strong>
with the
<strong>/org/apache/axis2/databinding/schema/template/PlainBeanTemplate.xsl</strong>
in the schema-compile.properties<strong>.</strong></p>
<p>Congratulations! You just tweaked ADB to generate plain java
beans.</p>
<p>To generate custom formats, the templates need to be modified.
The schema for the xml generated by the JavaBeanWriter is available
in the source tree under the Other directory in the codegen module.
Advanced users with knowledge of XSLT can easily modify the
templates to generate code in their own formats.</p>
<a name="advanced_tweak" id="advanced_tweak"></a>
<h2>A More Advanced Tweak - Generate Code for Another Language</h2>
<p>To generate code for another language, there are two main
components to be written.</p>
<ul>
<li>The BeanWriter
<p>Implement the BeanWriter interface for this class. A nice
example is the
<strong>org.apache.axis2.schema.writer.JavaBeanWriter</strong>
which has a lot of reusable code. In fact if the language is OOP
based (such as C# or even C++), one would even be able to extend
the JavaBeanWriter itself.</p>
</li>
<li>The TypeMap
<p>Implement the TypeMap interface for this class. The
<strong>org.apache.axis2.schema.typemap.JavaTypeMap</strong> class
is a simple implementation for the typemap where the QName to class
name strings are kept inside a hashmap instance. This technique is
fairly sufficient and only the type names would need to change to
support another language.</p>
</li>
</ul>
<p>Surprisingly, this is enough to have other language support for
ADB. Change the configuration and you are ready to generate code
for other languages!</p>
<p>This tweaking guide is supposed to be a simple guideline for
anyone who wishes to dig deep into the mechanics of the ADB code
generator. Users are free experiment with it and modify the schema
compiler accordingly to their needs. Also note that the intention
of this section is <em>not</em> to be a step by step guide to
custom code generation. Anyone who wish to do so would need to dig
into the code and get their hands dirty!</p>
</body>
</html>
