[MOBY-dev] Java packages conversation (was: What versions of JAVA is everyone using?)
Martin Senger
senger at ebi.ac.uk
Tue Mar 22 11:05:53 UTC 2005
> May I ask you what it was you thought would be placed in the
> packages client, shared, and registry when you created them?
>
Sure. (I am quoting partly from the jMoby API documentation. And I am
going to put these more detailed answers back there.)
Just a note (repeating what was already said in this thread): these are
meant to be high-level package names - and everybody is welcome to make
more specialized packages *within* (below) these packages. However, please
be aware that making a directory under CVS is a *big* change which is hard
to redo - so think twice before you commit a new directory.
'org.biomoby.clients' contains components used to develop Moby clients.
The Moby clients can be both clients of the Moby registry and clients of
the Moby services. It can also contain not only components but full
clients (even though I have put my full command-line client
MobyCmdLineClient elsewhere because of some obscure reasons I have not
put that client into any package).
'org.biomoby.registry' contains components helping with Moby registry.
These components are supposed to be used by those who are running a
registry. At the moment, there is not many components here, because most
of the registry implementation is in Perl. Note that if you write code
that *uses* registry by calling its API methods you should put it into the
'org.biomoby.client' package because in fact you are the clients of the
registry. Here should go components that use direct access to the registry
databases (like a direct JDBC access), or here we may have
Java-implementation of the whole registry soemday.
'org.biomoby.service' (which should be called actually better
'org.biomoby.services' - my fault) contains general components that can be
used by those writing code for moby services. This is not meant to be used
for the service-specific code - such some business logic to get to a plant
database at MIPS (for that I assume the developer will have his/her own
package name which is not committed to the jMoby CVS) - but for general
components that can be re-used by any/many service providers for their
services. Also here can go some example services that can be used as
templates for service providers.
And finally 'org.biomoby.shared' contains components that are used by
classes from more than one package above. The bottom-line (or a
bottom-rule) is: If one wants to run clients, it must be sufficent for him
to pack all classes from 'org.biomoby.client' *and* 'org.biomoby.shared'
only. If one wants to create a registry oriented component, it is enough
for him to pack 'org.biomoby.registry' *and* 'org.biomoby.shared'. And
similarly for service providers which would pack ''org.biomoby.service'
*and* 'org.biomoby.shared'.
Additionally the 'org.biomoby.shared' package is a good place for
putting there Java interfaces - assuming that they are expected to use
more generally. So I have put here Central.java - an interface defining an
access to a Moby registry - because I felt (and I still feel) that there
may be a component (using this interface) in other package than in
'org.biomoby.client'.
Cheers,
Martin
--
Martin Senger
EMBL Outstation - Hinxton Senger at EBI.ac.uk
European Bioinformatics Institute Phone: (+44) 1223 494636
Wellcome Trust Genome Campus (Switchboard: 494444)
Hinxton Fax : (+44) 1223 494468
Cambridge CB10 1SD
United Kingdom http://industry.ebi.ac.uk/~senger
More information about the MOBY-dev
mailing list