Upul,

Is there a reason why the init method doesn't reuse the existing buildAppContext method?

Andreas

On 07 Apr 2008, at 11:17, [EMAIL PROTECTED] wrote:
Author: upul
Date: Mon Apr  7 02:17:32 2008
New Revision: 645420

URL: http://svn.apache.org/viewvc?rev=645420&view=rev
Log:
create spring appcontext in mediator init

Modified:
synapse/trunk/java/modules/extensions/src/main/java/org/apache/ synapse/mediators/spring/SpringMediator.java

Modified: synapse/trunk/java/modules/extensions/src/main/java/org/ apache/synapse/mediators/spring/SpringMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/spring/SpringMediator.java?rev=645420&r1=645419&r2=645420&view=diff
= = = = = = = = ====================================================================== --- synapse/trunk/java/modules/extensions/src/main/java/org/apache/ synapse/mediators/spring/SpringMediator.java (original) +++ synapse/trunk/java/modules/extensions/src/main/java/org/apache/ synapse/mediators/spring/SpringMediator.java Mon Apr 7 02:17:32 2008
@@ -21,6 +21,9 @@

import org.apache.synapse.MessageContext;
import org.apache.synapse.Mediator;
+import org.apache.synapse.ManagedLifecycle;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.mediators.AbstractMediator;
import org.apache.synapse.config.SynapseConfigUtils;
import org.apache.synapse.config.Entry;
@@ -37,7 +40,7 @@
* refers to a Spring bean name, and also either a Spring configuration defined to Synapse
 * or an inlined Spring configuration.
 */
-public class SpringMediator extends AbstractMediator {
+public class SpringMediator extends AbstractMediator implements ManagedLifecycle {

    /**
     * The Spring bean ref to be used
@@ -152,4 +155,35 @@
    public String getType() {
        return "SpringMediator";
    }
+
+
+  public void init(SynapseEnvironment se) {
+        if (log.isDebugEnabled()) {
+ log.debug("Creating Spring ApplicationContext from key : " + configKey);
+        }
+
+        MessageContext synCtx = se.createMessageContext();
+ GenericApplicationContext appContext = new GenericApplicationContext(); + XmlBeanDefinitionReader xbdr = new XmlBeanDefinitionReader(appContext);
+        xbdr.setValidating(false);
+
+        Object springConfig = synCtx.getEntry(configKey);
+        if(springConfig == null) {
+ String errorMessage = "Cannot look up Spring configuration " + configKey;
+          log.error(errorMessage);
+          throw new SynapseException(errorMessage);
+        }
+
+        xbdr.loadBeanDefinitions(
+            new InputStreamResource(
+ SynapseConfigUtils.getStreamSource(springConfig).getInputStream()));
+        appContext.refresh();
+        if (log.isDebugEnabled()) {
+ log.debug("Spring ApplicationContext from key : " + configKey + " created");
+        }
+        this.appContext = appContext;
+  }
+
+  public void destroy() {
+  }
}




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to