Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C69A5D906 for ; Wed, 12 Sep 2012 09:37:16 +0000 (UTC) Received: (qmail 84812 invoked by uid 500); 12 Sep 2012 09:37:16 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 84134 invoked by uid 500); 12 Sep 2012 09:37:13 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 83788 invoked by uid 99); 12 Sep 2012 09:37:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Sep 2012 09:37:12 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of chubrilo@gmail.com designates 209.85.217.171 as permitted sender) Received: from [209.85.217.171] (HELO mail-lb0-f171.google.com) (209.85.217.171) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Sep 2012 09:37:08 +0000 Received: by lbol12 with SMTP id l12so1029146lbo.2 for ; Wed, 12 Sep 2012 02:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=ecvFENcSZuKy0uga88Mtm3QJ1ey9zgxxAzaEqyUa35Q=; b=NWDB8u4ES73tmMqStA7op9B+aCuZg226c1AFOPIVmrgLYXfVi3yLMEqgCh+qrIEVLn OrobcieCKifpGWANk1ubYCTdzlHYXlkdFFLYXsEBJ/ps+8XxcA2YYxq4O7iB40sY0xdT jM6fEX9ZeF49oP2G3rRAT0XLoAdYprKF81Jj5hcQSWbz0XVkR+1b1+wtaVGGWuX5DUXx LBp8z0JHL8IuNz77xgtyuRM/aPi5VPVeyEEAwZHGUZaWBHp9UjqsMCFR7qxEctP9xOFw xP1A+KO0hqIDbykteYECUPi9H7HWDsur/NLTIn3DIrvop9v1ESbSTdVsO4LjGB89iZJC IDLg== MIME-Version: 1.0 Received: by 10.152.104.77 with SMTP id gc13mr18557413lab.31.1347442606727; Wed, 12 Sep 2012 02:36:46 -0700 (PDT) Sender: chubrilo@gmail.com Received: by 10.114.75.73 with HTTP; Wed, 12 Sep 2012 02:36:46 -0700 (PDT) In-Reply-To: References: Date: Wed, 12 Sep 2012 11:36:46 +0200 X-Google-Sender-Auth: ysydK353o810rgppliARdvtTBjA Message-ID: Subject: Re: [DISCUSS] - Reduce dependency in activemq-core From: Dejan Bosanac To: dev@activemq.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org +100 We definitely should start moving into that direction. There's to much stuff in activemq-core at the moment and the main problem is xbean generation as you mentioned. If we sort that for 5.8 we can remove all spring stuff out of it and also move separate stores, plugins and stuff to their own modules. > 4) > There is also the FTP support which uses commons net. We could > consider moving that into a separate module as well. FTP is used for blob support and I think we can move that > 5) > Somehow activemq-core has dependency to Jettison. I cannot see a > reason why. Anyone ? Jettison is used for Stomp JSON support (along with XStream). That's overdue for revisiting as well. Regards -- Dejan Bosanac Senior Software Engineer | FuseSource Corp. dejanb@fusesource.com | fusesource.com skype: dejan.bosanac | twitter: @dejanb blog: http://www.nighttale.net ActiveMQ in Action: http://www.manning.com/snyder/ On Wed, Sep 12, 2012 at 10:34 AM, Claus Ibsen wrote: > Hi > > I have also been looking a bit on activemq-core, and the many JAR > dependencies it currently has. > Currently we have a mix of mandatory and optional JARs. > > I suggest we work towards reducing this and moving pieces from the > core, into separate maven modules. > > 1) > For example the MQTT client could possible fit in a new activemq-mqtt module. > > 2) > Also there is a org.apache.activemq.util.XStreamFactoryBean that is > only used for an unit test. > I dont think its acitvemq-core business to have Spring factory beans > for the XStream library. That is either Spring or XStream business, > not ActiveMQ. I suggest to remove this dependency from the core. End > users can create their own factory bean or use some other way. > > 3) > LevelDB store. This is a bit more tricky. The implementation of the > store is in a separate module at > org.fusesource.mq.leveldb.LevelDBStore. But there is an adapter in the > activemq-core source code. > > * > * @org.apache.xbean.XBean element="levelDB" > * > */ > public class LevelDBPersistenceAdapter extends LevelDBStore { > } > > As you can see it used XBean to generate it into the broker schema file. > > I wonder if we can come up with some may in the future to make this > more separated. So we can have "shallow" adapters in the > activemq-core, but that is not tied at compile time to the > implementation. This is how we do it in Camel, with for example > DataFormats (they get generated in the Camel XSD schema, but is not > runtime tied to the camel-core). > > Ah look at the JDBC store, they have some FactoryFinder to find the > impl. Maybe we can use that for LevelDB? > > This would allow us then to move the levelDB store to a > activemq-leveldb module, and therefore untie the activemq-core from > this. > > > 4) > There is also the FTP support which uses commons net. We could > consider moving that into a separate module as well. > > 5) > Somehow activemq-core has dependency to Jettison. I cannot see a > reason why. Anyone ? > > > > Sorry if I go overboard, but I want to make activemq-core a leaner > module. So its easier for people to slice and dice to use what they > need. And to make AMQ more appealing for users (eg its fewer JARs) > with plugin/optional features they can choose a la carte. > > This also makes OSGi easier as today we got a bunch of optional OSGi > imports in the MANIFEST.MF of the activemq-core; this is not ideal. > > > > -- > Claus Ibsen > ----------------- > FuseSource > Email: cibsen@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus, fusenews > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen