Return-Path: Delivered-To: apmail-incubator-ivy-user-archive@locus.apache.org Received: (qmail 26957 invoked from network); 19 Nov 2006 21:19:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Nov 2006 21:19:42 -0000 Received: (qmail 91164 invoked by uid 500); 19 Nov 2006 21:19:52 -0000 Delivered-To: apmail-incubator-ivy-user-archive@incubator.apache.org Received: (qmail 91140 invoked by uid 500); 19 Nov 2006 21:19:52 -0000 Mailing-List: contact ivy-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ivy-user@incubator.apache.org Delivered-To: mailing list ivy-user@incubator.apache.org Received: (qmail 91128 invoked by uid 99); 19 Nov 2006 21:19:52 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Nov 2006 13:19:52 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (herse.apache.org: local policy) Received: from [199.231.136.143] (HELO email13.mywebmailserver.com) (199.231.136.143) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Nov 2006 13:19:38 -0800 Received: from [192.168.0.100] ([70.17.114.132]) by email13.mywebmailserver.com (IntelliMail) with ASMTP id CRY74585 for ; Sun, 19 Nov 2006 16:19:22 -0500 Message-ID: <4560CA50.7030104@keithcollison.com> Date: Sun, 19 Nov 2006 16:19:12 -0500 From: Keith Collison User-Agent: Thunderbird 1.5.0.8 (X11/20061025) MIME-Version: 1.0 To: ivy-user@incubator.apache.org Subject: Help with custom conflict manager Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hello, Our support libraries are published with the following pattern (note these aren't ivy patterns): [module-name]-[version]_[buildnumber]. The version number is 2-3 digits -- therefore a typical publication may be "core-1.2_34", "core-1.2.1_1", etc. In each case, the revision label registered with Ivy is "1.2_34", "1.2.1_1", and so forth. The trouble I experienced was that Ivy would consider 1.2_34 to be later than 1.2.1_1. Therefore, 1.2.1_1 would be evicted over 1.2_34. I understood why this was -- Ivy treats the underscore characters as periods. (I cursed the day I agreed to have module versions as "1.2" instead of "1.2.0".) First of all, if you have a way to handle the above scenerio without defining a custom latest strategy, let me know. As it was, I got started developing one to handle our version-label strategy. I implemented LatestStrategy in my class. It differs in one respect from the latest-revision strategy -- should it find the pattern (for example) 1.2_34, it simply inserts the ".0" appropriately (so it ends up comparing 1.2.0_34). My unit tests passed and I was pleased with myself. The headaches began when I was trying to change our ivy configuration to use it. I've got it registered OK, I've the and nodes defined. I've a tag, attached to our organization, which specifies the custom conflict manager to use. Appropriate resolvers have the "latest" attribute pointed to our custom strategy. Despite all of this, Ivy seems to use the default "latest-revision" conflict manager to determine which of our modules to evict. Generating the ivy HTML report, nowhere is my conflict manager even referenced. The only way I can get my custom conflict manager to work is if I define the "defaultLatestStrategy" attribute on the tag. It also works if I define the defaultConflictManager. However, I don't want to interfere with 3rd party conflict handling, so I'm hesitant to pursue that as a solution. It just doesn't seem as if the conflict-manager for my is being honored. Am I missing something, or is this a bug in Ivy? I've included our ivyconf below (I've changed some things for proprietary obfuscation, and removed property definitions for brevity). Thanks for your help. Kind regards, Keith Collison