[ 
http://jira.codehaus.org/browse/MXMLBEANS-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ash Lux updated MXMLBEANS-45:
-----------------------------

    Attachment: mxmlbeans-45.patch

If schemasSource is not specified, this patch adds all schemas from artifacts 
and schemas in schemasDirectory.  I've also included an integration test for 
this issue and some validation for the MXMLBEANS-21 integration tests.

I'm not terribly pleased with the code, but I don't want to refactor too much.  
Maybe in another patch.

> "Nothing to generate" error if only specifying xsdJars
> ------------------------------------------------------
>
>                 Key: MXMLBEANS-45
>                 URL: http://jira.codehaus.org/browse/MXMLBEANS-45
>             Project: Maven 2.x Xmlbeans Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>            Reporter: Kevin Stembridge
>         Attachments: mxmlbeans-45.patch
>
>
> An empty jar is produced if the xmlbeans plugin configuration section only 
> contains an <xsdJars> element and no XSD source files in the project.
> For example:
> {code:xml}
> <plugin>
>   <groupId>org.codehaus.mojo</groupId>
>   <artifactId>xmlbeans-maven-plugin</artifactId>
>   <executions>
>     <execution>
>       <goals>
>         <goal>xmlbeans</goal>
>       </goals>
>     </execution>
>   </executions>
>   <inherited>true</inherited>
>   <configuration>
>     <xsdJars>
>       <xsdJar 
> implementation="java.lang.String">someGroupId:someArtifactId</xsdJar>
>     </xsdJars>
>   </configuration>
> </plugin>
> {code}
> I get the following output:
> [INFO] [xmlbeans:xmlbeans {execution: default}]
> [DEBUG] The schema Directory is 
> c:\dev\workspaces\abfo-workspace-trunk\abfo-bof-xmlbeans\src\main\xsd
> [DEBUG] Artifact count: 1
> [DEBUG] looking for artifact schemas.
> [DEBUG] resolving someGroupId:someArtifactId into a file path.
> [DEBUG] Filtering META-INF/MANIFEST.MF
> [DEBUG] Accepting assetflow.xsd
> [DEBUG] adding and extracting assetflow.xsd
> ---TRUNCATED
> [DEBUG] adding and extracting settlementinstruction.xsd
> [DEBUG] Accepting simplecash.xsd
> [DEBUG] adding and extracting simplecash.xsd
> [DEBUG] Accepting trade.xsd
> [DEBUG] adding and extracting trade.xsd
> [DEBUG] Adding trade.xsdfrom an artifact.
> [INFO] Nothing to generate.
> This logic from the {{AbstractXmlBeansPlugin.getXsdFiles}} method doesn't 
> look quite right. If {{sourceSchemas}} is null it doesn't do anything with 
> {{artifactSchemas}}.
> {code}
> /**
>      * Returns a file array of xsd files to translate to object models.
>      *
>      * @return An array of schema files to be parsed by the schema compiler.
>      * @number MXMLBEANS-21
>      */
>     public final File[] getXsdFiles() throws XmlBeansException
>     {
>         if ( xsdFiles == null )
>         {
>             File schemaDirectory = getSchemaDirectory();
>             getLog().debug( "The schema Directory is " + schemaDirectory );
>             final List schemas = new ArrayList();
>             // collect artifacts first.
>             Map artifactSchemas = getArtifactSchemas();
>             // take care of the schema directory next.
>             if ( sourceSchemas != null )
>             {
>                 File nextFile = null;
>                 for ( Iterator iterator = sourceSchemas.iterator(); 
> iterator.hasNext(); )
>                 {
>                     String schemaName = ( String ) iterator.next();
>                     nextFile = new File( schemaDirectory, schemaName );
>                     if ( nextFile.exists() )
>                     {
>                         schemas.add( nextFile );
>                     }
>                     else if ( artifactSchemas.containsKey( schemaName ) )
>                     {
>                         schemas.add( artifactSchemas.get( schemaName ) );
>                     }
>                     else
>                     {
>                         String[] fields = new String[2];
>                         fields[0] = schemaName;
>                         fields[1] = schemaDirectory.getAbsolutePath();
>                         fields[3] = ( artifactMap.isEmpty() ? "" : " or the 
> schema artifact(s)" );
>                         throw new XmlBeansException( 
> XmlBeansException.MISSING_SCHEMA_FILE, fields );
>                     }
>                 }
>             }
>             else if ( schemaDirectory.exists() )
>             {
>                 DirectoryScanner scanner = new DirectoryScanner();
>                 scanner.setBasedir( schemaDirectory );
>                 String[] includes = {"**/*.xsd"};
>                 scanner.setIncludes( includes );
>                 scanner.addDefaultExcludes();
>                 scanner.setCaseSensitive( false );
>                 scanner.scan();
>                 String[] files = scanner.getIncludedFiles();
>                 if ( files != null )
>                 {
>                     for ( int i = 0; i < files.length; i++ )
>                     {
>                         getLog().debug( "Adding " + files[i] );
>                         schemas.add( new File( schemaDirectory, files[i] ) );
>                     }
>                 }
>             }
>             xsdFiles = ( File[] ) schemas.toArray( new File[]{} );
>         }
>         return xsdFiles;
>     }
> {code}

-- 
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