Hi Matt,
Am 03.10.2012 21:25, schrieb Matt Benson:
If [configuration] depends on [lang] already, presumably this new
version should depend on [lang] 3.x instead; in which case why not use
its Builder interface?
Yes, we are going to switch to [lang] 3.x. I would like to use the
Builder interface, but there are some open points:
- Currently the builder method in ConfigurationBuilder throws a checked
exception. It still has to be discussed whether in [configuration] 2.0
checked exceptions should be replaced by runtime exceptions.
- Switching the dependency to [lang] 3.x is one reason for a major
release of [configuration]: Because classes of [lang] are exposed in the
public API of [configuration], it is not possible to update the
dependency in a binary compatible way. So it was said that such direct
references should be avoided in future. I fear it would then not be
possible to let classes in [configuration] implement an interface from
[lang].
Oliver
$0.02,
Matt
On Wed, Oct 3, 2012 at 2:15 PM, <ohe...@apache.org> wrote:
Author: oheger
Date: Wed Oct 3 19:15:27 2012
New Revision: 1393690
URL: http://svn.apache.org/viewvc?rev=1393690&view=rev
Log:
Added ConfigurationBuilder interface.
Added:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
(with props)
Added:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java?rev=1393690&view=auto
==============================================================================
---
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
(added)
+++
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
Wed Oct 3 19:15:27 2012
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.commons.configuration.builder;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+
+/**
+ * <p>
+ * Definition of an interface for objects that can create {@link Configuration}
+ * objects of a specific type.
+ * </p>
+ * <p>
+ * This interface defines an abstract way of creating a {@code Configuration}
+ * object. It does not assume any specific way of how this is done; this is
+ * completely in the responsibility of an implementation class. There is just a
+ * single method that returns the configuration constructed by this builder.
+ * </p>
+ *
+ * @version $Id$
+ * @since 2.0
+ * @param <T> the concrete type of the {@code Configuration} class produced by
+ * this builder
+ */
+public interface ConfigurationBuilder<T extends Configuration>
+{
+ /**
+ * Returns the configuration provided by this builder. An implementation
has
+ * to perform all necessary steps for creating and initializing a
+ * {@code Configuration} object.
+ *
+ * @return the configuration
+ * @throws ConfigurationException if an error occurs
+ */
+ T getConfiguration() throws ConfigurationException;
+}
Propchange:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ConfigurationBuilder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org