[ 
http://jira.codehaus.org/browse/MXMLBEANS-58?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=190933#action_190933
 ] 

David Jencks commented on MXMLBEANS-58:
---------------------------------------

MXMLBEANS-59 makes the plugin use a maven Resource to include the binary goo 
rather than copying it "by hand".  Does this result in enough of a speedup for 
you?

> Allow generated classes to be written directly to output directory
> ------------------------------------------------------------------
>
>                 Key: MXMLBEANS-58
>                 URL: http://jira.codehaus.org/browse/MXMLBEANS-58
>             Project: Maven 2.x Xmlbeans Plugin
>          Issue Type: Improvement
>    Affects Versions: 2.3.2
>         Environment: All
>            Reporter: Ron Gallagher
>         Attachments: CompileXmlBeansMojo.diff, gen-to-target-classes.tar
>
>
> We have a build that uses this plugin to compile a set of schemas in 10 
> separate execution phases.  Here's a snippet of the pom.xml file for this 
> project:
> {code:xml}
> <plugin>
>     <groupId>org.codehaus.mojo</groupId>
>     <artifactId>xmlbeans-maven-plugin</artifactId>
>     <executions>
>         <execution>
>             <id>xmlbeans-01</id>
>             <phase>generate-sources</phase>
>             <goals>
>                 <goal>xmlbeans</goal>
>             </goals>
>             <configuration>
>                 <sourceSchemas>
>                 <snip/>
>                 </sourceSchemas>
>                 
> <sourceGenerationDirectory>${project.build.directory}/generated-sources/xmlbeans</sourceGenerationDirectory>
>                 
> <staleFile>${project.build.directory}/generated-sources/xmlbeans/xmlbeans-01</staleFile>
>                 
> <classGenerationDirectory>${project.build.directory}/generated-classes/xmlbeans/xmlbeans-01</classGenerationDirectory>
>             </configuration>
>         </execution>
>         <execution>
>             <id>xmlbeans-02</id>
>             <phase>generate-sources</phase>
>             <goals>
>                 <goal>xmlbeans</goal>
>             </goals>
>             <configuration>
>                 <sourceSchemas>
>                 <snip/>
>                 </sourceSchemas>
>                 
> <sourceGenerationDirectory>${project.build.directory}/generated-sources/xmlbeans</sourceGenerationDirectory>
>                 
> <staleFile>${project.build.directory}/generated-sources/xmlbeans/xmlbeans-02</staleFile>
>                 
> <classGenerationDirectory>${project.build.directory}/generated-classes/xmlbeans/xmlbeans-02</classGenerationDirectory>
>             </configuration>
>         </execution>
>         <!-- above pattern repeated 8 more times. "02" replaced with "03", 
> "04" etc... -->
>     </executions>
> </plugin>
> {code} 
> I've removed the individual "sourceSchema" elements for the sake of brevity.
> We are using separate stale files during each execution phase to ensure that 
> the schemas in each phase are only recompiled as necessary.  Using one stale 
> file did not work.
> We are also using separate 'classGenerationDirectory' values for each phase, 
> just to isolate the output of each invocation of XMLBeans.
> The problem we are encountering is that a full run of these 10 invocations 
> takes over 2 hours.  I have determined that 90% of this time is spent in the 
> updateProject method of the CompileXmlBeansMojo class.  The call to 
> FileUtils.copyDirectoryStructure is the culprit.  This method copies the 
> generated classes from the classGenerationDirectory to the output directory 
> ("${project.build.outputDirectory}")for the maven project.
> I tried changing the "classGenerationDirectory" settings to point to 
> "${project.build.outputDirectory}", but this caused the 
> FielUtils.copyDirectoryStructure method to throw an error:
> {code:java}
> // From FileUtils.copyDirectoryStructure...
> if(sourceDirectory.equals(destinationDirectory)){
>     throw new IOException("source and destination are the same directory.");
> }
> {code}
> Our problem would be solved if the XMLBeans plugin allowed the 
> "classGenerationDirectory" to point to the "${project.build.outputDirectory}" 
> folder.  It that situation is detected, then the call to 
> FileUtils.copyDirectoryStructure would not be necessary.
> The attached 'diff' file contains the changes that would need to be made to 
> org.codehaus.mojo.xmlbeans.CompileXmlBeansMojo in order to provide this 
> capability.
> The attached tar file contains an integration test that fails without this 
> change but passes with the change.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to