Version 6

    Project structure

     

    JBoss metadata is split into several projects (the split happened after version 1.0.X and started with 2.0.0-SNAPSHOT): common  project + one project per specific technology. The current list of the projects is:
    - common
    - EJB
    - WEB
    - RAR
    - EAR
    - client

    The common one contains basic classes, resources and tests that are used by other projects. In addition to that, it also contains common Java EE metadata, common JBoss metadata and WS metadata. These  could further be extracted to their own projects if needed.
    All technology-specific projects declare dependency on the common project.

     


    SVN repository


    The main location is  https://svn.jboss.org/repos/jbossas/projects/metadata/. Under which each  project's trunk is located under project_name/trunk, e.g. common/trunk,  ejb/trunk, etc.


    Maven


    The groupId for all the projects is org.jboss.metadata.
    The artifactId format is jboss-metadata-project_name, e.g. jboss-metadata-common, jboss-metadata-ejb,  etc.

     

     

    Schema locations

     

    All metadata projects follow the same rule as to where the schemas are located. This is to make sure each metadata project's schemas can be successfully resolved after the integration into the AS. All the XSDs and DTDs should be in main\resources\schema or main\resources\dtd.

     

     

    Schema/class binding in testsuite

     

    An implementation of org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver is responsible for schema/class binding resolution. Most of the current tests use org.jboss.test.metadata.common.MetaDataSchemaResolverFactory.createSchemaResolver() (which is in the common project) to create an instance of MutableSchemaResolver to run the tests.

    Instead of configuring schema resolver programatically, you can provide mappings between schemas and classes in test/resources/schema2class.properties file.

    The format is: schema_name class_name [, class_name].

     

    For example:

     

    jboss_5_0.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
    jboss_5_0.xsd org.jboss.metadata.ejb.jboss.JBoss50MetaData

    jboss-ds_5_0.xsd org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup, org.jboss.metadata.rar.jboss.mcf.ConnectionFactoryDeploymentGroup