in lightning-maven-plugin/src/main/java/org/apache/directmemory/lightning/maven/LightningGeneratorMojo.java [93:164]
public void execute()
throws MojoExecutionException, CompilationFailureException
{
if ( encoding == null )
{
encoding = "UTF-8";
}
SerializationStrategy serializationStrategy =
"size".equalsIgnoreCase( strategy ) ? SerializationStrategy.SizeOptimized
: SerializationStrategy.SpeedOptimized;
MavenLoggerAdapter logger = new MavenLoggerAdapter( LightningGeneratorMojo.class.getCanonicalName() );
getLog().info( "Searching in path " + targetBuildDirectory.getAbsolutePath() );
List<File> files =
SupportUtil.recursiveGetAllJavaSources( targetBuildDirectory, new ArrayList<File>(), fileFilter );
List<URL> urlClasspathElements = new ArrayList<URL>();
if ( getClasspathElements() != null )
{
for ( String classpathElement : getClasspathElements() )
{
try
{
URL url = new File( classpathElement ).toURI().toURL();
urlClasspathElements.add( url );
}
catch ( Exception e )
{
// Intentionally left blank
}
}
}
ClassLoader classLoader =
new URLClassLoader( urlClasspathElements.toArray( new URL[urlClasspathElements.size()] ),
getClass().getClassLoader() );
for ( File file : files )
{
try
{
String className = file.getAbsolutePath().replace( targetBuildDirectory.getAbsolutePath(), "" );
if ( className.startsWith( "/" ) || className.startsWith( "\\" ) )
{
className = className.substring( 1 );
}
className = className.replace( ".class", "" ).replace( "/", "." ).replace( "\\", "." );
getLog().debug( "Trying class " + className );
Class<?> clazz = classLoader.loadClass( className );
if ( AbstractSerializerDefinition.class.isAssignableFrom( clazz ) )
{
getLog().debug( "Found SerializerDefinition in class " + className );
AbstractSerializerDefinition definition = (AbstractSerializerDefinition) clazz.newInstance();
SerializerDefinitionAnalyser analyser = new SerializerDefinitionAnalyser( logger );
analyser.analyse( definition );
analyser.build( generatedSourceDirectory, serializationStrategy, encoding );
}
}
catch ( Exception e )
{
logger.error( "Could not generate Lightning source for file " + file.getName(), e );
}
}
super.execute();
// session.getCurrentProject().addCompileSourceRoot(generatedSourceDirectory.getAbsolutePath());
}