Author: pier Date: Mon Nov 1 07:55:33 2004 New Revision: 56245 Modified: cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/configuration/Configuration.java cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/startup/Main.java Log: Add support for primitive types to Configuration
Modified: cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/configuration/Configuration.java ============================================================================== --- cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/configuration/Configuration.java (original) +++ cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/configuration/Configuration.java Mon Nov 1 07:55:33 2004 @@ -738,6 +738,17 @@ */ public Object getValueAs(Class type) throws ConfigurationException { + /* Normalize primitive class types */ + if (type.isPrimitive()) { + if (type.equals(boolean.class)) type = Boolean.class; + else if (type.equals(double.class)) type = Double.class; + else if (type.equals(float.class)) type = Float.class; + else if (type.equals(int.class)) type = Integer.class; + else if (type.equals(long.class)) type = Long.class; + else throw new ConfigurationException("Unsupported primitive: " + type); + } + + /* Return the correct object */ if (Boolean.class.equals(type)) { return new Boolean(this.getBooleanValue()); } else if (Double.class.equals(type)) { @@ -751,6 +762,8 @@ } else if (String.class.equals(type)) { return this.getStringValue(); } + + /* Fail miserably */ throw new ConfigurationException("Unsupported type " + type.getName()); } @@ -1000,6 +1013,17 @@ */ public Object getAttributeAs(String name, Class type) throws ConfigurationException { + /* Normalize primitive class types */ + if (type.isPrimitive()) { + if (type.equals(boolean.class)) type = Boolean.class; + else if (type.equals(double.class)) type = Double.class; + else if (type.equals(float.class)) type = Float.class; + else if (type.equals(int.class)) type = Integer.class; + else if (type.equals(long.class)) type = Long.class; + else throw new ConfigurationException("Unsupported primitive: " + type); + } + + /* Return the correct object */ if (Boolean.class.equals(type)) { return new Boolean(this.getBooleanAttribute(name)); } else if (Double.class.equals(type)) { @@ -1013,7 +1037,9 @@ } else if (String.class.equals(type)) { return this.getStringAttribute(name); } - throw new ConfigurationException("Unsupported type " + type.getName()); + + /* Fail miserably */ + throw new ConfigurationException("Unsupported type: " + type.getName()); } /* ====================================================================== */ Modified: cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/startup/Main.java ============================================================================== --- cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/startup/Main.java (original) +++ cocoon/whiteboard/kernel/src/org/apache/cocoon/kernel/startup/Main.java Mon Nov 1 07:55:33 2004 @@ -43,9 +43,18 @@ /** * <p>Create a new [EMAIL PROTECTED] Main} instance.</p> */ - private Main(Deployer deployer) { + private Main(Deployer deployer) throws Throwable { if (deployer == null) throw new NullPointerException("Null deployer"); this.deployer = deployer; + + Object datasource = deployer.lookup("test"); + System.err.println("CLASS: " + datasource.getClass().getName()); + Class interfaces[] = datasource.getClass().getInterfaces(); + System.err.println("INTERFACES: " + interfaces.length); + for (int k = 0; k < interfaces.length; k++) { + System.err.println(" - " + interfaces[k].getName()); + } + ((javax.sql.DataSource)deployer.lookup("test")).getConnection(); } /**