/*
* 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.deployment.model.api.policy;
import static org.mule.runtime.api.util.Preconditions.checkArgument;
import org.mule.runtime.deployment.model.api.plugin.ArtifactPluginDescriptor;
import org.mule.runtime.module.artifact.descriptor.ArtifactDescriptor;
import org.mule.runtime.module.artifact.descriptor.ClassLoaderModel;
import java.util.HashSet;
import java.util.Set;
/**
* Describes how to create a {@link PolicyTemplate} artifact
*
* @since 4.0
*/
public class PolicyTemplateDescriptor extends ArtifactDescriptor {
public static final String DEFAULT_POLICY_CONFIGURATION_RESOURCE = "policy.xml";
public static final String META_INF = "META-INF";
public static final String MULE_ARTIFACT = "mule-artifact";
public static final String MULE_POLICY_JSON = "mule-policy.json";
protected static final String POLICY_EXPORTED_PACKAGES_ERROR = "A policy template artifact cannot export packages";
protected static final String POLICY_EXPORTED_RESOURCE_ERROR = "A policy template artifact cannot export resources";
private Set<ArtifactPluginDescriptor> plugins = new HashSet<>(0);
/**
* Creates a new descriptor for a named artifact
*
* @param name artifact name. Non empty.
*/
public PolicyTemplateDescriptor(String name) {
super(name);
}
public Set<ArtifactPluginDescriptor> getPlugins() {
return plugins;
}
public void setPlugins(Set<ArtifactPluginDescriptor> plugins) {
this.plugins = plugins;
}
@Override
public void setClassLoaderModel(ClassLoaderModel classLoaderModel) {
checkArgument(classLoaderModel.getExportedPackages().isEmpty(), POLICY_EXPORTED_PACKAGES_ERROR);
checkArgument(classLoaderModel.getExportedResources().isEmpty(), POLICY_EXPORTED_RESOURCE_ERROR);
super.setClassLoaderModel(classLoaderModel);
}
}