If the method is changed to protected, any subclass would have to reside in
the same package space, which seems undesirable to me.

Here is how Apache Commons does it:

public class FileUtils {


    /**

     * Instances should NOT be constructed in standard programming.

     */

    public FileUtils() {

        super();

    }
...

public class StringUtils {
...

    public StringUtils() {

        super();

    }
...

mrg


On Tue, Sep 9, 2014 at 2:10 AM, Andrus Adamchik <and...@objectstyle.org>
wrote:

> Usually we have private constructors for statics only classes (as is the
> case here). It sort of indicates it to the end users that the class is not
> supposed to be instantiated. While technically you won't get true
> polymorphism by inheriting from statics-only class in Java, it may still be
> beneficial to add more static methods to a subclass I guess. So how about
> we change that to protected? (in 3.2?)
>
> Andrus
>
>
> On Sep 8, 2014, at 11:18 PM, Michael Gentry <mgen...@masslight.net> wrote:
> > FWIW, I tried to extend the Cayenne class (we had a discussion about that
> > ages ago) and even though it is no longer final, it cannot be extended
> > because of the private constructor.  Should we remove the private
> > constructor to allow "subclassing" like Apache Commons allows?
> >
> > Thanks,
> >
> > mrg
> >
> >
> > On Sat, Sep 6, 2014 at 3:03 AM, Andrus Adamchik <and...@objectstyle.org>
> > wrote:
> >
> >> Done.
> >>
> >> Once I was a big fan of terse non-redundant APIs. Not anymore :) Now
> that
> >> we are moving in the direction of richer user-facing APIs, builders,
> etc,
> >> so this only makes sense to add this method back.
> >>
> >> Andrus
> >>
> >>
> >> On Sep 5, 2014, at 4:16 PM, Michael Gentry <mgen...@masslight.net>
> wrote:
> >>> I seem to recall a discussion on that particular method years ago, but
> >>> don't remember the details (I'd have to go back and find it).
> >>>
> >>> I'm fine with having deleteObject() just turn around and call
> >>> deleteObjects() because it makes the calling code read better, even at
> >> the
> >>> "expense" of cluttering up the API (although this isn't much, really).
> >>>
> >>> mrg
> >>>
> >>>
> >>>
> >>> On Fri, Sep 5, 2014 at 7:07 AM, Andrus Adamchik <
> and...@objectstyle.org>
> >>> wrote:
> >>>
> >>>> One possible last minute change is un-deprecating
> >>>> ObjectContext.deleteObject(..). It can easily coexist with
> >> 'deleteObjects',
> >>>> and getting rid of it was not the best idea on my part.
> >>>>
> >>>> Andrus
> >>>>
> >>>> On Aug 30, 2014, at 9:28 PM, Andrus Adamchik <and...@objectstyle.org>
> >>>> wrote:
> >>>>
> >>>>> In preparation to the 3.1-final vote, I ran the same set of tests as
> we
> >>>> did for RC1. All tests are on Java 1.6 unless specified otherwise. You
> >> can
> >>>> compare it with the previous results at
> >>>> http://markmail.org/message/slaj64iunxbeg4cs . Essentially everything
> >> is
> >>>> the same, so the latest 3.1 changes didn’t break anything obvious.
> >> There’s
> >>>> one less test failure on Oracle, which is related to my improved
> Oracle
> >>>> setup, rather than anything in Cayenne. Feel free to replicate the
> >> results
> >>>> in your own environment.
> >>>>>
> >>>>> rat:  PASSED
> >>>>> hsql: PASSED
> >>>>> h2: PASSED
> >>>>> derby: PASSED
> >>>>> derby/Java7: PASSED
> >>>>> mysql 5.0:  [1] PASSED
> >>>>> mysql 5.6:  [2] PASSED
> >>>>> sqlserver  [3] PASSED
> >>>>> postgresql: Failures: 1
> >>>> testBLOB(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> oracle 11: Failed tests:
> >>>>> testBIGINT(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testBIT(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testBOOLEAN(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testDOUBLE(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testFLOAT(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testREAL(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testSMALLINT(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>> testTINYINT(org.apache.cayenne.access.ReturnTypesMappingTest)
> >>>>>
> >>>>> Tests run: 2150, Failures: 8, Errors: 0, Skipped: 0
> >>>>>
> >>>>> [1] MySQL 5.0 config: [mysqld] max_allowed_packet=16M
> >>>>>
> >>>>> [2] MySQL 5.6 config: [mysqld] max_allowed_packet=16M
> >>>> lower_case_table_names = 1
> >>>>>
> >>>>> [3] SQL Server 2005 Expression config: collation -
> >>>> SQL_Latin1_general_CP1_CS_AS
> >>>>>
> >>>>> Andrus
> >>>>
> >>>>
> >>
> >>
>
>

Reply via email to