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

Ash Lux commented on MXMLBEANS-45:
----------------------------------

I see no reason schemaDirectory and xsdJars should be mutually exclusive.  So 
changing the logic to this should fix this:

{code}
if schemaDirectory exists then
  add all files that match includeFilter
end if

if xsdJars is specified then
  if sourceSchemas is specified then only include schemas from the jar if 
they're listed in this list
  else include all schemas from the jar
end if
{code}

Related issue MXMLBEANS-21.

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