All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mule.runtime.config.internal.DefaultExpressionManagerFactoryBean Maven / Gradle / Ivy

/*
 * 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.config.internal;

import static org.mule.runtime.core.internal.execution.ClassLoaderInjectorInvocationHandler.createClassLoaderInjectorInvocationHandler;
import org.mule.runtime.core.api.MuleContext;
import org.mule.runtime.core.api.el.ExtendedExpressionManager;
import org.mule.runtime.core.internal.el.DefaultExpressionManager;

import javax.inject.Inject;

import org.springframework.beans.factory.FactoryBean;

/**
 * Creates the default {@link org.mule.runtime.core.api.el.ExpressionManager}
 * 

* This factory creates a proxy on top of the real expression manager. That proxy is used to set the right classloader on the * current thread's context classloader before calling any method on the delegate object. * * @since 4.0 */ public class DefaultExpressionManagerFactoryBean implements FactoryBean { @Inject private MuleContext muleContext; @Override public ExtendedExpressionManager getObject() throws Exception { DefaultExpressionManager delegate = new DefaultExpressionManager(); muleContext.getInjector().inject(delegate); return (ExtendedExpressionManager) createClassLoaderInjectorInvocationHandler(delegate, muleContext.getExecutionClassLoader()); } @Override public Class getObjectType() { return ExtendedExpressionManager.class; } @Override public boolean isSingleton() { return true; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy