/*
* 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.api.metadata.MetadataService;
import org.mule.runtime.core.api.MuleContext;
import org.mule.runtime.core.api.connectivity.ConnectivityTestingService;
import org.mule.runtime.module.artifact.classloader.ArtifactClassLoader;
import org.mule.runtime.deployment.model.api.DeploymentStartException;
import org.mule.runtime.deployment.model.api.InstallException;
import org.mule.runtime.deployment.model.api.domain.Domain;
import org.mule.runtime.deployment.model.api.domain.DomainDescriptor;
import java.io.File;
public class TestDomainWrapper implements Domain {
private Domain delegate;
private boolean failOnPurpose;
private boolean failOnDispose;
public TestDomainWrapper(Domain delegate) {
this.delegate = delegate;
}
@Override
public boolean containsSharedResources() {
return delegate.containsSharedResources();
}
@Override
public MuleContext getMuleContext() {
return delegate.getMuleContext();
}
@Override
public File getLocation() {
return delegate.getLocation();
}
@Override
public ConnectivityTestingService getConnectivityTestingService() {
return delegate.getConnectivityTestingService();
}
@Override
public MetadataService getMetadataService() {
return delegate.getMetadataService();
}
@Override
public void install() throws InstallException {
delegate.install();
}
@Override
public void init() {
delegate.init();
}
@Override
public void lazyInit() {
delegate.lazyInit();
}
@Override
public void start() throws DeploymentStartException {
delegate.start();
}
@Override
public void stop() {
if (failOnPurpose) {
fail();
}
delegate.stop();
}
private void fail() {
throw new RuntimeException("fail on purpose");
}
@Override
public void dispose() {
if (failOnDispose) {
fail();
}
delegate.dispose();
}
@Override
public String getArtifactName() {
return delegate.getArtifactName();
}
@Override
public String getArtifactId() {
return delegate.getArtifactId();
}
@Override
public DomainDescriptor getDescriptor() {
return delegate.getDescriptor();
}
@Override
public File[] getResourceFiles() {
return delegate.getResourceFiles();
}
@Override
public ArtifactClassLoader getArtifactClassLoader() {
return delegate.getArtifactClassLoader();
}
public void setFailOnStop() {
this.failOnPurpose = true;
}
public void setFailOnDispose() {
this.failOnDispose = true;
}
}