Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   /*
    *  Copyright (c) 2011 Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany.
    *  All rights reserved. This program and the accompanying materials
    *  are made available under the terms of the GNU Lesser Public License v2.1
    *  which accompanies this distribution, and is available at
    *  http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    *
    *  Contributors:
    *      Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany - initial API and implementation
   */
  package de.ipk_gatersleben.bit.bi.edal.webdav.wrapper;
  
  import io.milton.http.*;
  import java.io.File;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  import java.util.UUID;
  
  
  public class EdalHttpManagerBuilder {
  
  	private Map<UUIDNoncenonces = new ConcurrentHashMap<UUIDNonce>();
  	private int nonceValiditySeconds = 60 * 60 * 24;
  	private EventManager eventManager = new EventManagerImpl();
  	private ValueWriters valueWriters = new ValueWriters();
  	private List<Filterfilters;
  	private Filter defaultStandardFilter = new StandardFilter();
  	private UrlAdapter urlAdapter = new UrlAdapterImpl();
  	private boolean enableOptionsAuth = false;
  	private boolean initDone;
  	private boolean enableCompression = true;
  	private boolean enableWellKnown = true;
  	private boolean enabledJson = true;
  	private boolean enableBasicAuth = true;
  	private boolean enableDigestAuth = true;
  	private boolean enableFormAuth = true;
  	private boolean enableCookieAuth = true;
  	private boolean enabledCkBrowser = false;
  	private String loginPage = "/login.html";
 	private File rootDir = null;
 	private String fsContextPath;
 	private String fsRealm = "milton";
 	private String defaultUser = "user";
 	private String defaultPassword = "password";
 	private boolean multiNamespaceCustomPropertySourceEnabled = true;
 	private boolean webdavEnabled = true;
 	private boolean caldavEnabled = true;
 	private boolean carddavEnabled = true;
 	private boolean aclEnabled = true;
This method creates instances of required objects which have not been set on the builder. These are subsequently wired together immutably in HttpManager when buildHttpManager is called. You can call this before calling buildHttpManager if you would like to modify property values on the created objects before HttpManager is instantiated. Otherwise, you can call buildHttpManager directly and it will call init if it has not been called
 
 	public final void init() {
 		if ( != null) {
 			for (EdalInitListener l : ) {
 				l.beforeInit(this);
 			}
 		}
 
 		if ( == null) {
 			 = new File(System.getProperty("user.home"));
 			if (!.exists() || !.isDirectory()) {
 				throw new RuntimeException("Root directory is not valie: "
 			}
 			if ( == null) {
 				if ( == null) {
 				}
 			}
 			..info("Using securityManager: "
 					.info("Using file system with root directory: "
 		}
 		..info("Using mainResourceFactory: "
 		if ( == null) {
 			if ( == null) {
 				if ( == null) {
 					if () {
 					}
 				}
 				if ( != null) {
 				}
 				if ( == null) {
 						if ( == null) {
 							if ( == null) {
 								showLog("expiredNonceRemover",
 							}
 							showLog("nonceProvider");
 						}
 					}
 				}
 				if ( != null) {
 				}
 				if ( == null) {
 					if () {
 					}
 				}
 				if ( != null) {
 				}
 				if ( == null) {
 						if ( == null) {
 							// Don't add digest!
 							if ( != null) {
 							}
 							if ( != null) {
 							}
 						}
 					}
 				}
 			}
 			showLog("authenticationService");
 		}
 
 	}
 
 	private void init(AuthenticationService authenticationService) {
 		// build a stack of resource type helpers
 		if ( == null) {
 			WebDavResourceTypeHelper webDavResourceTypeHelper = new WebDavResourceTypeHelper();
 			AccessControlledResourceTypeHelper accessControlledResourceTypeHelper = new AccessControlledResourceTypeHelper(
 					webDavResourceTypeHelper);
 			CalendarResourceTypeHelper calendarResourceTypeHelper = new CalendarResourceTypeHelper(
 					accessControlledResourceTypeHelper);
 					calendarResourceTypeHelper);
 			showLog("resourceTypeHelper");
 		}
 
 		if ( == null) {
 			if ( == null) {
 				showLog("propFindXmlGenerator");
 			}
 			if ( == null) {
 						authenticationService);
 				showLog("http11ResponseHandler");
 			}
 				showLog("webdavResponseHandler");
 			}
 			if () {
 						.info("form authentication is enabled, so wrap response handler with "
 				if ( == null) {
 				}
 			}
 		}
 		init(authenticationService);
 	}
 
 	private void init(AuthenticationService authenticationService,
 			WebDavResponseHandler webdavResponseHandler,
 			ResourceTypeHelper resourceTypeHelper) {
 		 = true;
 		if ( == null) {
 			 = new HandlerHelper(authenticationService);
 			showLog("handlerHelper");
 		}
 		if ( == null) {
 					webdavResponseHandler);
 			showLog("resourceHandlerHelper");
 		}
 
 		if ( == null) {
 
 			if ( == null) {
 			}
 			if ( == null) {
 				 = new PartialGetHelper(webdavResponseHandler);
 			}
 
 			Http11Protocol http11Protocol = new Http11Protocol(
 					webdavResponseHandler,
 
 			.add(http11Protocol);
 			if ( == null) {
 				showLog("propertySources");
 			}
 			if ( != null) {
 					..info("Add extra property source: "
 							+ ps.getClass());
 				}
 			}
 			if ( == null) {
 			}
 			if ( == null) {
 			}
 
 			if ( == null && ) {
 						resourceTypeHelperwebdavResponseHandler,
 			}
 			if ( != null) {
 			}
 
 			if ( == null && ) {
 						webdavResponseHandler);
 			}
 			if ( != null) {
 			}
 
 			if ( == null && ) {
 			}
 			if ( != null) {
 			}
 
 			if ( == null && ) {
 						webdavResponseHandler);
 			}
 			if ( != null) {
 			}
 		}
 
 		if ( == null) {
 		}
 
 		if ( == null) {
 			for (HttpExtension p : ) {
 					.add(wellKnownHandler);
 				}
 			}
 		}
 
 		// wrap the real (ie main) resource factory to provide well-known
 		// support and ajax gateway
 		if ( == null) {
 			 = // in case nothing else
 														// enabled
 			if () {
 						.info("Enabled json/ajax gatewayw with: "
 			}
 			if () {
 						.info("Enabled well-known protocol support with: "
 			}
 						.info("Enabled CK Editor support with: "
 			}
 		}
 		if ( != null) {
 		} else {
 			 = new ArrayList<Filter>();
 		}
 	}
 
 		if (!) {
 			init();
 		}
 		if ( != null) {
 			for (EdalInitListener l : ) {
 				l.afterInit(this);
 			}
 		}
 		if ( != null) {
 			for (EdalInitListener l : ) {
 				l.afterBuild(thishttpManager);
 			}
 		}
 		return httpManager;
 	}
 
 		if ( == null) {
 			if ( != null) {
 			}
 		}
 	}
 
 			ResourceTypeHelper resourceTypeHelper) {
 			}
 		}
 		}
 		if (initBeanPropertySource() != null) {
 		}
 		return list;
 	}
 
 		if ( == null) {
 		}
 	}
 
 	public BUFFERING getBuffering() {
 		return ;
 	}
 
 	public void setBuffering(BUFFERING buffering) {
 		this. = buffering;
 	}
 
 	}
 
 	public void setResourceFactory(ResourceFactory resourceFactory) {
 		this. = resourceFactory;
 	}
 
 	}
 
 			List<AuthenticationHandlerauthenticationHandlers) {
 		this. = authenticationHandlers;
 	}

Map holding nonce values issued in Digest authentication challenges

Returns:
map holding nonce values
 
 	public Map<UUIDNoncegetNonces() {
 		return ;
 	}
 
 	public void setNonces(Map<UUIDNoncenonces) {
 		this. = nonces;
 	}

This is your own resource factory, which provides access to your data repository. Not to be confused with outerResourceFactory which is normally used for milton specific things

 
 	}
 
 	public void setMainResourceFactory(ResourceFactory mainResourceFactory) {
 		this. = mainResourceFactory;
 	}

Usually set by milton, this will enhance the main resource factory with additional resources, such as .well-known support

 
 	}
 
 	public void setOuterResourceFactory(ResourceFactory outerResourceFactory) {
 		this. = outerResourceFactory;
 	}
 
 	public int getNonceValiditySeconds() {
 	}
 
 	public void setNonceValiditySeconds(int nonceValiditySeconds) {
 		this. = nonceValiditySeconds;
 	}
 
 		return ;
 	}
 
 	public void setNonceProvider(NonceProvider nonceProvider) {
 		this. = nonceProvider;
 	}
 
 	}
 
 	public void setAuthenticationService(
 			AuthenticationService authenticationService) {
 		this. = authenticationService;
 	}
 
 	}
 
 	public void setExpiredNonceRemover(ExpiredNonceRemover expiredNonceRemover) {
 		this. = expiredNonceRemover;
 	}
 
 	}
 
 	public void setShutdownHandlers(List<StoppableshutdownHandlers) {
 		this. = shutdownHandlers;
 	}
 
 	}
 
 	public void setResourceTypeHelper(ResourceTypeHelper resourceTypeHelper) {
 		this. = resourceTypeHelper;
 	}
 
 	}
 
 	public void setWebdavResponseHandler(
 			WebDavResponseHandler webdavResponseHandler) {
 		this. = webdavResponseHandler;
 	}
 
 		return ;
 	}
 
 	public void setHandlerHelper(HandlerHelper handlerHelper) {
 		this. = handlerHelper;
 	}
 
 		return ;
 	}
 
 	public void setProtocols(ArrayList<HttpExtensionprotocols) {
 		this. = protocols;
 	}
 
 	}
 
 	public void setProtocolHandlers(ProtocolHandlers protocolHandlers) {
 		this. = protocolHandlers;
 	}
 
 		return ;
 	}
 
 	public void setEntityTransport(EntityTransport entityTransport) {
 		this. = entityTransport;
 	}
 
 	}
 
 	public void setWellKnownHandlers(
 		this. = wellKnownHandlers;
 	}
 
 		return ;
 	}
 
 	public void setEventManager(EventManager eventManager) {
 		this. = eventManager;
 	}
 
 	}
 
 	public void setPropertyAuthoriser(PropertyAuthoriser propertyAuthoriser) {
 		this. = propertyAuthoriser;
 	}
 
 		return ;
 	}
 
 	public void setPropertySources(List<PropertySourcepropertySources) {
 		this. = propertySources;
 	}
 
 		return ;
 	}
 
 	public void seteTagGenerator(ETagGenerator eTagGenerator) {
 		this. = eTagGenerator;
 	}
 
 	}
 
 	public void setHttp11ResponseHandler(
 			Http11ResponseHandler http11ResponseHandler) {
 		this. = http11ResponseHandler;
 	}
 
 		return ;
 	}
 
 	public void setValueWriters(ValueWriters valueWriters) {
 		this. = valueWriters;
 	}
 
 	}
 
 	public void setPropFindXmlGenerator(
 			PropFindXmlGenerator propFindXmlGenerator) {
 		this. = propFindXmlGenerator;
 	}
 
 	public List<FiltergetFilters() {
 		return ;
 	}
 
 	public void setFilters(List<Filterfilters) {
 		this. = filters;
 	}
 
 	}
 
 	public void setDefaultStandardFilter(Filter defaultStandardFilter) {
 		this. = defaultStandardFilter;
 	}
 
 	public UrlAdapter getUrlAdapter() {
 		return ;
 	}
 
 	public void setUrlAdapter(UrlAdapter urlAdapter) {
 		this. = urlAdapter;
 	}
 
 	}
 
 	public void setQuotaDataAccessor(QuotaDataAccessor quotaDataAccessor) {
 		this. = quotaDataAccessor;
 	}
 
 		return ;
 	}
 
 	public void setPropPatchSetter(PropPatchSetter propPatchSetter) {
 		this. = propPatchSetter;
 	}
 
 	public boolean isInitDone() {
 		return ;
 	}
 
 	public void setInitDone(boolean initDone) {
 		this. = initDone;
 	}

False by default, which means that OPTIONS requests will not trigger authentication. This is required for windows 7
 
 	public boolean isEnableOptionsAuth() {
 	}
 
 	public void setEnableOptionsAuth(boolean enableOptionsAuth) {
 		this. = enableOptionsAuth;
 	}
 
 	public boolean isEnableCompression() {
 	}
 
 	public void setEnableCompression(boolean enableCompression) {
 		this. = enableCompression;
 	}
 
 	public boolean isEnableWellKnown() {
 		return ;
 	}
 
 	public void setEnableWellKnown(boolean enableWellKnown) {
 		this. = enableWellKnown;
 	}
 
 	public boolean isEnabledJson() {
 		return ;
 	}
 
 	public void setEnabledJson(boolean enabledJson) {
 		this. = enabledJson;
 	}
 
 	}
 
 	public void setExtraPropertySources(
 			List<PropertySourceextraPropertySources) {
 		this. = extraPropertySources;
 	}

Parameters:
propertyName
defaultedTo
 
 	private void showLog(String propertyNameObject defaultedTo) {
 		..info("set property: " + propertyName + " to: "
 				+ defaultedTo);
 	}
 
 	public boolean isEnableBasicAuth() {
 		return ;
 	}
 
 	public void setEnableBasicAuth(boolean enableBasicAuth) {
 		this. = enableBasicAuth;
 	}
 
 	public boolean isEnableCookieAuth() {
 	}
 
 	public void setEnableCookieAuth(boolean enableCookieAuth) {
 		this. = enableCookieAuth;
 	}
 
 	public boolean isEnableDigestAuth() {
 	}
 
 	public void setEnableDigestAuth(boolean enableDigestAuth) {
 		this. = enableDigestAuth;
 	}
 
 	public boolean isEnableFormAuth() {
 		return ;
 	}
 
 	public void setEnableFormAuth(boolean enableFormAuth) {
 		this. = enableFormAuth;
 	}
 
 		return ;
 	}
 
 	public void setBasicHandler(BasicAuthHandler basicHandler) {
 		this. = basicHandler;
 	}
 
 	}
 
 			CookieAuthenticationHandler cookieAuthenticationHandler) {
 		this. = cookieAuthenticationHandler;
 	}
 
 	}
 
 			List<AuthenticationHandlercookieDelegateHandlers) {
 		this. = cookieDelegateHandlers;
 	}
 
 		return ;
 	}
 
 	public void setDigestHandler(DigestAuthenticationHandler digestHandler) {
 		this. = digestHandler;
 	}
 
 	}
 
 			FormAuthenticationHandler formAuthenticationHandler) {
 		this. = formAuthenticationHandler;
 	}
 
 	public String getLoginPage() {
 		return ;
 	}
 
 	public void setLoginPage(String loginPage) {
 		this. = loginPage;
 	}
 
 	}
 
 	public void setLoginPageExcludePaths(List<StringloginPageExcludePaths) {
 		this. = loginPageExcludePaths;
 	}
 
 	}
 
 	public void setResourceHandlerHelper(
 			ResourceHandlerHelper resourceHandlerHelper) {
 		this. = resourceHandlerHelper;
 	}

used by FileSystemResourceFactory when its created as default resource factory

Returns:
java.io.File
 
 	public File getRootDir() {
 		return ;
 	}
 
 	public void setRootDir(File rootDir) {
 		this. = rootDir;
 	}

Mainly used when creating filesystem resourcfe factory, but can also be used by other resoruce factories that want to delegate security management

 
 		return ;
 	}
 
 	public void setSecurityManager(
 			io.milton.http.SecurityManager securityManager) {
 		this. = securityManager;
 	}

Passed to FilesystemResourceFactory when its created

 
 	public String getFsContextPath() {
 		return ;
 	}
 
 	public void setFsContextPath(String fsContextPath) {
 		this. = fsContextPath;
 	}
 
 		return ;
 	}
 
 	public void setUserAgentHelper(UserAgentHelper userAgentHelper) {
 		this. = userAgentHelper;
 	}
 
 	public String getDefaultPassword() {
 		return ;
 	}
 
 	public void setDefaultPassword(String defaultPassword) {
 		this. = defaultPassword;
 	}
 
 	public String getDefaultUser() {
 		return ;
 	}
 
 	public void setDefaultUser(String defaultUser) {
 		this. = defaultUser;
 	}
 
 	public String getFsRealm() {
 		return ;
 	}
 
 	public void setFsRealm(String fsRealm) {
 		this. = fsRealm;
 	}
 
 	}
 
 	public void setMapOfNameAndPasswords(
 			Map<StringStringmapOfNameAndPasswords) {
 		this. = mapOfNameAndPasswords;
 	}
 
 	}
 
 			MultiNamespaceCustomPropertySource multiNamespaceCustomPropertySource) {
 		this. = multiNamespaceCustomPropertySource;
 	}
 
	public void setBeanPropertySource(BeanPropertySource beanPropertySource) {
		this. = beanPropertySource;
	}

Whether to enable support for CK Editor server browser support. If enabled this will inject the FckResourceFactory into your ResourceFactory stack. Note this will have no effect if outerResourceFactory is already set, as that is the top of the stack.

	public boolean isEnabledCkBrowser() {
	public void setEnabledCkBrowser(boolean enabledCkBrowser) {
		this. = enabledCkBrowser;
	public void setWebDavProtocol(WebDavProtocol webDavProtocol) {
		this. = webDavProtocol;
	public void setCalDavProtocol(CalDavProtocol calDavProtocol) {
		this. = calDavProtocol;
	public void setCardDavProtocol(CardDavProtocol cardDavProtocol) {
		this. = cardDavProtocol;
		return ;
	public void setAclProtocol(ACLProtocol aclProtocol) {
		this. = aclProtocol;
	public boolean isAclEnabled() {
		return ;
	public void setAclEnabled(boolean aclEnabled) {
		this. = aclEnabled;
	public boolean isCaldavEnabled() {
	public void setCaldavEnabled(boolean caldavEnabled) {
		this. = caldavEnabled;
	public boolean isCarddavEnabled() {
	public void setCarddavEnabled(boolean carddavEnabled) {
		this. = carddavEnabled;
	public boolean isWebdavEnabled() {
	public void setWebdavEnabled(boolean webdavEnabled) {
		this. = webdavEnabled;
		return ;
	public void setMatchHelper(MatchHelper matchHelper) {
		this. = matchHelper;
	public void setPartialGetHelper(PartialGetHelper partialGetHelper) {