You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/06/02 01:04:24 UTC
svn commit: r410985 - in /geronimo/trunk:
assemblies/minimal-jetty-server/src/var/config/
modules/system/src/java/org/apache/geronimo/system/configuration/
modules/system/src/test/org/apache/geronimo/system/configuration/
Author: djencks
Date: Thu Jun 1 16:04:23 2006
New Revision: 410985
URL: http://svn.apache.org/viewvc?rev=410985&view=rev
Log:
GERONIMO-2058 object if config.xml contains info for nonexistent gbeans
Modified:
geronimo/trunk/assemblies/minimal-jetty-server/src/var/config/config.xml
geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/LocalAttributeManagerTest.java
Modified: geronimo/trunk/assemblies/minimal-jetty-server/src/var/config/config.xml
URL: http://svn.apache.org/viewvc/geronimo/trunk/assemblies/minimal-jetty-server/src/var/config/config.xml?rev=410985&r1=410984&r2=410985&view=diff
==============================================================================
--- geronimo/trunk/assemblies/minimal-jetty-server/src/var/config/config.xml (original)
+++ geronimo/trunk/assemblies/minimal-jetty-server/src/var/config/config.xml Thu Jun 1 16:04:23 2006
@@ -40,7 +40,7 @@
<attribute name="host">${PlanServerHostname}</attribute>
<attribute name="port">${PlanHTTPSPortPrimary}</attribute>
</gbean>
- <gbean name="JettyAJPConnector">
+ <gbean name="JettyAJP13Connector">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">8009</attribute>
</gbean>
Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
URL: http://svn.apache.org/viewvc/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java?rev=410985&r1=410984&r2=410985&view=diff
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java Thu Jun 1 16:04:23 2006
@@ -116,6 +116,7 @@
for (Iterator iterator = gbeanDatas.iterator(); iterator.hasNext();) {
GBeanData gbeanData = (GBeanData) iterator.next();
datasByName.put(gbeanData.getAbstractName(), gbeanData);
+ datasByName.put(gbeanData.getAbstractName().getName().get("name"), gbeanData);
}
// add the new GBeans
@@ -123,11 +124,20 @@
Map.Entry entry = (Map.Entry) iterator.next();
Object name = entry.getKey();
GBeanOverride gbean = (GBeanOverride) entry.getValue();
- if (!datasByName.containsKey(name) && gbean.getGBeanInfo() != null && gbean.isLoad()) {
- if (!(name instanceof AbstractName)) {
- throw new InvalidConfigException("New GBeans must be specified with a full abstractName:" +
- " configuration=" + configName +
- " gbeanName=" + name);
+ if (!datasByName.containsKey(name) && gbean.isLoad()) {
+ if (gbean.getGBeanInfo() == null || !(name instanceof AbstractName)) {
+ String sep = "";
+ StringBuffer message = new StringBuffer("New GBeans must be specified with ");
+ if (gbean.getGBeanInfo() == null) {
+ message.append("a GBeanInfo ");
+ sep = "and ";
+ }
+ if (!(name instanceof AbstractName)) {
+ message.append(sep).append("a full AbstractName ");
+ }
+ message.append("configuration=").append(configName);
+ message.append(" gbeanName=").append(name);
+ throw new InvalidConfigException(message.toString());
}
GBeanInfo gbeanInfo = GBeanInfo.getGBeanInfo(gbean.getGBeanInfo(), classLoader);
AbstractName abstractName = (AbstractName)name;
@@ -191,15 +201,15 @@
//Clear attributes
for (Iterator iterator = gbean.getClearAttributes().iterator(); iterator.hasNext();){
- String attribute = (String) iterator.next();
+ String attribute = (String) iterator.next();
if (gbean.getClearAttribute(attribute)){
data.clearAttribute(attribute);
- }
- }
-
+ }
+ }
+
//Null attributes
for (Iterator iterator = gbean.getNullAttributes().iterator(); iterator.hasNext();){
- String attribute = (String) iterator.next();
+ String attribute = (String) iterator.next();
if (gbean.getNullAttribute(attribute)){
data.setAttribute(attribute, null);
}
@@ -222,7 +232,7 @@
//Clear references
for (Iterator iterator = gbean.getClearReferences().iterator(); iterator.hasNext();){
- String reference = (String) iterator.next();
+ String reference = (String) iterator.next();
if (gbean.getClearReference(reference)){
data.clearReference(reference);
}
@@ -361,13 +371,13 @@
"http://www.w3.org/2001/XMLSchema");
dFactory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource",
LocalAttributeManager.class.getResourceAsStream("/META-INF/schema/local-attributes-1.1.xsd"));
-
+
DocumentBuilder builder = dFactory.newDocumentBuilder();
builder.setErrorHandler(new ErrorHandler() {
public void error(SAXParseException exception) {
log.error("Unable to read saved manageable attributes. " +
"SAX parse error: " + exception.getMessage() +
- " at line " + exception.getLineNumber() +
+ " at line " + exception.getLineNumber() +
", column " + exception.getColumnNumber() +
" in entity " + exception.getSystemId());
// TODO throw an exception here?
@@ -376,20 +386,20 @@
public void fatalError(SAXParseException exception) {
log.error("Unable to read saved manageable attributes. " +
"Fatal SAX parse error: " + exception.getMessage() +
- " at line " + exception.getLineNumber() +
+ " at line " + exception.getLineNumber() +
", column " + exception.getColumnNumber() +
" in entity " + exception.getSystemId());
- // TODO throw an exception here?
+ // TODO throw an exception here?
}
public void warning(SAXParseException exception) {
log.error("SAX parse warning whilst reading saved manageable attributes: " +
exception.getMessage() +
- " at line " + exception.getLineNumber() +
+ " at line " + exception.getLineNumber() +
", column " + exception.getColumnNumber() +
" in entity " + exception.getSystemId());
}
- });
+ });
Document doc = builder.parse(in);
Element root = doc.getDocumentElement();
serverOverride = new ServerOverride(root);
Modified: geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/LocalAttributeManagerTest.java
URL: http://svn.apache.org/viewvc/geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/LocalAttributeManagerTest.java?rev=410985&r1=410984&r2=410985&view=diff
==============================================================================
--- geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/LocalAttributeManagerTest.java (original)
+++ geronimo/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/LocalAttributeManagerTest.java Thu Jun 1 16:04:23 2006
@@ -28,9 +28,11 @@
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.Naming;
import org.apache.geronimo.kernel.Jsr77Naming;
+import org.apache.geronimo.kernel.config.InvalidConfigException;
import org.apache.geronimo.system.serverinfo.BasicServerInfo;
import javax.management.ObjectName;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -118,7 +120,7 @@
assertEquals(attributeValue, gbeanData.getAttribute(attributeInfo.getName()));
}
- public void testSetAtrribute() throws Exception {
+ public void testSetAttribute() throws Exception {
String attributeValue = "attribute value";
localAttributeManager.setValue(configurationName, gbeanName, attributeInfo, attributeValue);
Collection gbeanDatas = new ArrayList();
@@ -145,7 +147,7 @@
AbstractName referencePattern1 = naming.createRootName(gbeanName.getArtifact(), "name", "referencePattern1");
AbstractName referencePattern2 = naming.createRootName(gbeanName.getArtifact(), "name", "referencePattern2");
- ReferencePatterns referencePatterns = new ReferencePatterns(new LinkedHashSet(Arrays.asList(new AbstractName[] {referencePattern1, referencePattern2})));
+ ReferencePatterns referencePatterns = new ReferencePatterns(new LinkedHashSet(Arrays.asList(new AbstractName[]{referencePattern1, referencePattern2})));
localAttributeManager.setReferencePatterns(configurationName, gbeanName, referenceInfo, referencePatterns);
Collection gbeanDatas = new ArrayList();
GBeanData gbeanData = new GBeanData(gbeanName, GBEAN_INFO);
@@ -175,6 +177,18 @@
assertSame(gbeanData.getAbstractName(), newGBeanData.getAbstractName());
assertEquals(Collections.singleton(referencePattern), newGBeanData.getReferencePatterns(referenceInfo.getName()).getPatterns());
assertEquals(attributeValue, newGBeanData.getAttribute(attributeInfo.getName()));
+ }
+
+ public void testBadGBeanSpec() throws Exception {
+ String attributeValue = "attribute value";
+ localAttributeManager.addConfiguration(configurationName);
+ localAttributeManager.setValue(configurationName, gbeanName, attributeInfo, attributeValue);
+ try {
+ localAttributeManager.applyOverrides(configurationName, Collections.EMPTY_SET, getClass().getClassLoader());
+ fail("no gbeans were specified in the 'plan' so overrides should fail");
+ } catch (InvalidConfigException e) {
+ //pass
+ }
}
protected void setUp() throws Exception {