if ( ! wrapperConfTemplate.exists() )
{
throw new DaemonGeneratorException( "Could not load template." );
}
FormattedProperties confFile = new FormattedProperties();
InputStream in = null;
try
{
in = new FileInputStream( wrapperConfTemplate );
confFile.read( in );
}
catch ( IOException e )
{
throw new DaemonGeneratorException( "Error reading template: " + e.getMessage(), e );
}
finally
{
IOUtil.close( in );
}
// TODO: configurable?
confFile.setPropertyAfter( "wrapper.working.dir", "..", "wrapper.java.command" );
confFile.setProperty( "wrapper.java.library.path.1", "lib" );
confFile.setPropertyAfter( "set.default.REPO_DIR", "repo", "wrapper.java.mainclass" );
confFile.setPropertyAfter( "set.default." + context.getProperty( "app.base.envvar" ), ".",
"wrapper.java.mainclass" );
if ( daemon.getJvmSettings() != null && !StringUtils.isEmpty( daemon.getJvmSettings().getInitialMemorySize() ) )
{
confFile.setProperty( "wrapper.java.initmemory", daemon.getJvmSettings().getInitialMemorySize() );
}
if ( daemon.getJvmSettings() != null && !StringUtils.isEmpty( daemon.getJvmSettings().getMaxMemorySize() ) )
{
confFile.setProperty( "wrapper.java.maxmemory", daemon.getJvmSettings().getMaxMemorySize() );
}
confFile.setProperty( "wrapper.app.parameter.1", daemon.getMainClass() );
createClasspath( request, confFile, configuration );
createAdditional( daemon, confFile );
createParameters( daemon, confFile );
for ( Iterator i = configuration.entrySet().iterator(); i.hasNext(); )
{
Map.Entry entry = (Map.Entry) i.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
if ( value.length() > 0 )
{
confFile.setProperty( key, value );
}
else
{
confFile.removeProperty( key );
}
}
StringOutputStream string = new StringOutputStream();
confFile.save( string );
Reader reader = new InputStreamReader( new StringInputStream( string.toString() ) );
writeFilteredFile( request, daemon, reader, new File( outputDirectory, "conf/wrapper.conf" ), context );
}