I have already trimmed all the completely unused commons-<foo> jars out of
the client, it's just that it was done after 0.6 was branched 3 months ago
so they were not removed from the release itself.

The others are still ripe for removal as noted :)

Robbie

> -----Original Message-----
> From: Rafael Schloming [mailto:rafa...@redhat.com]
> Sent: 30 March 2010 18:49
> To: dev@qpid.apache.org
> Subject: Re: Size of the Java client
> 
> Emmanuel Bourg wrote:
> > Hi,
> >
> > I started playing with Qpid recently, I'm mostly interested in the
> Java
> > side of the project. I noticed that the Java client was quite big
> > compared to the other clients. It weights about 4.3MB whereas the
> .NET
> > client for example is less that 1MB.
> >
> > It looks like the dependencies could be reduced:
> >
> > - Commons Lang is only used once in AMQProtocolSession to perform a
> > replace char. This could be replaced by a basic String.replace() or a
> > regexp.
> >
> > - Commons Configuration seems to be only used by the broker, it's
> never
> > used in the common and client packages.
> >
> > - Commons Digester and Commons BeanUtils are in the binary package
> but
> > don't seem to be used. I guess they are there as transitive
> dependencies
> > of Commons Configuration?
> >
> > - Commons Collections is only used for the ReferenceMap, if this
> class
> > can't be replaced by a WeakHashMap it could probably be copied into
> the
> > source tree to save 500KB.
> >
> > - Commons Codec, not sure if it's actually used by the client but its
> > size is quite small.
> >
> > - backport-util-concurrent should be easy to remove since the client
> > already requires Java 5. As I understand this dependency is required
> by
> > the Mina jar that was specifically tweaked for Qpid. I can volunteer
> to
> > repackage Mina without the backport-util dependency.
> >
> > - qpid-all.jar, I'm not sure to understand its intent since this
> package
> > doesn't contain any code or resource.
> 
> This is just for convenience. It has a manifest-classpath that
> references all the other jars. We want to kill this at some point, but
> right now most of our scripts reference it.
> 
> > - qpid-common.jar is the biggest part of the client. Maybe the
> > implementations of the various AMQP versions could be split into
> > different jars so one can pick the version relevant to its usage
> > (qpid-amqp-0.8.jar, qpid-amqp-0.9.jar, etc) ?
> >
> >
> > These changes could bring the size of the client to less than 2MB.
> >
> > What do you think?
> 
> I'm generally in favor of examining and reducing our dependencies where
> possible. We haven't done this in a long time, so I wouldn't be
> surprised if they could be trimmed a bit. Do you have a specific
> size/configuration in mind? Are you looking at embedded usage or
> something?
> 
> --Rafael
> 
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscr...@qpid.apache.org



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to