Annotated beans source generation with maven plugin
---------------------------------------------------

                 Key: SOLR-1888
                 URL: https://issues.apache.org/jira/browse/SOLR-1888
             Project: Solr
          Issue Type: New Feature
          Components: clients - java
    Affects Versions: 1.5
         Environment: java, maven
            Reporter: Matthias Epheser
             Fix For: 1.5


As I stumbled over a lot of copy pasting while creating java annotated beans 
representing a schema.xml, i decided to make a shortcut and create a maven 
plugin.

Think about it as source generation similar to castor/jaxb code generation from 
an xsd. You just point to a schema.xml and connect to the generate-sources 
phase. This leads to a java bean in target/generated-sources/solr that contains 
all fields from the schema well annotated. 

The mapping reads the <fields> section and maps field="string" to 
solr.StringField to java.lang String etc. Multivalured fields generate lists, 
dynamic fields Maps. Currently the code generation is plain simple, just a 
fileWriter with some intends. The getValidJavaName(String name) may act more 
professional than now.

Just install the plugin contained in the zip using mvn install and connect it 
to an existing solrj project:

{{
<plugin>
             <groupId>org.apache.solr</groupId>
             <artifactId>maven-solr-plugin</artifactId>
             <configuration>
               <schemaFile>test-data/solr/conf/schema.xml</schemaFile>
               <qualifiedName>org.test.MyBean</qualifiedName>
             </configuration>
             <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
 </plugin>
}}

The generated fiels will be automatically added to the classpath after the 
first run of mvn generate/compile. So just execute mvn eclipse:eclipse once 
after that. After every change in the schema, generate again and your bean will 
be updated and fields and getters and setters will be present.
 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to