/**
	 * Contribution to the BeanBlockSource service to tell the BeanEditForm
	 * component about the editors.
	 */
	@Contribute(BeanBlockSource.class)
	public static void addCustomBlocks(Configuration<BeanBlockContribution> configuration)
	{
		configuration.add(new DisplayBlockContribution("boolean", "blocks/DisplayBlocks", "check"));
		configuration.add(new DisplayBlockContribution("single-valued-association", "blocks/DisplayBlocks", "showPageLink"));
		configuration.add(new DisplayBlockContribution("many-valued-association", "blocks/DisplayBlocks", "showPageLinks"));
	}
	public static void contributeSecurityConfiguration(Configuration<SecurityFilterChain> configuration,
	                                                   SecurityFilterChainFactory factory)
	{
		configuration.add(factory.createChain("/signin").add(factory.anon()).build());
		configuration.add(factory.createChain("/").add(factory.roles(), "admin").build());
		configuration.add(factory.createChain("/edit/**").add(factory.perms(), "*:update").build());
		configuration.add(factory.createChain("/show/**").add(factory.perms(), "*:select").build());
		configuration.add(factory.createChain("/add/**").add(factory.perms(), "*:insert").build());
		configuration.add(factory.createChain("/list/**").add(factory.perms(), "*:select").build());
	}
 @Override
 protected void configure(Configuration config) throws Exception {
   super.configure(config);
   config.add(new ReferenceSystemMonitoringSupport());
 }
	public static void contributeWebSecurityManager(Configuration<Realm> configuration) 
	{
		configuration.add(new ExtendedPropertiesRealm("classpath:shiro-users.properties"));
	}
	/**
	 * Contributions to the RESTeasy main Application, insert all your RESTeasy singletons services here.
	 */
	@Contribute(javax.ws.rs.core.Application.class)
	public static void configureRestResources(Configuration<Object> singletons, MyDomainObjectResource myDomainObjectResource)
	{
		singletons.add(myDomainObjectResource);
	}
 public static void contributeIgnoredPathsFilter(Configuration<String> configuration) {
   configuration.add("/partials/*");
 }
 public static void contributeResteasyPackageManager(Configuration<String> configuration) {
   configuration.add("dev.openshift.tapestry.angular.ws");
 }
 public static void contributeComponentClassResolver(Configuration<LibraryMapping> configuration) {
   configuration.add(new LibraryMapping("angular", "dev.openshift.tapestry.angular"));
 }
 /** @param pConfiguration to use */
 public static void contributeResponseCompressionAnalyzer(
     final Configuration<String> pConfiguration) {
   pConfiguration.add("application/json");
 }