/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.module.deployment.impl.internal.domain; import org.mule.runtime.core.api.MuleContext; import org.mule.runtime.deployment.model.api.domain.Domain; import org.mule.runtime.module.deployment.impl.internal.artifact.DeployableArtifactWrapper; import org.mule.runtime.deployment.model.api.domain.DomainDescriptor; import java.io.IOException; /** * Domain wrapper used to notify domain factory that a domain has been disposed or started. */ public class DomainWrapper extends DeployableArtifactWrapper<Domain, DomainDescriptor> implements Domain { private final DefaultDomainFactory domainFactory; protected DomainWrapper(final Domain delegate, final DefaultDomainFactory domainFactory) throws IOException { super(delegate); this.domainFactory = domainFactory; } @Override public boolean containsSharedResources() { return getDelegate().containsSharedResources(); } @Override public MuleContext getMuleContext() { return getDelegate().getMuleContext(); } @Override public void dispose() { try { getDelegate().dispose(); } finally { domainFactory.dispose(this); } } }