geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject svn commit: r386675 - /geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java
Date Fri, 17 Mar 2006 17:48:34 GMT
Author: dain
Date: Fri Mar 17 09:48:31 2006
New Revision: 386675

URL: http://svn.apache.org/viewcvs?rev=386675&view=rev
Log:
Constructor args are now automatically declared as persistent

Modified:
    geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java

Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java?rev=386675&r1=386674&r2=386675&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java
(original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/gbean/GBeanInfoBuilder.java
Fri Mar 17 09:48:31 2006
@@ -29,6 +29,7 @@
 import java.util.Arrays;
 
 import org.apache.geronimo.kernel.ClassLoading;
+import org.apache.geronimo.kernel.Kernel;
 
 /**
  * @version $Rev$ $Date$
@@ -212,6 +213,10 @@
             String attributeName = persistentAttributes[i];
             GAttributeInfo attribute = (GAttributeInfo) attributes.get(attributeName);
             if (attribute != null) {
+                if (isMagicAttribute(attribute)) {
+                    // magic attributes can't be persistent
+                    continue;
+                }
                 attributes.put(attributeName,
                         new GAttributeInfo(attributeName,
                                 attribute.getType(),
@@ -239,6 +244,14 @@
         }
     }
 
+    private boolean isMagicAttribute(GAttributeInfo attributeInfo) {
+        String name = attributeInfo.getName();
+        String type = attributeInfo.getType();
+        return ("kernel".equals(name) && Kernel.class.getName().equals(type)) ||
+                ("classLoader".equals(name) && ClassLoader.class.getName().equals(type))
||
+                ("objectName".equals(name) && String.class.getName().equals(type));
+    }
+
     public void addInterface(Class intf) {
         addInterface(intf, new String[0]);
     }
@@ -347,10 +360,13 @@
     public void setConstructor(GConstructorInfo constructor) {
         assert constructor != null;
         this.constructor = constructor;
+        List names = constructor.getAttributeNames();
+        setPersistentAttributes((String[]) names.toArray(new String[names.size()]));
     }
 
     public void setConstructor(String[] names) {
         constructor = new GConstructorInfo(names);
+        setPersistentAttributes(names);
     }
 
     public void addOperation(GOperationInfo operationInfo) {



Mime
View raw message