Anita,

Are these changes completed? I'm hitting an error with attempting to start the servers from a fresh trunk build and they might be related (but then again I'm not feeling well and I'm pretty tired ... so I could have something messed up locally). Here's the failure:

Booting Geronimo Kernel (in Java 1.5.0_06)...
23:12:51,538 WARN [ConfigurationUtil] Could not load gbean org.apache.geronimo.configs/j2ee-system/2.0-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/j
2ee-system/2.0-SNAPSHOT/car,j2eeType=AttributeStore,name=AttributeManager
org.apache.geronimo.gbean.InvalidConfigurationException: Target does not have specified method (declared in a GBeanInfo operation): name=hasGBeanAttributes meth odName=hasGBeanAttributes returnType=boolean targetClass=org.apache.geronimo.system.configuration.LocalAttributeManager at org.apache.geronimo.gbean.runtime.GBeanOperation.<init>(GBeanOperation.java:98) at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:298) at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:354) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:363) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:155) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:126) at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:242)
        at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:74)
        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:366)
[  ]  0%   1s Startup failed
org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exception at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:444) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:155) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:126) at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:242)
        at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:74)
        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:366)
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Target does not have specified method (declared in a GBeanInfo operation): name=hasGBeanAttr ibutes methodName=hasGBeanAttributes returnType=boolean targetClass=org.apache.geronimo.system.configuration.LocalAttributeManager at org.apache.geronimo.gbean.runtime.GBeanOperation.<init>(GBeanOperation.java:98) at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:298) at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:354) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:363)
        ... 5 more
org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exception at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:444) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:155) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:126) at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:242)
        at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:74)
        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:366)
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Target does not have specified method (declared in a GBeanInfo operation): name=hasGBeanAttr ibutes methodName=hasGBeanAttributes returnType=boolean targetClass=org.apache.geronimo.system.configuration.LocalAttributeManager at org.apache.geronimo.gbean.runtime.GBeanOperation.<init>(GBeanOperation.java:98) at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:298) at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:354) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:363)
        ... 5 more
Server shutdown begun
Server shutdown completed

Thanks,
Joe



anita kulshreshtha wrote:
Thanks Dain!

--- Dain Sundstrom <[EMAIL PROTECTED]> wrote:


On Dec 12, 2006, at 5:32 AM, anita kulshreshtha wrote:


Thanks Gianny, David J and Dain for providing feedback. I could

have

certainly used it before commiting rev 485321. IIUC, here is what needs
to be done:
1. .....Make the necessary code changes to
GBeanInfoBuilder while keeping the signatures of addOperation

methods same.

API compatibility - yes
   Serialization compatibility - depends on GOparationInfo


2. GoperationInfo must contain a field named targetClass
(declaringClass?). There are 2 options:
  a.. Just add the field and maintain backward compatibility


       API compatibility - yes
       Serialization compatibility - yes
  b.. Clean the code, i.e. remove unused field methodName and

break

the compatibility.


       API compatibility - no
       Serialization compatibility - no
    Even in Geronimo GOperationInfo does not seem to be used outside of
the kernel, hence it will be safe to remove the constructors without
the targetClass. I think we should not allow incomplete GOpeartionInfo
objects. But then I do not know what is the protocol for fixing the
API...
Which backward compatibility API, serialization or both?

I prefer we don't break backwards compatibility in the GBean apis since they are used everywhere.


    I am leaning towards b.
3. The fact that in some cases GBeanInfoBuilder.addInterfaces()

Line

295 ends up with two methods with same name and signatures but
different return type, it is not by design. Most of the time it is

due

to a badly overridden getter/setter/operation, and it is not the
responsibility of GBeanInfoBuilder to flag that as an error.

In Java5 a method is allowed to override/implement a method with a return type that is more specific. For example:

public interface Intf {
  Object getSomething();
}

public class Clazz implements Intf {
  public String getSomething() {
      return "something"
  }
}

-dain


  Ah.. java 5... One more question :)
    Why do we allow bad operations in GBeanInfo ? For example it is
possible to add a non existent operation to GBeanInfo.

Thanks
Anita


____________________________________________________________________________________
Any questions? Get answers on any topic at www.Answers.yahoo.com.  Try it now.


Reply via email to