/* * 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.functional.config; import org.mule.functional.functional.EventCallback; import org.mule.functional.functional.FunctionalTestComponent; import org.mule.runtime.dsl.api.component.AbstractAnnotatedObjectFactory; import org.mule.runtime.dsl.api.component.ObjectFactory; import org.mule.runtime.core.api.MuleContext; import org.mule.runtime.core.api.lifecycle.InitialisationCallback; import org.mule.runtime.api.lifecycle.InitialisationException; import org.mule.runtime.core.api.processor.Processor; import org.mule.runtime.core.component.DefaultJavaComponent; /** * {@link ObjectFactory} for functional test component * * @since 4.0 */ public class FunctionalComponentObjectFactory extends AbstractAnnotatedObjectFactory<Processor> { private FunctionalTestComponent component = newComponentInstance(); protected FunctionalTestComponent newComponentInstance() { return new FunctionalTestComponent(); } @Override public Processor doGetObject() throws Exception { return new DefaultJavaComponent(getFunctionalComponentObjectFactory()); } private org.mule.runtime.core.api.object.ObjectFactory getFunctionalComponentObjectFactory() { return new org.mule.runtime.core.api.object.ObjectFactory() { @Override public Object getInstance(MuleContext muleContext) throws Exception { return component; } @Override public Class<?> getObjectClass() { return component.getClass(); } @Override public boolean isSingleton() { return true; } @Override public boolean isExternallyManagedLifecycle() { return false; } @Override public boolean isAutoWireObject() { return false; } @Override public void addObjectInitialisationCallback(InitialisationCallback callback) {} @Override public void dispose() {} @Override public void initialise() throws InitialisationException {} }; } public void setEventCallback(EventCallback eventCallback) { component.setEventCallback(eventCallback); } public void setReturnData(Object returnData) { component.setReturnData(returnData); } public void setThrowException(boolean throwException) { component.setThrowException(throwException); } public void setExceptionToThrow(Class<? extends Throwable> exceptionToThrow) { component.setExceptionToThrow(exceptionToThrow); } public void setExceptionText(String exceptionText) { component.setExceptionText(exceptionText); } public void setEnableMessageHistory(boolean enableMessageHistory) { component.setEnableMessageHistory(enableMessageHistory); } public void setEnableNotifications(boolean enableNotifications) { component.setEnableNotifications(enableNotifications); } public void setDoInboundTransform(boolean doInboundTransform) { component.setDoInboundTransform(doInboundTransform); } public void setAppendString(String appendString) { component.setAppendString(appendString); } public void setWaitTime(long waitTime) { component.setWaitTime(waitTime); } public void setLogMessageDetails(boolean logMessageDetails) { component.setLogMessageDetails(logMessageDetails); } public void setId(String id) { component.setId(id); } public void setMuleContext(MuleContext muleContext) { component.setMuleContext(muleContext); } }