You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2005/12/30 06:23:50 UTC
svn commit: r359991 -
/directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java
Author: akarasulu
Date: Thu Dec 29 21:23:44 2005
New Revision: 359991
URL: http://svn.apache.org/viewcvs?rev=359991&view=rev
Log:
Added stale schema file check which compares the timestamp of the schema file
with the timestamp of the generated XXXSchema.java file in the target output
directory/package.
Modified:
directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java
Modified: directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java
URL: http://svn.apache.org/viewcvs/directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java?rev=359991&r1=359990&r2=359991&view=diff
==============================================================================
--- directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java (original)
+++ directory/trunk/apacheds-plugin/src/main/java/org/apache/ldap/server/tools/schema/DirectorySchemaToolMojo.java Thu Dec 29 21:23:44 2005
@@ -85,9 +85,6 @@
*/
private boolean verboseOutput;
- // Need to figure this out from the pom - maybe make it a parameter for mojoj and set expression for pom element
- private String javaSrcDir = "src/main/java";
-
/**
* @parameter expression="${project}"
* @required
@@ -101,24 +98,21 @@
}
- private void generate( Schema schema ) throws Exception
+ private void generate( BootstrapSchema schema ) throws Exception
{
- BootstrapSchema bootstrapSchema = new AbstractBootstrapSchema( schema.getOwner(),
- schema.getName(), schema.getPkg(), schema.getDependencies() ){};
-
if ( schema == null )
{
throw new NullPointerException( "the schema property must be set" );
}
- String filePath = sourceDirectory + File.separator + schema.getName() + ".schema";
+ String filePath = sourceDirectory + File.separator + schema.getSchemaName() + ".schema";
InputStream in = new FileInputStream( filePath );
OpenLdapSchemaParser parser = new OpenLdapSchemaParser();
parser.parse( in );
- generateSchema( bootstrapSchema );
- generateAttributeTypes( parser, bootstrapSchema );
- generateObjectClasses( parser, bootstrapSchema );
- generateRest( bootstrapSchema );
+ generateSchema( schema );
+ generateAttributeTypes( parser, schema );
+ generateObjectClasses( parser, schema );
+ generateRest( schema );
}
@@ -325,7 +319,8 @@
{
// check to see if any of the classes are available in the java
// source directory, if so we return true
- File defaultFile = new File( javaSrcDir + File.separator + getFilePath( defaultClass ) );
+ File defaultFile = new File( project.getBuild().getSourceDirectory()
+ + File.separator + getFilePath( defaultClass ) );
return defaultFile.exists();
}
@@ -338,6 +333,22 @@
}
+ private boolean isStale( BootstrapSchema schema )
+ {
+ String pkgPath = schema.getPackageName().replace( '.', File.separatorChar );
+ File dir = new File( outputDirectory, pkgPath );
+ File schemaClassFile = new File( dir, schema.getUnqualifiedClassName() + ".java" );
+
+ if ( ! schemaClassFile.exists() )
+ {
+ return true;
+ }
+
+ File schemaFile = new File( sourceDirectory, schema.getSchemaName() + ".schema" );
+ return schemaFile.lastModified() > schemaClassFile.lastModified();
+ }
+
+
public void execute() throws MojoExecutionException
{
// Bypass if no schemas have yet been defined
@@ -369,7 +380,7 @@
{
schema.setOwner( defaultOwner );
}
- }
+ }
// Report configuration if verbose output is enabled
if ( verboseOutput )
@@ -388,7 +399,18 @@
{
try
{
- generate( schemas[ii] );
+ BootstrapSchema bootstrapSchema = new AbstractBootstrapSchema( schemas[ii].getOwner(),
+ schemas[ii].getName(), schemas[ii].getPkg(), schemas[ii].getDependencies() ){};
+
+ if ( isStale( bootstrapSchema ) )
+ {
+ getLog().info( "Generating " + schemas[ii].getName() + " schema." );
+ generate( bootstrapSchema );
+ }
+ else
+ {
+ getLog().info( schemas[ii].getName() + " schema is up to date." );
+ }
}
catch ( Exception e )
{