/* 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.activiti.camel; import org.activiti.engine.RuntimeService; import org.apache.camel.*; import org.apache.camel.impl.DefaultEndpoint; public class ActivitiEndpoint extends DefaultEndpoint { private RuntimeService runtimeService; private ActivitiConsumer activitiConsumer; private boolean copyVariablesToProperties = true; private boolean copyVariablesToBody = false; private boolean copyVariablesFromProperties = false; public ActivitiEndpoint(String uri, CamelContext camelContext, RuntimeService runtimeService) { super(uri, camelContext); this.runtimeService = runtimeService; } void addConsumer(ActivitiConsumer consumer) { if (activitiConsumer != null) { throw new RuntimeException("Activit consumer already defined for " + getEndpointUri() + "!"); } activitiConsumer = consumer; } public void process(Exchange ex) throws Exception { if (activitiConsumer == null) { throw new RuntimeException("Activiti consumer not defined for " + getEndpointUri()); } activitiConsumer.getProcessor().process(ex); } public Producer createProducer() throws Exception { return new ActivitiProducer(this, runtimeService); } public Consumer createConsumer(Processor processor) throws Exception { return new ActivitiConsumer(this, processor); } public boolean isSingleton() { return true; } public boolean isCopyVariablesToProperties() { return copyVariablesToProperties; } public void setCopyVariablesToProperties(boolean copyVariablesToProperties) { this.copyVariablesToProperties = copyVariablesToProperties; } public boolean isCopyVariablesToBody() { return copyVariablesToBody; } public void setCopyVariablesToBody(boolean copyVariablesToBody) { this.copyVariablesToBody = copyVariablesToBody; } public boolean isCopyVariablesFromProperties() { return copyVariablesFromProperties; } public void setCopyVariablesFromProperties(boolean copyVariablesFromProperties) { this.copyVariablesFromProperties = copyVariablesFromProperties; } @Override public boolean isLenientProperties() { return true; } }