use of org.apache.tapestry5.http.internal.SingleKeySymbolProvider in project tapestry-5 by apache.
the class TapestryFilter method init.
/**
* Initializes the filter using the {@link TapestryAppInitializer}. The application name is the
* capitalization of
* the filter name (as specified in web.xml).
*/
public final void init(FilterConfig filterConfig) throws ServletException {
config = filterConfig;
final ServletContext context = config.getServletContext();
String filterName = config.getFilterName();
SymbolProvider combinedProvider = new DelegatingSymbolProvider(new SystemPropertiesSymbolProvider(), new SingleKeySymbolProvider(TapestryHttpSymbolConstants.CONTEXT_PATH, context.getContextPath()), new ServletContextSymbolProvider(context), new SingleKeySymbolProvider(TapestryHttpSymbolConstants.EXECUTION_MODE, "production"));
String executionMode = combinedProvider.valueForSymbol(TapestryHttpSymbolConstants.EXECUTION_MODE);
TapestryAppInitializer appInitializer = new TapestryAppInitializer(logger, combinedProvider, filterName, executionMode);
appInitializer.addModules(provideExtraModuleDefs(context));
appInitializer.addModules(provideExtraModuleClasses(context));
registry = appInitializer.createRegistry();
context.setAttribute(REGISTRY_CONTEXT_NAME, registry);
ServletApplicationInitializer ai = registry.getService("ServletApplicationInitializer", ServletApplicationInitializer.class);
ai.initializeApplication(context);
registry.performRegistryStartup();
handler = registry.getService("HttpServletRequestHandler", HttpServletRequestHandler.class);
asyncRequestService = registry.getService("AsyncRequestService", AsyncRequestService.class);
init(registry);
appInitializer.announceStartup();
registry.cleanupThread();
}
use of org.apache.tapestry5.http.internal.SingleKeySymbolProvider in project tapestry-5 by apache.
the class TapestryAppInitializer method addSyntheticSymbolSourceModule.
private void addSyntheticSymbolSourceModule(String appPackage) {
ContributionDef appPathContribution = new SyntheticSymbolSourceContributionDef("AppPath", new SingleKeySymbolProvider(TapestryHttpInternalSymbols.APP_PACKAGE_PATH, appPackage.replace('.', '/')));
ContributionDef symbolSourceContribution = new SyntheticSymbolSourceContributionDef("ServletContext", appProvider, "before:ApplicationDefaults", "after:EnvironmentVariables");
ContributionDef appNameContribution = new SyntheticSymbolSourceContributionDef("AppName", new SingleKeySymbolProvider(TapestryHttpInternalSymbols.APP_NAME, appName), "before:ServletContext");
builder.add(new SyntheticModuleDef(symbolSourceContribution, appNameContribution, appPathContribution));
}
Aggregations