blob: ad1909f63f07b39aca541dc88292209ac2d47977 [file] [log] [blame]
<%#
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
-%>
package <%= polygene.packageName %>.app;
import <%= polygene.packageName %>.bootstrap.<%= polygene.name %>ApplicationAssembler;
import <%= polygene.packageName %>.bootstrap.connectivity.ConnectivityLayer;
import <%= polygene.packageName %>.bootstrap.connectivity.RestApiModule;
import java.util.function.Consumer;
import org.apache.polygene.api.structure.Application;
import org.apache.polygene.bootstrap.ApplicationAssembly;
import org.apache.polygene.bootstrap.AssemblyException;
import org.apache.polygene.bootstrap.layered.LayeredApplicationAssembler;
import org.apache.polygene.library.restlet.PolygeneRestApplicationLauncher;
<% if( hasFeature( 'envisage' ) ) {
%>import org.apache.polygene.tools.model.descriptor.ApplicationDetailDescriptor;
<% } %>
public class <%= polygene.name %>Launcher extends PolygeneRestApplicationLauncher
{
private static final String name = "<%= polygene.name %>";
private static final String version = "0.1";
private Application.Mode mode;
private Consumer<ApplicationAssembly> customize;
<% if( hasFeature( 'envisage' ) ) {
%> private ApplicationDetailDescriptor detailedModel;
<% } %>
public static void main( String[] args )
throws Exception
{
<%= polygene.name %>Launcher app = new <%= polygene.name %>Launcher(getApplicationMode(), none -> {} );
app.installShutdownHook();
app.initialize();
}
public <%= polygene.name %>Launcher(Application.Mode mode, Consumer<ApplicationAssembly> customize)
{
this.mode = mode;
this.customize = customize;
}
protected LayeredApplicationAssembler createApplicationAssembler()
throws AssemblyException
{
return new <%= polygene.name %>ApplicationAssembler( name, version, mode, customize );
}
@Override
public void shutdown()
{
super.shutdown();
}
protected String entryLayer()
{
return ConnectivityLayer.NAME;
}
protected String entryModule()
{
return RestApiModule.NAME;
}
private static Application.Mode getApplicationMode()
{
String mode = System.getenv( "APP_MODE" );
if( mode == null )
{
return Application.Mode.development;
}
return Application.Mode.valueOf( mode );
}
}