Hi Scott,

+) I spend a big junk of my time managing projects and fighting dependency hell
+) fulcrum-crypto was depending on three external libraries whereas two of them are troublesome (cryptix, mail)
+) since fulcrum is a component repository any additional dependency is a problem because it is required if you would like to use a component
+) if you depend on a single self-contained class of an external library I tend to move the code to my own project to get rid of the dependency
+) looking at fulcrum-yaafi as an example I could depend on commons-lang, commons-codec, commons-proxy and commons-cli
+) from a technical point of view those dependencies are correct but makes reuse a lot harder

Or my last war story

+) a developer added dom4j for parsing a simple XML document (using w3c dom would have been easy)
+) later on the XPath functionality of dom4j was used but the jaxen library was missing (not a transitive dependency in M2)
+) jaxen pulls in a xalan-2.6.0.jar as transitive dependency (in M2)
+) xalan-2.6.0.jar comes with a clone of org.apache.regexp (who the heck reviewed that build)
+) we are using org.apache.regexp already but the REException derived in the one package from RuntimeException whereas in the other package from Exception
+) this broke the build on two development boxes using Eclipse (but not IDEA)

The bottom line is - one developer tried to save 15 minutes by using dom4j but caused 2 man days effort further down the line by sorting out dependencies and releasing projects

SIegfried Goeschl



On Thu Oct 4 11:09 , Scott Eade <[EMAIL PROTECTED]> sent:

[EMAIL PROTECTED] wrote:
> Author: sgoeschl
> Date: Thu Oct 4 01:26:18 2007
> New Revision: 581797
>
> URL: http://svn.apache.org/viewvc\?rev=581797&view=rev
> Log:
> Getting rid of all external dependencies - especially the denpendency on the cryptix library.
>
> Added:
> turbine/fulcrum/trunk/crypto/src/java/org/apache/fulcrum/crypto/impl/Base64.java
>
snip
> Modified: turbine/fulcrum/trunk/crypto/src/java/org/apache/fulcrum/crypto/provider/JavaCrypt.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/crypto/src/java/org/apache/fulcrum/crypto/provider/JavaCrypt.java\?rev=581797&r1=581796&r2=581797&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/crypto/src/java/org/apache/fulcrum/crypto/provider/JavaCrypt.java (original)
> +++ turbine/fulcrum/trunk/crypto/src/java/org/apache/fulcrum/crypto/provider/JavaCrypt.java Thu Oct 4 01:26:18 2007
> @@ -23,9 +23,8 @@
>
> import java.security.MessageDigest;
>
> -import org.apache.commons.codec.binary.Base64;
> -
> import org.apache.fulcrum.crypto.CryptoAlgorithm;
> +import org.apache.fulcrum.crypto.impl.Base64
snip

Just curious - why dump the commons codec dependency and re-implement
Base64?

Scott

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to