Richard Bucker

Netty 3.3.0 was release with some dependencies

Posted at — Jan 19, 2012

I’d like to try some netty code whether it’s standalone or connected to Apache:Camel but when I downloaded the source I saw that I needed Maven2 in order to build it. So I started the install process for Maven2…Yikes! I have no idea what licensing constraints I’ve entered into; why maven needs rhino and a large number of other libs.Back in the day when Object Oriented programing was becoming popular, around 1983-ish, people gravitated to the private/protected/public guarding of methods and data. I’m not sure why that was but I can guess it’s probably ego. There was a point to it when code or libraries were distributed in binary only form but today open source has all but eliminated secret sauce and we typically use naming to identify usage with documented examples and recommendation.That said, the super-dumptruck┬áneeds to be replaced with a backpack approach. This means that there is a more granular approach to installing dependencies and even interdependencies but it 2012 and we should be able to handle this.rbucker@soldev:~/src/netty-3.3.0.Final$ sudo apt-get install maven2Reading package lists… DoneBuilding dependency tree Reading state information… DoneThe following extra packages will be installed: antlr bsh bsh-gcj fop gcj-4.6-base gcj-4.6-jre-lib java-wrappers libantlr-java libasm3-java libavalon-framework-java libbackport-util-concurrent-java libbatik-java libbsf-java libclassworlds-java libcommons-beanutils-java libcommons-cli-java libcommons-codec-java libcommons-collections-java libcommons-collections3-java libcommons-configuration-java libcommons-digester-java libcommons-httpclient-java libcommons-io-java libcommons-jxpath-java libcommons-lang-java libcommons-logging-java libcommons-net2-java libcommons-validator-java libdoxia-java libdoxia-sitetools-java libexcalibur-logkit-java libganymed-ssh2-java libgcj-bc libgcj-common libgcj12 libgeronimo-jms-1.1-spec-java libgnuinet-java libgnujaf-java libgnumail-java libgoogle-collections-java libitext1-java libjdom1-java libjline-java libjsch-java libjsr305-java libjtidy-java liblog4j1.2-java libmaven-archiver-java libmaven-clean-plugin-java libmaven-compiler-plugin-java libmaven-dependency-tree-java libmaven-file-management-java libmaven-filtering-java libmaven-install-plugin-java libmaven-jar-plugin-java libmaven-plugin-tools-java libmaven-reporting-impl-java libmaven-resources-plugin-java libmaven-scm-java libmaven-shade-plugin-java libmaven-shared-io-java libmaven2-core-java libmodello-java libnekohtml-java libnetbeans-cvsclient-java liboro-java libplexus-ant-factory-java libplexus-archiver-java libplexus-bsh-factory-java libplexus-build-api-java libplexus-cipher-java libplexus-classworlds-java libplexus-compiler-api-java libplexus-compiler-javac-java libplexus-compiler-manager-java libplexus-component-api-java libplexus-container-default-java libplexus-containers-java libplexus-digest-java libplexus-i18n-java libplexus-interactivity-api-java libplexus-interpolation-java libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java libplexus-velocity-java libqdox-java libregexp-java librhino-java libsaxon-java libservlet2.4-java libservlet2.5-java libslf4j-java libwagon-java libwerken.xpath-java libxalan2-java libxbean-java libxml-commons-external-java libxmlgraphics-commons-java libxp6 rhino velocitySuggested packages: bsh-doc fop-doc libantlr-java-gcj libavalon-framework-java-doc libbackport-util-concurrent-java-doc jython libclassworlds-java-doc libcommons-beanutils-java-doc libcommons-collections-java-doc libcommons-collections3-java-doc java-virtual-machine libcommons-digester-java-doc libcommons-httpclient-java-doc libcommons-io-java-doc libcommons-jxpath-java-doc libcommons-logging-java-doc libcommons-net-java-doc libdoxia-java-doc libgcj12-dbg libgcj12-awt libgnumail-java-doc libjline-java-doc libjsr305-java-doc libjtidy-java-doc liblog4j1.2-java-gcj libmx4j-java libmodello-java-doc libnekohtml-java-doc libplexus-classworlds-java-doc libplexus-component-api-java-doc libplexus-container-default-java-doc libplexus-i18n-java-doc libplexus-interactivity-api-java-doc libplexus-utils-java-doc libplexus-velocity-java-doc libqdox-java-doc libsaxon-java-doc libservlet2.4-java-gcj libjavassist-java libwagon-java-doc libxalan2-java-doc libxsltc-java libxalan2-java-gcj groovy libspring-core-java libspring-beans-java libspring-context-java libspring-web-java libequinox-osgi-java librhino-java-doc velocity-docThe following NEW packages will be installed: antlr bsh bsh-gcj fop gcj-4.6-base gcj-4.6-jre-lib java-wrappers libantlr-java libasm3-java libavalon-framework-java libbackport-util-concurrent-java libbatik-java libbsf-java libclassworlds-java libcommons-beanutils-java libcommons-cli-java libcommons-codec-java libcommons-collections-java libcommons-collections3-java libcommons-configuration-java libcommons-digester-java libcommons-httpclient-java libcommons-io-java libcommons-jxpath-java libcommons-lang-java libcommons-logging-java libcommons-net2-java libcommons-validator-java libdoxia-java libdoxia-sitetools-java libexcalibur-logkit-java libganymed-ssh2-java libgcj-bc libgcj-common libgcj12 libgeronimo-jms-1.1-spec-java libgnuinet-java libgnujaf-java libgnumail-java libgoogle-collections-java libitext1-java libjdom1-java libjline-java libjsch-java libjsr305-java libjtidy-java liblog4j1.2-java libmaven-archiver-java libmaven-clean-plugin-java libmaven-compiler-plugin-java libmaven-dependency-tree-java libmaven-file-management-java libmaven-filtering-java libmaven-install-plugin-java libmaven-jar-plugin-java libmaven-plugin-tools-java libmaven-reporting-impl-java libmaven-resources-plugin-java libmaven-scm-java libmaven-shade-plugin-java libmaven-shared-io-java libmaven2-core-java libmodello-java libnekohtml-java libnetbeans-cvsclient-java liboro-java libplexus-ant-factory-java libplexus-archiver-java libplexus-bsh-factory-java libplexus-build-api-java libplexus-cipher-java libplexus-classworlds-java libplexus-compiler-api-java libplexus-compiler-javac-java libplexus-compiler-manager-java libplexus-component-api-java libplexus-container-default-java libplexus-containers-java libplexus-digest-java libplexus-i18n-java libplexus-interactivity-api-java libplexus-interpolation-java libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java libplexus-velocity-java libqdox-java libregexp-java librhino-java libsaxon-java libservlet2.4-java libservlet2.5-java libslf4j-java libwagon-java libwerken.xpath-java libxalan2-java libxbean-java libxml-commons-external-java libxmlgraphics-commons-java libxp6 maven2 rhino velocity0 upgraded, 103 newly installed, 0 to remove and 1 not upgraded.Need to get 60.3 MB of archives.After this operation, 134 MB of additional disk space will be used.Do you want to continue [Y/n]?Now that I installed Maven2 I performed a ‘mvn clean’ command. Maven is now downloading countless artifacts from the maven server. (I’m not going to copy all of the filenames here)In conclusion… there is no way that a single person can manage a project with this dependency stack unless you a) don’t care about full stack awareness; b) just going to defer all responsibility future generations; c) have a crystal ball that points out bugs and provides magic workarounds.