/* * 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 * <ul> * <li>non empty should correspond to defined persistence unit in persistence.xml</li> * <li>null to use default persistence unit </li> * </ul> * @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 * <ul> * <li>non empty should correspond to defined persistence unit in persistence.xml</li> * <li>null to use default persistence unit </li> * </ul> * @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 <code>KieSession</code> * @return */ List<ObjectModel> getMarshallingStrategies(); /** * Returns list of event listeners (process, agenda, rule runtime) to be applied on <code>KieSession</code> * @return */ List<ObjectModel> getEventListeners(); /** * Return list of globals to be applied on <code>KieSession</code> * @return */ List<NamedObjectModel> getGlobals(); /** * Return list of work item handlers to be applied on <code>KieSession</code> * @return */ List<NamedObjectModel> getWorkItemHandlers(); /** * Returns list of task event listeners to be applied on <code>KieSession</code> * @return */ List<ObjectModel> getTaskEventListeners(); /** * List of (kie) environment entries to be registered * @return */ List<NamedObjectModel> getEnvironmentEntries(); /** * List of kiesession configuration entries to be registered * @return */ List<NamedObjectModel> 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<String> getRequiredRoles(); /** * Returns required for given type of applicability. Supported types are: * <ul> * <li>all</li> * <li>view</li> * <li>execute</li> * </ul> * @param type indicates the type which required roles shoud apply * @return */ List<String> 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<String> 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 <i>not</i> limited.) * In the 7.x branches, the default is true (classes <i>are</i> limited.) * @return a {@link Boolean} */ Boolean getLimitSerializationClasses(); /** * Returns XML representation of this descriptor instance * @return */ String toXml(); }