Hi all,

I noticed a few recent questions about where to find what CDK class,
about the difference between the cdk-1.4.x.jar and jars like
cdk-core.jar... I will summarize things a bit. Some further contains
can also be found in my blog:
http://chem-bla-ics.blogspot.com/2011/06/cdk-module-dependencies-3.html

CDK modules, dependencies, etc...

Originally, the CDK just built a single large jar, which is still
around as cdk-1.4.x.jar (or another version). This jar contains all
CDK classes and all dependencies. Or, it's enough to get any CDK code
going. But, it's also large, about 15 MB. With things like applets,
one like to get the size down, which is possible by selecting just
certain modules of code. This is particularly useful, because some
modules are large themselves (e.g. the builder3d module, which has a
few MBs of ring structure data), or modules that depend on large
third-party libraries.

A second aspect is that at some point, code became so mixed, that we
had no clue anymore where we could expect trouble by some patch. A
proper dependency management and modularization was needed to make the
CDK scale better. It is some extra work, but keeps things easier
maintainable. So, we now have quite a few modules (see that blog post
for a graphical overview), each with clearly defined dependencies
(found in plain text files in src/META-INF/ in the source bundle).

So, some tools just take the full CDK library and just use the full
jar. Others do not, and that comes at the expense that you need not
just one, but many jars on your classpath (as posted by Hans Horn; see
below). At the same time, if you already had one of the third-party
libraries the CDK used for some other part of your own project, you
can just use a single one with the modularized CDK jars.

On Tue, Feb 14, 2012 at 1:29 AM, Hans Horn <[email protected]> wrote:
> where do all these other bits on your classpath come from:
> ../workspace2/nmrshiftdb2/lib/cdk-core.jar:../workspace2/nmrshiftdb2/lib/cdk-data.jar:../workspace2/nmrshiftdb2/lib/cdk-interfaces.jar:../workspace2/nmrshiftdb2/lib/cdk-io.jar:../workspace2/nmrshiftdb2/lib/vecmath1.2-1.14.jar:../workspace2/nmrshiftdb2/lib/JNL.jar:../workspace2/nmrshiftdb2/jetspeed/WEB-INF/lib/torque-3.1.jar:../workspace2/nmrshiftdb2/lib/cdk-standard.jar:.

The modularized jars can be generated from the CDK source code. This
will require Ant and a Java compiler (Java6 or higher) installed, but
then you can run (from the command line):

$ ant clean dist-all

to get all cdk-*.jar. All third party-libraries that are required
dependencies (the CDK has the option for conditional building too),
are found in the source code distribution too, in the libs/ folder.

The jars are created in the dist/jar/ folder.

I hope this helps,

Egon

-- 
Dr E.L. Willighagen
Postdoctoral Researcher
Department of Bioinformatics - BiGCaT
Maastricht University (http://www.bigcat.unimaas.nl/)
Homepage: http://egonw.github.com/
LinkedIn: http://se.linkedin.com/in/egonw
Blog: http://chem-bla-ics.blogspot.com/
PubList: http://www.citeulike.org/user/egonw/tag/papers

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to