org.kie.internal.runtime.conf.DeploymentDescriptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kie-internal Show documentation
Show all versions of kie-internal Show documentation
The Drools and jBPM internal API which is NOT backwards compatible between releases.
/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.internal.runtime.conf;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.kie.api.remote.Remotable;
/**
* Deployment descriptor defines configurable components of deployable unit - kjar
* that will be used upon deployment to execution environment providing flexible and
* independent setup per deployment unit
*
*/
public interface DeploymentDescriptor {
public static final String META_INF_LOCATION = "META-INF/kie-deployment-descriptor.xml";
public static final String TYPE_ALL = "all";
public static final String TYPE_VIEW = "view";
public static final String TYPE_EXECUTE = "execute";
/**
* Returns name of the JPA persistence unit to be used for runtime engine
*
* - non empty should correspond to defined persistence unit in persistence.xml
* - null to use default persistence unit
*
* @return non empty string should correspond to defined persistence unit in persistence.xml,
* in case null is returned persistence will use default one - org.jbpm.domain
*/
String getPersistenceUnit();
/**
* Returns name of the JPA persistence unit to be used by audit component
*
* - non empty should correspond to defined persistence unit in persistence.xml
* - null to use default persistence unit
*
* @return non empty string should correspond to defined persistence unit in persistence.xml,
* in case null is returned persistence will use default one - org.jbpm.domain
*/
String getAuditPersistenceUnit();
/**
* Returns the audit type configuration
* @return
*/
AuditMode getAuditMode();
/**
* Returns the runtime engine persistence type configuration
* @return
*/
PersistenceMode getPersistenceMode();
/**
* Returns runtime strategy to be used, default Singleton.
* @return
*/
RuntimeStrategy getRuntimeStrategy();
/**
* Returns list of object marshaling strategies to be applied on KieSession
* @return
*/
List getMarshallingStrategies();
/**
* Returns list of event listeners (process, agenda, rule runtime) to be applied on KieSession
* @return
*/
List getEventListeners();
/**
* Return list of globals to be applied on KieSession
* @return
*/
List getGlobals();
/**
* Return list of work item handlers to be applied on KieSession
* @return
*/
List getWorkItemHandlers();
/**
* Returns list of task event listeners to be applied on KieSession
* @return
*/
List getTaskEventListeners();
/**
* List of (kie) environment entries to be registered
* @return
*/
List getEnvironmentEntries();
/**
* List of kiesession configuration entries to be registered
* @return
*/
List getConfiguration();
/**
* Returns implementation specific builder to construct instances of the descriptor;
* @return
*/
DeploymentDescriptorBuilder getBuilder();
/**
* Returns all required roles required to be granted access to the deployment.
* Empty list or null means no security will be applied.
* @return
*/
List getRequiredRoles();
/**
* Returns required for given type of applicability. Supported types are:
*
* - all
* - view
* - execute
*
* @param type indicates the type which required roles shoud apply
* @return
*/
List getRequiredRoles(String type);
/**
* Returns additional classes that shall be added to remote services context.
* All classes that directly belong to kjar (or are declared as dependency of type kjar)
* do not need to be listed as part of this collection.
* @return
*/
List getClasses();
/**
* Returns whether or not the classes used in the serialization mechanism
* are limited to classes annotated with @{@link Remotable}, @{@link XmlRootElement},
* or @{@link XmlType}.
* In the 6.x branches, the default is false (classes are not limited.)
* In the 7.x branches, the default is true (classes are limited.)
* @return a {@link Boolean}
*/
Boolean getLimitSerializationClasses();
/**
* Returns XML representation of this descriptor instance
* @return
*/
String toXml();
}