public AbstractVirtualHost(final Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode) { super(virtualHostNode, attributes); _broker = (Broker<?>) virtualHostNode.getParent(); _virtualHostNode = virtualHostNode; _dtxRegistry = new DtxRegistry(this); final SystemConfig systemConfig = (SystemConfig) _broker.getParent(); _eventLogger = systemConfig.getEventLogger(); _eventLogger.message(VirtualHostMessages.CREATED(getName())); _principal = new VirtualHostPrincipal(this); if (systemConfig.isManagementMode()) { _accessControl = AccessControl.ALWAYS_ALLOWED; } else { _accessControl = new CompoundAccessControl( Collections.<AccessControl<?>>emptyList(), Result.DEFER ); } _defaultDestination = new DefaultDestination(this, _accessControl); _housekeepingJobContext = getSystemTaskControllerContext("Housekeeping["+getName()+"]", _principal); _fileSystemSpaceCheckerJobContext = getSystemTaskControllerContext("FileSystemSpaceChecker["+getName()+"]", _principal); _fileSystemSpaceChecker = new FileSystemSpaceChecker(); }