commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Heger <oliver.he...@oliver-heger.de>
Subject Re: svn commit: r1393690 - in /commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder: ./ ConfigurationBuilder.java
Date Wed, 03 Oct 2012 19:54:42 GMT
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,  <oheger@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-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message