You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ju...@apache.org on 2005/02/02 14:40:31 UTC

svn commit: r149512 - geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring

Author: jules
Date: Wed Feb  2 05:40:29 2005
New Revision: 149512

URL: http://svn.apache.org/viewcvs?view=rev&rev=149512
Log:
add a peer GBean for each Spring managed POJO
tidy up a little

Added:
    geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java
Modified:
    geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment/SPRConfigBuilder.java
    geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java

Modified: geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment/SPRConfigBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment/SPRConfigBuilder.java?view=diff&r1=149511&r2=149512
==============================================================================
--- geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment/SPRConfigBuilder.java (original)
+++ geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment/SPRConfigBuilder.java Wed Feb  2 05:40:29 2005
@@ -23,6 +23,7 @@
 import java.net.URLClassLoader;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.Hashtable;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ArrayList;
@@ -53,19 +54,19 @@
 public class SPRConfigBuilder
   implements ConfigurationBuilder
 {
-  protected static final Log log=LogFactory.getLog(SPRConfigBuilder.class);
-  protected static final String defaultConfigPath="META-INF/spring.xml";
+  protected static final Log    _log=LogFactory.getLog(SPRConfigBuilder.class);
+  protected static final String _defaultConfigPath="META-INF/spring.xml";
 
-  protected final Kernel     kernel;
-  protected final Repository repository;
-  protected final URI        defaultParentId;
+  protected final Kernel     _kernel;
+  protected final Repository _repository;
+  protected final URI        _defaultParentId;
 
   public
     SPRConfigBuilder(URI defaultParentId, Repository repository, Kernel kernel)
   {
-    this.kernel         =kernel;
-    this.repository     =repository;
-    this.defaultParentId=defaultParentId;
+    _kernel         =kernel;
+    _repository     =repository;
+    _defaultParentId=defaultParentId;
   }
 
   //----------------------------------------
@@ -76,9 +77,9 @@
   static
   {
     GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(SPRConfigBuilder.class, NameFactory.CONFIG_BUILDER);
-    infoFactory.addAttribute("defaultParentId", URI.class, true);
-    infoFactory.addReference("Repository", Repository.class);
-    infoFactory.addAttribute("kernel", Kernel.class, false);
+    infoFactory.addAttribute("defaultParentId" , URI.class, true);
+    infoFactory.addReference("Repository"      , Repository.class);
+    infoFactory.addAttribute("kernel"          , Kernel.class, false);
     infoFactory.addInterface(ConfigurationBuilder.class);
     infoFactory.setConstructor(new String[]{"defaultParentId", "Repository", "kernel"});
 
@@ -95,7 +96,7 @@
   {
     if (sprFile==null || !sprFile.getName().endsWith(".spr")) return null;
 
-    log.info("Planning: "+sprFile.getName());
+    _log.info("Planning: "+sprFile.getName());
 
     // N.B.
     // - we should check that META-INF/spring.xml exists here (we can't really validate it)
@@ -112,18 +113,18 @@
     if (!(plan instanceof SPRConfigBuilder)) // hacky...
       return null;
 
-    log.info("Building: "+sprFile.getName());
+    String uid=sprFile.getName(); // should be overrideable in geronimo-spring.xml
 
-    String moduleId="Spring-App-1"; // what should this look like ?
+    _log.info("Building: "+uid);
 
     SPRContext ctx=null;
     try
     {
       URI configId=new URI(sprFile.getName());	// could be overridden in META-INF/geronimo-spring.xml
-      URI parentId=defaultParentId; // could be overridden in META-INF/geronimo-spring.xml
-      URI configPath=new URI(defaultConfigPath);
+      URI parentId=_defaultParentId; // could be overridden in META-INF/geronimo-spring.xml
+      URI configPath=new URI(_defaultConfigPath);
 
-      ctx=new SPRContext(outfile, configId, ConfigurationModuleType.SPR, parentId, kernel);
+      ctx=new SPRContext(outfile, configId, ConfigurationModuleType.SPR, parentId, _kernel);
 
       // set up classpath and files that we want available in final
       // distribution...
@@ -141,26 +142,26 @@
       }
 
       // now we can get ClassLoader...
-      //ClassLoader cl=ctx.getClassLoader(repository);
+      //ClassLoader cl=ctx.getClassLoader(_repository);
 
       // managed Object for this Spring Application
       {
-	ObjectName name=new ObjectName("geronimo.config", "name", sprFile.getName());
+	ObjectName name=new ObjectName("geronimo.config", "name", uid);
 	GBeanData gbeanData=new GBeanData(name, SpringApplicationImpl.GBEAN_INFO);
 	ctx.addGBean(gbeanData);
       }
 
       // the actual Application...
       {
-	ObjectName name=new ObjectName("geronimo.server"+":"+
-				       "J2EEServer"+"="+ "geronimo"+","+
-				       "J2EEApplication"+"="+"null"+","+
-				       "j2eeType"+"="+"SpringModule"+","+
-				       "name"+"="+ sprFile.getName()
-				       );
-	GBeanData gbeanData=new GBeanData(name, SpringGBean.GBEAN_INFO);
-	gbeanData.setAttribute("classPath", classPath.toArray(new URI[classPath.size()]));
-	gbeanData.setAttribute("configPath", configPath);
+	Hashtable props=new Hashtable();
+        props.put("J2EEServer"      , "geronimo");
+        props.put("J2EEApplication" , "null");
+        props.put("j2eeType"        , "SpringModule");
+        props.put("name"            , uid);
+	ObjectName on=new ObjectName("geronimo.server", props);
+	GBeanData gbeanData=new GBeanData(on, SpringGBean.GBEAN_INFO);
+        gbeanData.setAttribute("classPath"  , classPath.toArray(new URI[classPath.size()]));
+        gbeanData.setAttribute("configPath" , configPath);
 	ctx.addGBean(gbeanData);
       }
     }
@@ -173,6 +174,6 @@
       if (ctx!=null) ctx.close();
     }
 
-    return Collections.singletonList(moduleId);
+    return Collections.singletonList(uid);
   }
 }

Added: geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java?view=auto&rev=149512
==============================================================================
--- geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java (added)
+++ geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java Wed Feb  2 05:40:29 2005
@@ -0,0 +1,98 @@
+/**
+ *
+ * Copyright 2003-2004 The Apache Software Foundation
+ *
+ *  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.apache.geronimo.spring;
+
+import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Hashtable;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.Kernel;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.beans.factory.support.BeanDefinitionValidationException;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.beans.factory.xml.XmlBeanFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+
+/**
+ * A peer GBean for mediating between Geronimo Kernel and Spring managed POJO...
+ *
+ * @version $Rev: 149468 $
+ */
+public class POJOGBean
+  implements GBeanLifecycle
+{
+  protected static final Log _log = LogFactory.getLog(POJOGBean.class);
+
+  // injected into ctor
+  protected final Kernel _kernel;
+  protected final String _objectName;
+  protected final Object _peer;
+
+  //----------------------------------------
+  public static final GBeanInfo GBEAN_INFO;
+
+  static
+  {
+    GBeanInfoBuilder infoBuilder = new GBeanInfoBuilder("Spring Managed POJO", POJOGBean.class);
+
+    infoBuilder.addAttribute("kernel"     , Kernel.class , false);
+    infoBuilder.addAttribute("objectName" , String.class , false);
+    infoBuilder.addAttribute("peer"       , Object.class , true);
+
+    infoBuilder.setConstructor(new String[]{
+				 "kernel",
+				 "objectName",
+				 "peer"
+			       });
+
+    GBEAN_INFO = infoBuilder.getBeanInfo();
+  }
+
+  public static GBeanInfo getGBeanInfo() {return GBEAN_INFO;}
+
+  //----------------------------------------
+
+  public
+    POJOGBean(Kernel kernel, String objectName, Object peer)
+  {
+    _kernel    =kernel;
+    _objectName=objectName;
+    _peer      =peer;
+  }
+
+  //----------------------------------------
+  // GBeanLifecycle
+  //----------------------------------------
+
+  public void doStart() throws WaitingException, Exception {}
+  public void doStop() throws WaitingException, Exception {}
+  public void doFail() {}
+}

Modified: geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java?view=diff&r1=149511&r2=149512
==============================================================================
--- geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java (original)
+++ geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java Wed Feb  2 05:40:29 2005
@@ -21,25 +21,25 @@
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Set;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanData;
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
 import org.apache.geronimo.gbean.WaitingException;
-import org.apache.geronimo.gbean.jmx.GBeanMBean;
 import org.apache.geronimo.kernel.Kernel;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.beans.factory.support.BeanDefinitionValidationException;
 import org.springframework.beans.factory.support.DefaultListableBeanFactory;
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.beans.factory.xml.XmlBeanFactory;
 import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
 
 /**
  * A GBean for creating graphs of Spring POJOs and auto-deploying them inside Geronimo as GBeans
@@ -49,17 +49,18 @@
 public class SpringGBean
   implements GBeanLifecycle
 {
-  protected static final Log log = LogFactory.getLog(SpringGBean.class);
+  protected static final Log _log = LogFactory.getLog(SpringGBean.class);
 
   // injected into ctor
-  protected final Kernel      kernel;
-  protected final String      objectName;
-  protected final ClassLoader classLoader;
-  protected final URI[]       classPath;
-  protected final URL         configurationBaseUrl;
-  protected final URI         configPath;
+  protected final Kernel      _kernel;
+  protected final String      _objectName;
+  protected final ClassLoader _classLoader;
+  protected final URI[]       _classPath;
+  protected final URL         _configurationBaseUrl;
+  protected final URI         _configPath;
 
-  protected DefaultListableBeanFactory factory;
+  protected ObjectName                 _jmxName;
+  protected DefaultListableBeanFactory _factory;
 
   //----------------------------------------
   public static final GBeanInfo GBEAN_INFO;
@@ -95,138 +96,189 @@
   public
     SpringGBean(Kernel kernel, String objectName, ClassLoader classLoader, URI[] classPath, URL configurationBaseUrl, URI configPath)
   {
-    this.kernel               =kernel;
-    this.objectName           =objectName;
-    this.configPath           =configPath;
-    this.classLoader          =classLoader;
-    this.classPath            =classPath;
-    this.configurationBaseUrl =configurationBaseUrl;
+    _kernel               =kernel;
+    _objectName           =objectName;
+    _configPath           =configPath;
+    _classLoader          =classLoader;
+    _classPath            =classPath;
+    _configurationBaseUrl =configurationBaseUrl;
   }
 
+  //----------------------------------------
   // GBeanLifecycle
-  //-------------------------------------------------------------------------
+  //----------------------------------------
 
   public void
     doStart()
     throws WaitingException, Exception
   {
+    _jmxName=new ObjectName(_objectName);
+
     // set up classloader
-    URI root = URI.create(configurationBaseUrl.toString());
+    URI root = URI.create(_configurationBaseUrl.toString());
 
-    URL[] urls=new URL[classPath.length];
+    URL[] urls=new URL[_classPath.length];
 
-    for (int i=0; i<classPath.length; i++)
+    for (int i=0; i<_classPath.length; i++)
     {
-      URL url=root.resolve(classPath[i]).toURL();
-      log.info("classPath["+i+"]: "+url);
+      URL url=root.resolve(_classPath[i]).toURL();
+      _log.info("_classPath["+i+"]: "+url);
       urls[i]=url;
     }
 
-    ClassLoader cl=new URLClassLoader(urls, classLoader);
+    ClassLoader cl=new URLClassLoader(urls, _classLoader);
 
     // delegate work to Spring framework...
-    factory=new DefaultListableBeanFactory();
-    XmlBeanDefinitionReader xbdr=new XmlBeanDefinitionReader(factory);
+    _factory=new DefaultListableBeanFactory();
+    XmlBeanDefinitionReader xbdr=new XmlBeanDefinitionReader(_factory);
     xbdr.setBeanClassLoader(cl);
-    xbdr.loadBeanDefinitions(new ClassPathResource(configPath.toString(), cl));
+    xbdr.loadBeanDefinitions(new ClassPathResource(_configPath.toString(), cl));
 
-    // force lazy construction of every bean described...
-    String[] ids=factory.getBeanDefinitionNames();
+    // install aspects around Spring Bean initialisation...
+    _factory.addBeanPostProcessor(new BeanPostProcessor() {
+     	public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
+     	  return beforeInitialization(bean, name);
+     	}
+
+	public Object postProcessAfterInitialization(Object bean, String name) throws BeansException {
+	  return afterInitialization(bean, name);
+	}
+      });
+
+    // force lazy construction of every bean described... - is there a better way - ROB ?
+    String[] ids=_factory.getBeanDefinitionNames();
     int n=ids.length;
     for (int i=n; i>0; i--)
-      factory.getBean(ids[i-1]);
-    log.info("Deployed: "+n+" POJO"+(n==1?"":"s"));
-
-    // James was going to use these to register each spring-bean as
-    // a gbean - do we want to do that ?
+      _factory.getBean(ids[i-1]);
 
-    // factory.addBeanPostProcessor(new BeanPostProcessor() {
-    // 	public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
-    // 	  return beforeInitialization(bean, name);
-    // 	}
-
-    // 	public Object postProcessAfterInitialization(Object bean, String name) throws BeansException {
-    // 	  return afterInitialization(bean, name);
-    // 	}
-    //       });
+    _log.info("Deployed: "+n+" POJO"+(n==1?"":"s"));
   }
 
+
   public void
     doStop()
-    throws WaitingException, Exception
+    throws Exception
   {
-    factory.destroySingletons();
-    /*
-      if (springNames != null) {
-      for (int i = 0, size = springNames.length; i < size; i++ ) {
-      String name = springNames[i];
-      ObjectName objectName = (ObjectName) springNameToObjectName.get(name);
-      // TODO - how do we invoke the 'close' in Spring??
-      }
-      }
-    */
+    tidyUp();
   }
 
   public void
     doFail()
   {
-    factory.destroySingletons();
+    try
+    {
+      tidyUp();
+    }
+    catch (Exception e)
+    {
+      _log.warn("problem decommissioning Spring module: "+_jmxName, e);
+    }
+  }
+
+  protected void
+    tidyUp()
+    throws Exception
+  {
+    String pattern=_jmxName.getDomain()+":J2EEApplication="+_jmxName.getKeyProperty("J2EEApplication")+",J2EEServer="+_jmxName.getKeyProperty("J2EEServer")+",SpringModule="+_jmxName.getKeyProperty("name")+",j2eeType=SpringBean,*";
+    ObjectName on=new ObjectName(pattern);
+
+    // can't we do it like this - much less typo-prone...
+    //     Hashtable props  =new Hashtable(_jmxName.getKeyPropertyList());
+    //     props.put("SpringModule" , props.get("name"));
+    //     props.put("j2eeType"     , "SpringBean");
+    //     props.remove("name");
+    //     props.put("*"           , null);
+    //     ObjectName on=new ObjectName(_jmxName.getDomain(), props);
+
+    Set peers=_kernel.listGBeans(on);
+    for (Iterator i=peers.iterator(); i.hasNext();)
+    {
+      ObjectName tmp=(ObjectName)i.next();
+      try
+      {
+	_log.info("stopping: "+tmp);
+	_kernel.stopGBean(tmp);
+	_log.info("unloading: "+tmp);
+	_kernel.unloadGBean(tmp);
+      }
+      catch (Exception e)
+      {
+	_log.warn("problem decommissioning POJO peer GBean: "+tmp, e);
+      }
+    }
+
+    _factory.destroySingletons();
   }
 
+  //----------------------------------------
+  // aspects around Spring Bean creation...
+  //----------------------------------------
+
   /**
-   * Do we need to apply an interceptor to the bean?
+   * Hook to perform action before Spring Bean initialisation.
    */
   protected Object
     beforeInitialization(Object bean, String name)
   {
-    // we could add some interceptor stuff here if we like
     return bean;
   }
 
   /**
-   * Create an GBean wrapper
+   * Hook to perform action after Spring Bean initialisation.
    */
-  protected Object afterInitialization(Object bean, String name)
+  protected Object
+    afterInitialization(Object bean, String name)
     throws BeansException
   {
-    //     try {
-    //       ObjectName objectName = createObjectName(name);
-    //       /*
-    //  	springNameToObjectName.put(name, objectName);
-    //       */
-    //       GBeanMBean gbean = createGBean(bean, name);
-    //       if (gbean == null) {
-    //  	log.warn("No GBean available for name: " + name + " bean: " + bean);
-    //       }
-    //       else {
-    //  	kernel.loadGBean(objectName, gbean);
-    //       }
-    //     }
-    //     catch (Exception e) {
-    //       throw new BeanDefinitionValidationException("Could not load the GBean for name: " + name + " bean: " + bean + ". Reason: " + e, e);
-    //     }
+    // create a GBean peer...
+    try
+    {
+      GBeanData gd=createPOJOGBeanData(bean, name);
+      if (gd==null)
+      	_log.warn("No GBean available for name: " + name + " bean: " + bean);
+      else
+      {
+	_log.info("loading: "+gd.getName());
+      	_kernel.loadGBean(gd, _classLoader);
+	_log.info("starting: "+gd.getName());
+	_kernel.startGBean(gd.getName());
+      }
+    }
+    catch (Exception e)
+    {
+      throw new BeanDefinitionValidationException("Could not load the GBean for name: " + name + " bean: " + bean + ". Reason: " + e, e);
+    }
     return bean;
   }
 
+  //----------------------------------------
+  // utils...
+  //----------------------------------------
+
   /**
    * Factory method to create an ObjectName for the Spring bean
    *
    * @param name the name of the bean in the Spring config file
    * @return the ObjectName to use for the given Spring bean name
    */
-//   protected ObjectName createObjectName(String name) throws MalformedObjectNameException {
-//     Hashtable nameProps = new Hashtable(objectName.getKeyPropertyList());
-//     nameProps.put("name", name);
-//     return new ObjectName(objectName.getDomain(), nameProps);
-//   }
+  protected ObjectName
+    createObjectName(String name)
+    throws MalformedObjectNameException
+  {
+    Hashtable props  =new Hashtable(_jmxName.getKeyPropertyList());
+    props.put("SpringModule" , props.get("name"));
+    props.put("j2eeType"     , "SpringBean");
+    props.put("name"         , name);
+    return new ObjectName(_jmxName.getDomain(), props);
+  }
 
-  /**
-   * @return a newly created GBeanMBean for the given bean
-   */
-//   protected GBeanMBean
-//     createGBean(Object bean, String name)
-//   {
-//     // TODO
-//     return null;
-//   }
+  protected GBeanData
+    createPOJOGBeanData(Object bean, String name)
+    throws MalformedObjectNameException
+  {
+    GBeanData gbeanData=new GBeanData(createObjectName(name), POJOGBean.GBEAN_INFO);
+    gbeanData.setAttribute("peer", bean);
+
+    return gbeanData;
+  }
 }



Re: svn commit: r149512 - geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring

Posted by Jules Gosnell <ju...@coredevelopers.net>.
I did have second thoughts about doing this, but caved in to my own 
coding style as I spent more and more time in this module. I did a quick 
'find . -name "*.java" | xargs grep ' _'' before I did it and found that 
a number of other packages use the _-begins-instance-field convention, 
so I figured that it was not an issue.

I guess I am mistaken :-(

OK, as soon as activity in my code dies down a little bit, i.e. I don't 
have to spend all my time reading it, I will reformat it according to 
the coding standards, but please allow me a little forbearance whilst I 
develop it.

Jules


Dain Sundstrom wrote:

> On Feb 2, 2005, at 5:40 AM, jules@apache.org wrote:
>
>>  public class SPRConfigBuilder
>>    implements ConfigurationBuilder
>>  {
>> -  protected static final Log  
>> log=LogFactory.getLog(SPRConfigBuilder.class);
>> -  protected static final String  
>> defaultConfigPath="META-INF/spring.xml";
>> +  protected static final Log     
>> _log=LogFactory.getLog(SPRConfigBuilder.class);
>> +  protected static final String  
>> _defaultConfigPath="META-INF/spring.xml";
>>
>> -  protected final Kernel     kernel;
>> -  protected final Repository repository;
>> -  protected final URI        defaultParentId;
>> +  protected final Kernel     _kernel;
>> +  protected final Repository _repository;
>> +  protected final URI        _defaultParentId;
>>
>>    public
>>      SPRConfigBuilder(URI defaultParentId, Repository repository,  
>> Kernel kernel)
>>    {
>> -    this.kernel         =kernel;
>> -    this.repository     =repository;
>> -    this.defaultParentId=defaultParentId;
>> +    _kernel         =kernel;
>> +    _repository     =repository;
>> +    _defaultParentId=defaultParentId;
>>    }
>
>
> Jules, could you please update this code to follow our coding  
> conventions.  We don't use underscores, we don't align names in  
> assignments, we put the access modifier, method decl and curly on the  
> same line, and the variable should be private unless actually used by 
> a  subclass.  For a good example:
>
> http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/system/src/ 
> java/org/apache/geronimo/system/serverinfo/ServerInfo.java? 
> rev=124448&view=markup
>
> -dain



-- 
"Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it."

/**********************************
 * Jules Gosnell
 * Partner
 * Core Developers Network (Europe)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: svn commit: r149512 - geronimo/trunk/modules/spring-builder/src/java/org/apache/geronimo/spring/deployment geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring

Posted by Dain Sundstrom <ds...@gluecode.com>.
On Feb 2, 2005, at 5:40 AM, jules@apache.org wrote:

>  public class SPRConfigBuilder
>    implements ConfigurationBuilder
>  {
> -  protected static final Log  
> log=LogFactory.getLog(SPRConfigBuilder.class);
> -  protected static final String  
> defaultConfigPath="META-INF/spring.xml";
> +  protected static final Log     
> _log=LogFactory.getLog(SPRConfigBuilder.class);
> +  protected static final String  
> _defaultConfigPath="META-INF/spring.xml";
>
> -  protected final Kernel     kernel;
> -  protected final Repository repository;
> -  protected final URI        defaultParentId;
> +  protected final Kernel     _kernel;
> +  protected final Repository _repository;
> +  protected final URI        _defaultParentId;
>
>    public
>      SPRConfigBuilder(URI defaultParentId, Repository repository,  
> Kernel kernel)
>    {
> -    this.kernel         =kernel;
> -    this.repository     =repository;
> -    this.defaultParentId=defaultParentId;
> +    _kernel         =kernel;
> +    _repository     =repository;
> +    _defaultParentId=defaultParentId;
>    }

Jules, could you please update this code to follow our coding  
conventions.  We don't use underscores, we don't align names in  
assignments, we put the access modifier, method decl and curly on the  
same line, and the variable should be private unless actually used by a  
subclass.  For a good example:

http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/system/src/ 
java/org/apache/geronimo/system/serverinfo/ServerInfo.java? 
rev=124448&view=markup

-dain