You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by David Jencks <da...@yahoo.com> on 2004/11/02 04:48:51 UTC
Re: svn commit: rev 56340 - in geronimo/trunk/modules: deployment/src/java/org/apache/geronimo/deployment deployment/src/java/org/apache/geronimo/deployment/service kernel/src/java/org/apache/geronimo/gbean kernel/src/java/org/apache/geronimo/gbean/jmx kernel/src/java/org/apache/geronimo/kernel kernel/src/java/org/apache/geronimo/kernel/config system/src/java/org/apache/geronimo/system/configuration system/src/test/org/apache/geronimo/system/configuration
Is MockGBean really supposed to be in java rather than test?
david jencks
On Nov 1, 2004, at 7:45 PM, dain@apache.org wrote:
> Author: dain
> Date: Mon Nov 1 19:45:48 2004
> New Revision: 56340
>
> Added:
>
> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
> configuration/MockGBean.java
> Modified:
>
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/DeploymentContext.java
>
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanBuilder.java
>
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanHelper.java
>
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
> GBeanData.java
>
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
> GBeanMBean.java
>
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> Kernel.java
>
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> config/Configuration.java
>
> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
> configuration/LocalConfigStoreTest.java
> Log:
> Moved object name into GBeanData
>
>
> Modified:
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/DeploymentContext.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/DeploymentContext.java (original)
> +++
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/DeploymentContext.java Mon Nov 1 19:45:48 2004
> @@ -155,9 +155,9 @@
> gbeans.put(name, gbean);
> }
>
> - public void addGBean(ObjectName name, GBeanData gbean,
> ClassLoader classLoader) {
> + public void addGBean(GBeanData gbean, ClassLoader classLoader) {
> GBeanMBean gbeanMBean = new GBeanMBean(gbean, classLoader);
> - gbeans.put(name, gbeanMBean);
> + gbeans.put(gbean.getName(), gbeanMBean);
> }
>
> public void addDependency(URI uri) {
>
> Modified:
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanBuilder.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanBuilder.java (original)
> +++
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanBuilder.java Mon Nov 1 19:45:48 2004
> @@ -35,13 +35,13 @@
> * @version $Rev$ $Date$
> */
> public class GBeanBuilder {
> - private final ObjectName name;
> private final GBeanData gbean;
> private final ClassLoader classLoader;
>
> public GBeanBuilder(String name, ClassLoader classLoader, String
> className) throws DeploymentException {
> + ObjectName objectName;
> try {
> - this.name = new ObjectName(name);
> + objectName = new ObjectName(name);
> } catch (MalformedObjectNameException e) {
> throw new DeploymentException("Invalid ObjectName: " +
> name, e);
> }
> @@ -49,7 +49,7 @@
> this.classLoader = classLoader;
>
> try {
> - gbean = new GBeanData(GBeanInfo.getGBeanInfo(className,
> classLoader));
> + gbean = new GBeanData(objectName,
> GBeanInfo.getGBeanInfo(className, classLoader));
> } catch (Exception e) {
> throw new DeploymentException("Unable to create GBean
> from class " + className, e);
> }
> @@ -95,9 +95,5 @@
>
> public GBeanData getGBeanData() {
> return gbean;
> - }
> -
> - public ObjectName getName() {
> - return name;
> }
> }
>
> Modified:
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanHelper.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanHelper.java (original)
> +++
> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
> deployment/service/GBeanHelper.java Mon Nov 1 19:45:48 2004
> @@ -45,6 +45,6 @@
> builder.setReference(gbean.getReferencesName(j),
> gbean.getReferencesPatternArray(j));
> }
>
> - context.addGBean(builder.getName(), builder.getGBeanData(),
> cl);
> + context.addGBean(builder.getGBeanData(), cl);
> }
> }
>
> Modified:
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
> GBeanData.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
> GBeanData.java (original)
> +++
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
> GBeanData.java Mon Nov 1 19:45:48 2004
> @@ -32,6 +32,7 @@
> * @version $Rev$ $Date$
> */
> public class GBeanData implements Externalizable {
> + private ObjectName name;
> private GBeanInfo gbeanInfo;
> private final Map attributes;
> private final Map references;
> @@ -41,18 +42,28 @@
> references = new HashMap();
> }
>
> - public GBeanData(GBeanInfo gbeanInfo) {
> + public GBeanData(ObjectName name, GBeanInfo gbeanInfo) {
> + this.name = name;
> this.gbeanInfo = gbeanInfo;
> attributes = new HashMap();
> references = new HashMap();
> }
>
> public GBeanData(GBeanData gbeanData) {
> + name = gbeanData.name;
> gbeanInfo = gbeanData.gbeanInfo;
> attributes = new HashMap(gbeanData.attributes);
> references = new HashMap(gbeanData.references);
> }
>
> + public ObjectName getName() {
> + return name;
> + }
> +
> + public void setName(ObjectName name) {
> + this.name = name;
> + }
> +
> public GBeanInfo getGBeanInfo() {
> return gbeanInfo;
> }
> @@ -101,6 +112,9 @@
> // write the gbean info
> out.writeObject(gbeanInfo);
>
> + // write the object name
> + out.writeObject(name);
> +
> // write the attributes
> out.writeInt(attributes.size());
> for (Iterator iterator = attributes.entrySet().iterator();
> iterator.hasNext();) {
> @@ -135,16 +149,29 @@
> // read the gbean info
> gbeanInfo = (GBeanInfo) in.readObject();
>
> - // read the attributes
> - int attributeCount = in.readInt();
> - for (int i = 0; i < attributeCount; i++) {
> - setAttribute((String) in.readObject(), in.readObject());
> + // read the object name
> + try {
> + name = (ObjectName) in.readObject();
> + } catch (IOException e) {
> + throw (IOException) new IOException("Unable to
> deserialize ObjectName for GBeanData of type " +
> gbeanInfo.getClassName()).initCause(e);
> }
>
> - // read the references
> - int endpointCount = in.readInt();
> - for (int i = 0; i < endpointCount; i++) {
> - setReferencePatterns((String) in.readObject(), (Set)
> in.readObject());
> + try {
> + // read the attributes
> + int attributeCount = in.readInt();
> + for (int i = 0; i < attributeCount; i++) {
> + setAttribute((String) in.readObject(),
> in.readObject());
> + }
> +
> + // read the references
> + int endpointCount = in.readInt();
> + for (int i = 0; i < endpointCount; i++) {
> + setReferencePatterns((String) in.readObject(), (Set)
> in.readObject());
> + }
> + } catch (IOException e) {
> + throw (IOException) new IOException("Unable to
> deserialize GBeanData " + name).initCause(e);
> + } catch (ClassNotFoundException e) {
> + throw new ClassNotFoundException("Unable to find class
> used in GBeanData " + name, e);
> }
> }
> }
>
> Modified:
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
> GBeanMBean.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
> GBeanMBean.java (original)
> +++
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
> GBeanMBean.java Mon Nov 1 19:45:48 2004
> @@ -684,10 +684,7 @@
> * @return the gbean data
> */
> public GBeanData getGBeanData() {
> - GBeanData gbeanData = new GBeanData();
> -
> - // add the gbean info
> - gbeanData.setGBeanInfo(gbeanInfo);
> + GBeanData gbeanData = new GBeanData(objectName, gbeanInfo);
>
> // add the attributes
> for (int i = 0; i < attributes.length; i++) {
>
> Modified:
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> Kernel.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> Kernel.java (original)
> +++
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> Kernel.java Mon Nov 1 19:45:48 2004
> @@ -282,14 +282,14 @@
> }
> }
>
> - public void loadGBean(ObjectName name, GBeanData gbeanData,
> ClassLoader classLoader) throws InstanceAlreadyExistsException,
> InvalidConfigException {
> + public void loadGBean(GBeanData gbeanData, ClassLoader
> classLoader) throws InstanceAlreadyExistsException,
> InvalidConfigException {
> try {
> GBeanMBean gbean = new GBeanMBean(gbeanData, classLoader);
> - mbServer.registerMBean(gbean, name);
> + mbServer.registerMBean(gbean, gbeanData.getName());
> } catch (MBeanRegistrationException e) {
> - throw new InvalidConfigException("Invalid GBean
> configuration for " + name, e);
> + throw new InvalidConfigException("Invalid GBean
> configuration for " + gbeanData.getName(), e);
> } catch (NotCompliantMBeanException e) {
> - throw new InvalidConfigException("Invalid GBean
> configuration for " + name, e);
> + throw new InvalidConfigException("Invalid GBean
> configuration for " + gbeanData.getName(), e);
> }
> }
>
>
> Modified:
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> config/Configuration.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> config/Configuration.java (original)
> +++
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
> config/Configuration.java Mon Nov 1 19:45:48 2004
> @@ -349,18 +349,15 @@
> */
> private static Map loadGBeans(byte[] gbeanState, ClassLoader cl)
> throws InvalidConfigException {
> Map gbeans = new HashMap();
> - ObjectName objectName = null;
> try {
> ObjectInputStream ois = new ConfigInputStream(new
> ByteArrayInputStream(gbeanState), cl);
> try {
> while (true) {
> - objectName = (ObjectName) ois.readObject();
> -
> GBeanData gbeanData = new GBeanData();
> gbeanData.readExternal(ois);
> GBeanMBean gbean = new GBeanMBean(gbeanData, cl);
>
> - gbeans.put(objectName, gbean);
> + gbeans.put(gbeanData.getName(), gbean);
> }
> } catch (EOFException e) {
> // ok
> @@ -369,8 +366,7 @@
> }
> return gbeans;
> } catch (Exception e) {
> - throw new InvalidConfigException("Unable to deserialize
> GBeanState" +
> - (objectName == null ? "" : " " + objectName), e);
> + throw new InvalidConfigException("Unable to deserialize
> GBeanState", e);
> }
> }
>
> @@ -401,8 +397,11 @@
> ObjectName objectName = (ObjectName) entry.getKey();
> GBeanMBean gbean = (GBeanMBean) entry.getValue();
> try {
> - oos.writeObject(objectName);
> - gbean.getGBeanData().writeExternal(oos);
> + GBeanData gbeanData = gbean.getGBeanData();
> + // todo we must explicitly set the bean name here
> from the gbean key because the gbean mbean may
> + // not have been brought online, so the object namve
> in the gbean mbean will be null
> + gbeanData.setName(objectName);
> + gbeanData.writeExternal(oos);
> } catch (Exception e) {
> throw new InvalidConfigException("Unable to serialize
> GBeanState for " + objectName, e);
> }
>
> Added:
> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
> configuration/MockGBean.java
> =======================================================================
> =======
> --- (empty file)
> +++
> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
> configuration/MockGBean.java Mon Nov 1 19:45:48 2004
> @@ -0,0 +1,49 @@
> +/**
> + *
> + * 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.system.configuration;
> +
> +import org.apache.geronimo.gbean.GBeanInfo;
> +import org.apache.geronimo.gbean.GBeanInfoBuilder;
> +
> +/**
> + * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14
> Sep 2004) $
> + */
> +public class MockGBean {
> + private static final GBeanInfo GBEAN_INFO;
> +
> + private String value;
> +
> + public String getValue() {
> + return value;
> + }
> +
> + public void setValue(String value) {
> + this.value = value;
> + }
> +
> + public static GBeanInfo getGBeanInfo() {
> + return GBEAN_INFO;
> + }
> +
> + static {
> + GBeanInfoBuilder infoBuilder = new
> GBeanInfoBuilder("MockGBean", MockGBean.class);
> + infoBuilder.addAttribute("value", String.class, true);
> +
> + GBEAN_INFO = infoBuilder.getBeanInfo();
> + }
> +}
>
> Modified:
> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
> configuration/LocalConfigStoreTest.java
> =======================================================================
> =======
> ---
> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
> configuration/LocalConfigStoreTest.java (original)
> +++
> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
> configuration/LocalConfigStoreTest.java Mon Nov 1 19:45:48 2004
> @@ -130,10 +130,10 @@
> root.mkdir();
>
> storeName = new
> ObjectName("geronimo.test:
> role=ConfigurationStore,name=LocalConfigStore");
> - GBeanData store = new
> GBeanData(LocalConfigStore.getGBeanInfo());
> + GBeanData store = new GBeanData(storeName,
> LocalConfigStore.getGBeanInfo());
> store.setAttribute("root", root.toURI());
>
> - kernel.loadGBean(storeName, store,
> getClass().getClassLoader());
> + kernel.loadGBean(store, getClass().getClassLoader());
> kernel.startGBean(storeName);
>
> GBeanMBean gbean = new
> GBeanMBean(Configuration.GBEAN_INFO);
>
Re: svn commit: rev 56340 - in geronimo/trunk/modules: deployment/src/java/org/apache/geronimo/deployment deployment/src/java/org/apache/geronimo/deployment/service kernel/src/java/org/apache/geronimo/gbean kernel/src/java/org/apache/geronimo/gbean/jmx kernel/src/java/org/apache/geronimo/kernel kernel/src/java/org/apache/geronimo/kernel/config system/src/java/org/apache/geronimo/system/configuration system/src/test/org/apache/geronimo/system/configuration
Posted by Dain Sundstrom <ds...@gluecode.com>.
DOH! I'm about to run out... I'll fix it when I get back.
-dain
On Nov 1, 2004, at 7:48 PM, David Jencks wrote:
> Is MockGBean really supposed to be in java rather than test?
>
> david jencks
>
> On Nov 1, 2004, at 7:45 PM, dain@apache.org wrote:
>
>> Author: dain
>> Date: Mon Nov 1 19:45:48 2004
>> New Revision: 56340
>>
>> Added:
>>
>> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
>> configuration/MockGBean.java
>> Modified:
>>
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/DeploymentContext.java
>>
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanBuilder.java
>>
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanHelper.java
>>
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
>> GBeanData.java
>>
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
>> GBeanMBean.java
>>
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> Kernel.java
>>
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> config/Configuration.java
>>
>> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
>> configuration/LocalConfigStoreTest.java
>> Log:
>> Moved object name into GBeanData
>>
>>
>> Modified:
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/DeploymentContext.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/DeploymentContext.java (original)
>> +++
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/DeploymentContext.java Mon Nov 1 19:45:48 2004
>> @@ -155,9 +155,9 @@
>> gbeans.put(name, gbean);
>> }
>>
>> - public void addGBean(ObjectName name, GBeanData gbean,
>> ClassLoader classLoader) {
>> + public void addGBean(GBeanData gbean, ClassLoader classLoader) {
>> GBeanMBean gbeanMBean = new GBeanMBean(gbean, classLoader);
>> - gbeans.put(name, gbeanMBean);
>> + gbeans.put(gbean.getName(), gbeanMBean);
>> }
>>
>> public void addDependency(URI uri) {
>>
>> Modified:
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanBuilder.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanBuilder.java (original)
>> +++
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanBuilder.java Mon Nov 1 19:45:48 2004
>> @@ -35,13 +35,13 @@
>> * @version $Rev$ $Date$
>> */
>> public class GBeanBuilder {
>> - private final ObjectName name;
>> private final GBeanData gbean;
>> private final ClassLoader classLoader;
>>
>> public GBeanBuilder(String name, ClassLoader classLoader, String
>> className) throws DeploymentException {
>> + ObjectName objectName;
>> try {
>> - this.name = new ObjectName(name);
>> + objectName = new ObjectName(name);
>> } catch (MalformedObjectNameException e) {
>> throw new DeploymentException("Invalid ObjectName: " +
>> name, e);
>> }
>> @@ -49,7 +49,7 @@
>> this.classLoader = classLoader;
>>
>> try {
>> - gbean = new GBeanData(GBeanInfo.getGBeanInfo(className,
>> classLoader));
>> + gbean = new GBeanData(objectName,
>> GBeanInfo.getGBeanInfo(className, classLoader));
>> } catch (Exception e) {
>> throw new DeploymentException("Unable to create GBean
>> from class " + className, e);
>> }
>> @@ -95,9 +95,5 @@
>>
>> public GBeanData getGBeanData() {
>> return gbean;
>> - }
>> -
>> - public ObjectName getName() {
>> - return name;
>> }
>> }
>>
>> Modified:
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanHelper.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanHelper.java (original)
>> +++
>> geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/
>> deployment/service/GBeanHelper.java Mon Nov 1 19:45:48 2004
>> @@ -45,6 +45,6 @@
>> builder.setReference(gbean.getReferencesName(j),
>> gbean.getReferencesPatternArray(j));
>> }
>>
>> - context.addGBean(builder.getName(), builder.getGBeanData(),
>> cl);
>> + context.addGBean(builder.getGBeanData(), cl);
>> }
>> }
>>
>> Modified:
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
>> GBeanData.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
>> GBeanData.java (original)
>> +++
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/
>> GBeanData.java Mon Nov 1 19:45:48 2004
>> @@ -32,6 +32,7 @@
>> * @version $Rev$ $Date$
>> */
>> public class GBeanData implements Externalizable {
>> + private ObjectName name;
>> private GBeanInfo gbeanInfo;
>> private final Map attributes;
>> private final Map references;
>> @@ -41,18 +42,28 @@
>> references = new HashMap();
>> }
>>
>> - public GBeanData(GBeanInfo gbeanInfo) {
>> + public GBeanData(ObjectName name, GBeanInfo gbeanInfo) {
>> + this.name = name;
>> this.gbeanInfo = gbeanInfo;
>> attributes = new HashMap();
>> references = new HashMap();
>> }
>>
>> public GBeanData(GBeanData gbeanData) {
>> + name = gbeanData.name;
>> gbeanInfo = gbeanData.gbeanInfo;
>> attributes = new HashMap(gbeanData.attributes);
>> references = new HashMap(gbeanData.references);
>> }
>>
>> + public ObjectName getName() {
>> + return name;
>> + }
>> +
>> + public void setName(ObjectName name) {
>> + this.name = name;
>> + }
>> +
>> public GBeanInfo getGBeanInfo() {
>> return gbeanInfo;
>> }
>> @@ -101,6 +112,9 @@
>> // write the gbean info
>> out.writeObject(gbeanInfo);
>>
>> + // write the object name
>> + out.writeObject(name);
>> +
>> // write the attributes
>> out.writeInt(attributes.size());
>> for (Iterator iterator = attributes.entrySet().iterator();
>> iterator.hasNext();) {
>> @@ -135,16 +149,29 @@
>> // read the gbean info
>> gbeanInfo = (GBeanInfo) in.readObject();
>>
>> - // read the attributes
>> - int attributeCount = in.readInt();
>> - for (int i = 0; i < attributeCount; i++) {
>> - setAttribute((String) in.readObject(), in.readObject());
>> + // read the object name
>> + try {
>> + name = (ObjectName) in.readObject();
>> + } catch (IOException e) {
>> + throw (IOException) new IOException("Unable to
>> deserialize ObjectName for GBeanData of type " +
>> gbeanInfo.getClassName()).initCause(e);
>> }
>>
>> - // read the references
>> - int endpointCount = in.readInt();
>> - for (int i = 0; i < endpointCount; i++) {
>> - setReferencePatterns((String) in.readObject(), (Set)
>> in.readObject());
>> + try {
>> + // read the attributes
>> + int attributeCount = in.readInt();
>> + for (int i = 0; i < attributeCount; i++) {
>> + setAttribute((String) in.readObject(),
>> in.readObject());
>> + }
>> +
>> + // read the references
>> + int endpointCount = in.readInt();
>> + for (int i = 0; i < endpointCount; i++) {
>> + setReferencePatterns((String) in.readObject(), (Set)
>> in.readObject());
>> + }
>> + } catch (IOException e) {
>> + throw (IOException) new IOException("Unable to
>> deserialize GBeanData " + name).initCause(e);
>> + } catch (ClassNotFoundException e) {
>> + throw new ClassNotFoundException("Unable to find class
>> used in GBeanData " + name, e);
>> }
>> }
>> }
>>
>> Modified:
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
>> GBeanMBean.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
>> GBeanMBean.java (original)
>> +++
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/
>> GBeanMBean.java Mon Nov 1 19:45:48 2004
>> @@ -684,10 +684,7 @@
>> * @return the gbean data
>> */
>> public GBeanData getGBeanData() {
>> - GBeanData gbeanData = new GBeanData();
>> -
>> - // add the gbean info
>> - gbeanData.setGBeanInfo(gbeanInfo);
>> + GBeanData gbeanData = new GBeanData(objectName, gbeanInfo);
>>
>> // add the attributes
>> for (int i = 0; i < attributes.length; i++) {
>>
>> Modified:
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> Kernel.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> Kernel.java (original)
>> +++
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> Kernel.java Mon Nov 1 19:45:48 2004
>> @@ -282,14 +282,14 @@
>> }
>> }
>>
>> - public void loadGBean(ObjectName name, GBeanData gbeanData,
>> ClassLoader classLoader) throws InstanceAlreadyExistsException,
>> InvalidConfigException {
>> + public void loadGBean(GBeanData gbeanData, ClassLoader
>> classLoader) throws InstanceAlreadyExistsException,
>> InvalidConfigException {
>> try {
>> GBeanMBean gbean = new GBeanMBean(gbeanData,
>> classLoader);
>> - mbServer.registerMBean(gbean, name);
>> + mbServer.registerMBean(gbean, gbeanData.getName());
>> } catch (MBeanRegistrationException e) {
>> - throw new InvalidConfigException("Invalid GBean
>> configuration for " + name, e);
>> + throw new InvalidConfigException("Invalid GBean
>> configuration for " + gbeanData.getName(), e);
>> } catch (NotCompliantMBeanException e) {
>> - throw new InvalidConfigException("Invalid GBean
>> configuration for " + name, e);
>> + throw new InvalidConfigException("Invalid GBean
>> configuration for " + gbeanData.getName(), e);
>> }
>> }
>>
>>
>> Modified:
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> config/Configuration.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> config/Configuration.java (original)
>> +++
>> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/
>> config/Configuration.java Mon Nov 1 19:45:48 2004
>> @@ -349,18 +349,15 @@
>> */
>> private static Map loadGBeans(byte[] gbeanState, ClassLoader cl)
>> throws InvalidConfigException {
>> Map gbeans = new HashMap();
>> - ObjectName objectName = null;
>> try {
>> ObjectInputStream ois = new ConfigInputStream(new
>> ByteArrayInputStream(gbeanState), cl);
>> try {
>> while (true) {
>> - objectName = (ObjectName) ois.readObject();
>> -
>> GBeanData gbeanData = new GBeanData();
>> gbeanData.readExternal(ois);
>> GBeanMBean gbean = new GBeanMBean(gbeanData, cl);
>>
>> - gbeans.put(objectName, gbean);
>> + gbeans.put(gbeanData.getName(), gbean);
>> }
>> } catch (EOFException e) {
>> // ok
>> @@ -369,8 +366,7 @@
>> }
>> return gbeans;
>> } catch (Exception e) {
>> - throw new InvalidConfigException("Unable to deserialize
>> GBeanState" +
>> - (objectName == null ? "" : " " + objectName), e);
>> + throw new InvalidConfigException("Unable to deserialize
>> GBeanState", e);
>> }
>> }
>>
>> @@ -401,8 +397,11 @@
>> ObjectName objectName = (ObjectName) entry.getKey();
>> GBeanMBean gbean = (GBeanMBean) entry.getValue();
>> try {
>> - oos.writeObject(objectName);
>> - gbean.getGBeanData().writeExternal(oos);
>> + GBeanData gbeanData = gbean.getGBeanData();
>> + // todo we must explicitly set the bean name here
>> from the gbean key because the gbean mbean may
>> + // not have been brought online, so the object namve
>> in the gbean mbean will be null
>> + gbeanData.setName(objectName);
>> + gbeanData.writeExternal(oos);
>> } catch (Exception e) {
>> throw new InvalidConfigException("Unable to
>> serialize GBeanState for " + objectName, e);
>> }
>>
>> Added:
>> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
>> configuration/MockGBean.java
>> ======================================================================
>> ========
>> --- (empty file)
>> +++
>> geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/
>> configuration/MockGBean.java Mon Nov 1 19:45:48 2004
>> @@ -0,0 +1,49 @@
>> +/**
>> + *
>> + * 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.system.configuration;
>> +
>> +import org.apache.geronimo.gbean.GBeanInfo;
>> +import org.apache.geronimo.gbean.GBeanInfoBuilder;
>> +
>> +/**
>> + * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14
>> Sep 2004) $
>> + */
>> +public class MockGBean {
>> + private static final GBeanInfo GBEAN_INFO;
>> +
>> + private String value;
>> +
>> + public String getValue() {
>> + return value;
>> + }
>> +
>> + public void setValue(String value) {
>> + this.value = value;
>> + }
>> +
>> + public static GBeanInfo getGBeanInfo() {
>> + return GBEAN_INFO;
>> + }
>> +
>> + static {
>> + GBeanInfoBuilder infoBuilder = new
>> GBeanInfoBuilder("MockGBean", MockGBean.class);
>> + infoBuilder.addAttribute("value", String.class, true);
>> +
>> + GBEAN_INFO = infoBuilder.getBeanInfo();
>> + }
>> +}
>>
>> Modified:
>> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
>> configuration/LocalConfigStoreTest.java
>> ======================================================================
>> ========
>> ---
>> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
>> configuration/LocalConfigStoreTest.java (original)
>> +++
>> geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/
>> configuration/LocalConfigStoreTest.java Mon Nov 1 19:45:48 2004
>> @@ -130,10 +130,10 @@
>> root.mkdir();
>>
>> storeName = new
>> ObjectName("geronimo.test:
>> role=ConfigurationStore,name=LocalConfigStore");
>> - GBeanData store = new
>> GBeanData(LocalConfigStore.getGBeanInfo());
>> + GBeanData store = new GBeanData(storeName,
>> LocalConfigStore.getGBeanInfo());
>> store.setAttribute("root", root.toURI());
>>
>> - kernel.loadGBean(storeName, store,
>> getClass().getClassLoader());
>> + kernel.loadGBean(store, getClass().getClassLoader());
>> kernel.startGBean(storeName);
>>
>> GBeanMBean gbean = new
>> GBeanMBean(Configuration.GBEAN_INFO);
>>