summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-dev/20110112/002088.html
diff options
context:
space:
mode:
Diffstat (limited to 'zarb-ml/mageia-dev/20110112/002088.html')
-rw-r--r--zarb-ml/mageia-dev/20110112/002088.html150
1 files changed, 150 insertions, 0 deletions
diff --git a/zarb-ml/mageia-dev/20110112/002088.html b/zarb-ml/mageia-dev/20110112/002088.html
new file mode 100644
index 000000000..171eb3829
--- /dev/null
+++ b/zarb-ml/mageia-dev/20110112/002088.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [Mageia-dev] Java-Policy first draft published
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20Java-Policy%20first%20draft%20published&In-Reply-To=%3C4D2DD5A9.3040301%40roadrunner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="002091.html">
+ <LINK REL="Next" HREF="002090.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[Mageia-dev] Java-Policy first draft published</H1>
+ <B>Frank Griffin</B>
+ <A HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20Java-Policy%20first%20draft%20published&In-Reply-To=%3C4D2DD5A9.3040301%40roadrunner.com%3E"
+ TITLE="[Mageia-dev] Java-Policy first draft published">ftg at roadrunner.com
+ </A><BR>
+ <I>Wed Jan 12 17:24:09 CET 2011</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="002091.html">[Mageia-dev] 12/01/2011 meeting
+</A></li>
+ <LI>Next message: <A HREF="002090.html">[Mageia-dev] Java-Policy first draft published
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#2088">[ date ]</a>
+ <a href="thread.html#2088">[ thread ]</a>
+ <a href="subject.html#2088">[ subject ]</a>
+ <a href="author.html#2088">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Farfouille wrote:
+&gt;<i> Hi
+</I>&gt;<i>
+</I>&gt;<i> I have published a first draft of Java application package policy. <A HREF="http://mageia.org/wiki/doku.php?id=java_applications_policy">http://mageia.org/wiki/doku.php?id=java_applications_policy</A>
+</I>&gt;<i>
+</I>&gt;<i> Corrections and comments are welcome.
+</I>&gt;<i>
+</I>
+The bit about pre-packaged JARs may cause trouble. In theory, it's
+great, but many applications depend upon certain versions of their
+utility JARs, and can't all run with the latest versions. Any such app
+would have a Requires for its specific version, which would prevent the
+utility JAR from being updated with a newer version for other apps.
+This is why EJB allows EJB apps to include their own specific versions
+of utility JARs, which are visible to them but not to other apps or the
+container itself, and also why Maven uses versioned artifacts.
+
+An extreme example of such an app is NetBeans, which includes its own
+versions of Ant and Maven.
+
+Also, for such apps, upstream developers may refuse to investigate
+issues unless the shipped versions of supplemental JARs are being used.
+
+&gt;<i> As I have never used maven, a deep reread is required
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>
+Maven POMs allow the packager to specify required other objects
+(&quot;artifacts&quot;) not only for building the package but for execution as
+well. There are central Maven repositories which contain versioned
+artifacts for commonly-used projects, e.g. JUnit, and many companies
+have site-wide repositories of their own. Finally, every user of Maven
+has a personal repository located in $HOME/.m2, which is why the policy
+has code for creating this directory.
+
+Repositories are seached for needed artifacts from the most local (the
+user's personal repository) to the most remote (the central Maven
+repositories) as directed by a settings.xml file in the user's .m2
+directory or &lt;repositories&gt; tags in the individual pom.xml files. The
+general intent is to obtain artifacts from the &quot;closest&quot; repository.
+Company repositories are not just the central location for
+company-specific artifacts, but also a local cache for central Maven
+repository artifacts.
+
+&gt;<i>From the policy, it looks like the personal repository for the ID under
+</I>which RPM builds the package is wiped clean for every package, and thus
+every needed artifact will be downloaded from the remote repositories
+for every build. If that's the case, it's an awful waste of bandwidth,
+since many of these artifacts are used for every Maven project.
+
+We might want to consider having a central repository for each system,
+which would be one level above the individual users' personal
+repositories, and would be used before more remote repositories. There
+is no harm to allowing artifacts to accumulate there, since all
+artifacts are versioned. Cleanup might be possible through filetriggers
+if a tool identified all dependent artifacts for each installed Maven
+package, and deleted ones no longer used by anything installed. If
+there were such a repository, say under /var, then it should be used for
+builds rather than an individual repository tied to the RPM userid.
+
+There's also the issue of allowing company or site repositories to be
+used if they exist. For packages installed during system installation,
+there would be no way for a sysadmin to specify local repositories
+unless the install were modified to allow it, but few if any Java
+packages (much less Maven ones) are installed at that time. For later
+package installs, perhaps a dynamic settings.xml could be created for
+the build using XML fragments in something like an
+/etc/maven/repositories.d with the same sort of numeric prefix
+preference that chkconfig uses to establish precedence.
+
+Finally, there's the issue of using repository artifacts on the system
+in the execution-time CLASSPATHs for the Maven applications. Maven has
+a plugin which will build a single huge JAR containing an application's
+classes as well as classes from every JAR artifact on which it depends,
+and many docs recommend this as the way to distribute an application,
+but it consumes quite a bit of space as every app is carrying its own
+copy of every supplemental utility class it needs when it could probably
+find the identical classes in the versioned artifacts in a system
+repository. This ties in to the build-classpath and
+build-jar-repository capabilities for non-Maven apps.
+
+By the way, the policy should probably contain full usage instructions
+for build-classpath and build-jar-repository as well as a description of
+the uses to which they are put.
+
+Good Work !
+
+
+
+</PRE>
+
+
+
+
+
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="002091.html">[Mageia-dev] 12/01/2011 meeting
+</A></li>
+ <LI>Next message: <A HREF="002090.html">[Mageia-dev] Java-Policy first draft published
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#2088">[ date ]</a>
+ <a href="thread.html#2088">[ thread ]</a>
+ <a href="subject.html#2088">[ subject ]</a>
+ <a href="author.html#2088">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://www.mageia.org/mailman/listinfo/mageia-dev">More information about the Mageia-dev
+mailing list</a><br>
+</body></html>