According to "Demeter's Law" (http://en.wikipedia.org/wiki/Law_of_Demeter)
as few as possible public APIs should be exposed. Putting classes into
different packages makes is hard under Java to accomplish that. Only let's
say OSGi enabled projects (something we could add if using them e.g. in a
container like Felix/Caraf is of interest) manage to declare some packages
as "internal" by simply not exposing them in the OSGi "bundle".

If a parser is already or very soon meant to be used in the signatures of
public methods, then why not offer them a separate packge. Otherwise we
could wait and leave it with "impl".

On Tue, Jul 8, 2014 at 9:39 PM, Reza <[email protected]> wrote:

> Technically 90% of the classes in the project are details of the
> implementation and are not exposed, does that mean that all those classes
> need to go into the same package? :)
>
> The packages are there for better organization and separation of work and
> interests. Parsers go into a parsers package, not the loader implementation
> package. At least, thats the way I have always done it.
>
> >> module name
>
> As for the svn project name, sure.
>
>
>
>  ------------------------------
>  *From:* Werner Keil <[email protected]>
> *To:* "[email protected]" <
> [email protected]>; Reza <[email protected]>
> *Sent:* Tuesday, July 8, 2014 3:27 PM
>
> *Subject:* Re: DeviceMap data and java client 1.0.0 release review ready
>
> It so far is a detail of the implementation that's not exposed. Only a
> private method refers to it. How would that change?
>
>
> On Tue, Jul 8, 2014 at 9:15 PM, Reza <[email protected]>
> wrote:
>
> I saw it. You had moved it into the loader.impl package. It doesnt belong
> there because its not a loader implementation. It goes into the
> loader.parser package since its a parser... When we add more parsers, they
> will go into that package as well.
>
>   ------------------------------
>  *From:* Werner Keil <[email protected]>
> *To:* "[email protected]" <
> [email protected]>; Reza <[email protected]>
> *Sent:* Tuesday, July 8, 2014 3:11 PM
> *Subject:* Re: DeviceMap data and java client 1.0.0 release review ready
>
> OK, I did the refactoring of the parser, you'll noticed it during the
> commit/update.
>
> Actually it seems you missed it Please try to update before the next
> commit, so a tagged version no longer exposes a class that's not used
> outside...
>
>
>
> On Tue, Jul 8, 2014 at 9:03 PM, Reza <[email protected]>
> wrote:
>
> I have updated the devicemap data and java client release:
>
> http://www.rezsoft.org/devicemap/
>
>
> Changes:
>
> -fixed the LICENSE, NOTICE, DISCLAIMER. I also added these to individual
> projects to simplify releasing.
> -added a README
> -removed all the @author comments
> -changed version from 1.0 to 1.0.0
> -I changed the java client artifact id from devicemap-java to
> devicemap-client
> -I moved some classes around in the loader package so they are better
> organized
>
> If all looks good, I will create the tag for this release.
>
>
>
>
>
>
>
>

Reply via email to