<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-16427</id>
	<title>Nabble - archiva-dev</title>
	<updated>2009-11-02T17:55:43Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/archiva-dev-f16427.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/archiva-dev-f16427.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26173860</id>
	<title>Re: Failing unit tests on Windows</title>
	<published>2009-11-02T17:55:43Z</published>
	<updated>2009-11-02T17:55:43Z</updated>
	<author>
		<name>Martin Cooper-2</name>
	</author>
	<content type="html">On Mon, Nov 2, 2009 at 5:45 PM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26173860&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Hi Martin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'll look into these failing tests.
&lt;br&gt;&lt;br&gt;Thanks!
&lt;br&gt;&lt;br&gt;&amp;gt; Do you know which module who's tests are
&lt;br&gt;&amp;gt; failing due to checking for the day of the month?
&lt;br&gt;&lt;br&gt;The problem is in AbstractUpdatePolicy, in the DAILY section of
&lt;br&gt;applyPolicy. There's an adjustment subtracting 1 from DAY_OF_MONTH
&lt;br&gt;that seems to do strange things on the 1st of the month.
&lt;br&gt;&lt;br&gt;&amp;gt; (I think this calls for a Windows build agent in our CI server (Continuum)
&lt;br&gt;&amp;gt; in vmbuild so we could keep track of these..)
&lt;br&gt;&lt;br&gt;Funny - that's what Brett said a few minutes ago. :-)
&lt;br&gt;&lt;br&gt;&amp;gt; Thanks for the heads up! :)
&lt;br&gt;&lt;br&gt;You're welcome. :-)
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Martin Cooper
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; -Deng
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Tue, Nov 3, 2009 at 8:21 AM, Martin Cooper &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26173860&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;martinc@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I'm trying to build Archiva for the first time in a long time, and am
&lt;br&gt;&amp;gt;&amp;gt; running into some unit test failures that are quite probably Windows
&lt;br&gt;&amp;gt;&amp;gt; only. The problem is that trying to track these down quickly leads
&lt;br&gt;&amp;gt;&amp;gt; into Nexus code and thence into Lucene code, so I'm looking for ideas
&lt;br&gt;&amp;gt;&amp;gt; from someone who knows the code better than I do (which is probably
&lt;br&gt;&amp;gt;&amp;gt; pretty much everyone else here).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
&lt;br&gt;&amp;gt;&amp;gt; tearDown method. Here's the relevant chunk of code:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        context.close( false );
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        // delete created index in the repository
&lt;br&gt;&amp;gt;&amp;gt;        File indexDir = new File( repositoryConfig.getLocation(), &amp;quot;.indexer&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; );
&lt;br&gt;&amp;gt;&amp;gt;        FileUtils.deleteDirectory( indexDir );
&lt;br&gt;&amp;gt;&amp;gt;        assertFalse( indexDir.exists() );
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The deleteDirectory() call throws an exception because it cannot
&lt;br&gt;&amp;gt;&amp;gt; delete a file (_1.cfs) in that directory, which would happen when the
&lt;br&gt;&amp;gt;&amp;gt; file is still open. This means that either the context.close() method
&lt;br&gt;&amp;gt;&amp;gt; didn't do its thing properly or something earlier on didn't clean up
&lt;br&gt;&amp;gt;&amp;gt; after itself. Unfortunately, that context.close() call leads directly
&lt;br&gt;&amp;gt;&amp;gt; into Nexus, and that in turn leads quickly into Lucene. I'm not about
&lt;br&gt;&amp;gt;&amp;gt; to start debugging either of those. (Debugging this is hard enough
&lt;br&gt;&amp;gt;&amp;gt; when I can't generate the IDEA project because I can't build Archiva
&lt;br&gt;&amp;gt;&amp;gt; in the first place!)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I'm not sure where to go from here. Skipping the deletion causes
&lt;br&gt;&amp;gt;&amp;gt; subsequent failures, and since the problem is an unclosed file,
&lt;br&gt;&amp;gt;&amp;gt; there's a bug somewhere that needs to be fixed. Almost certainly,
&lt;br&gt;&amp;gt;&amp;gt; other people are not seeing it because *nix has different ideas about
&lt;br&gt;&amp;gt;&amp;gt; deleting open files.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Oh - there are other &amp;quot;nearby&amp;quot; tests that are failing, but I'm not sure
&lt;br&gt;&amp;gt;&amp;gt; if they're related to this problem or not. Also, there are other
&lt;br&gt;&amp;gt;&amp;gt; non-nearby test failures that I was trying to track down yesterday,
&lt;br&gt;&amp;gt;&amp;gt; but those are not showing up today because it is no longer the 1st of
&lt;br&gt;&amp;gt;&amp;gt; the month. (Yes, I'm serious.)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thoughts?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Martin Cooper
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Failing-unit-tests-on-Windows-tp26173089p26173860.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26173791</id>
	<title>Re: Failing unit tests on Windows</title>
	<published>2009-11-02T17:45:32Z</published>
	<updated>2009-11-02T17:45:32Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Hi Martin,
&lt;br&gt;&lt;br&gt;I'll look into these failing tests. Do you know which module who's tests are
&lt;br&gt;failing due to checking for the day of the month?
&lt;br&gt;(I think this calls for a Windows build agent in our CI server (Continuum)
&lt;br&gt;in vmbuild so we could keep track of these..)
&lt;br&gt;&lt;br&gt;Thanks for the heads up! :)
&lt;br&gt;&lt;br&gt;-Deng
&lt;br&gt;&lt;br&gt;On Tue, Nov 3, 2009 at 8:21 AM, Martin Cooper &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26173791&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;martinc@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I'm trying to build Archiva for the first time in a long time, and am
&lt;br&gt;&amp;gt; running into some unit test failures that are quite probably Windows
&lt;br&gt;&amp;gt; only. The problem is that trying to track these down quickly leads
&lt;br&gt;&amp;gt; into Nexus code and thence into Lucene code, so I'm looking for ideas
&lt;br&gt;&amp;gt; from someone who knows the code better than I do (which is probably
&lt;br&gt;&amp;gt; pretty much everyone else here).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
&lt;br&gt;&amp;gt; tearDown method. Here's the relevant chunk of code:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.close( false );
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// delete created index in the repository
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File indexDir = new File( repositoryConfig.getLocation(), &amp;quot;.indexer&amp;quot;
&lt;br&gt;&amp;gt; );
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileUtils.deleteDirectory( indexDir );
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse( indexDir.exists() );
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The deleteDirectory() call throws an exception because it cannot
&lt;br&gt;&amp;gt; delete a file (_1.cfs) in that directory, which would happen when the
&lt;br&gt;&amp;gt; file is still open. This means that either the context.close() method
&lt;br&gt;&amp;gt; didn't do its thing properly or something earlier on didn't clean up
&lt;br&gt;&amp;gt; after itself. Unfortunately, that context.close() call leads directly
&lt;br&gt;&amp;gt; into Nexus, and that in turn leads quickly into Lucene. I'm not about
&lt;br&gt;&amp;gt; to start debugging either of those. (Debugging this is hard enough
&lt;br&gt;&amp;gt; when I can't generate the IDEA project because I can't build Archiva
&lt;br&gt;&amp;gt; in the first place!)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm not sure where to go from here. Skipping the deletion causes
&lt;br&gt;&amp;gt; subsequent failures, and since the problem is an unclosed file,
&lt;br&gt;&amp;gt; there's a bug somewhere that needs to be fixed. Almost certainly,
&lt;br&gt;&amp;gt; other people are not seeing it because *nix has different ideas about
&lt;br&gt;&amp;gt; deleting open files.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Oh - there are other &amp;quot;nearby&amp;quot; tests that are failing, but I'm not sure
&lt;br&gt;&amp;gt; if they're related to this problem or not. Also, there are other
&lt;br&gt;&amp;gt; non-nearby test failures that I was trying to track down yesterday,
&lt;br&gt;&amp;gt; but those are not showing up today because it is no longer the 1st of
&lt;br&gt;&amp;gt; the month. (Yes, I'm serious.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thoughts?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Martin Cooper
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Failing-unit-tests-on-Windows-tp26173089p26173791.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26173089</id>
	<title>Failing unit tests on Windows</title>
	<published>2009-11-02T16:21:14Z</published>
	<updated>2009-11-02T16:21:14Z</updated>
	<author>
		<name>Martin Cooper-2</name>
	</author>
	<content type="html">I'm trying to build Archiva for the first time in a long time, and am
&lt;br&gt;running into some unit test failures that are quite probably Windows
&lt;br&gt;only. The problem is that trying to track these down quickly leads
&lt;br&gt;into Nexus code and thence into Lucene code, so I'm looking for ideas
&lt;br&gt;from someone who knows the code better than I do (which is probably
&lt;br&gt;pretty much everyone else here).
&lt;br&gt;&lt;br&gt;The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
&lt;br&gt;tearDown method. Here's the relevant chunk of code:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.close( false );
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // delete created index in the repository
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File indexDir = new File( repositoryConfig.getLocation(), &amp;quot;.indexer&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FileUtils.deleteDirectory( indexDir );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertFalse( indexDir.exists() );
&lt;br&gt;&lt;br&gt;The deleteDirectory() call throws an exception because it cannot
&lt;br&gt;delete a file (_1.cfs) in that directory, which would happen when the
&lt;br&gt;file is still open. This means that either the context.close() method
&lt;br&gt;didn't do its thing properly or something earlier on didn't clean up
&lt;br&gt;after itself. Unfortunately, that context.close() call leads directly
&lt;br&gt;into Nexus, and that in turn leads quickly into Lucene. I'm not about
&lt;br&gt;to start debugging either of those. (Debugging this is hard enough
&lt;br&gt;when I can't generate the IDEA project because I can't build Archiva
&lt;br&gt;in the first place!)
&lt;br&gt;&lt;br&gt;I'm not sure where to go from here. Skipping the deletion causes
&lt;br&gt;subsequent failures, and since the problem is an unclosed file,
&lt;br&gt;there's a bug somewhere that needs to be fixed. Almost certainly,
&lt;br&gt;other people are not seeing it because *nix has different ideas about
&lt;br&gt;deleting open files.
&lt;br&gt;&lt;br&gt;Oh - there are other &amp;quot;nearby&amp;quot; tests that are failing, but I'm not sure
&lt;br&gt;if they're related to this problem or not. Also, there are other
&lt;br&gt;non-nearby test failures that I was trying to track down yesterday,
&lt;br&gt;but those are not showing up today because it is no longer the 1st of
&lt;br&gt;the month. (Yes, I'm serious.)
&lt;br&gt;&lt;br&gt;Thoughts?
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Martin Cooper
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Failing-unit-tests-on-Windows-tp26173089p26173089.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25953907</id>
	<title>Re: Proposal: concurrent remote-requests / &quot;ASF Certified Maven Repository&quot;</title>
	<published>2009-10-18T23:43:56Z</published>
	<updated>2009-10-18T23:43:56Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 15/10/2009, at 7:00 PM, Marc Lustig wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; For companies, this would be a compelling feature! I (working for &amp;nbsp;
&lt;br&gt;&amp;gt; insurances
&lt;br&gt;&amp;gt; and banks) often hear the argument &amp;quot;of boy - they are downloading &amp;nbsp;
&lt;br&gt;&amp;gt; software
&lt;br&gt;&amp;gt; from some obscure server from russia&amp;quot;. Having the label &amp;quot;Certified &amp;nbsp;
&lt;br&gt;&amp;gt; Maven
&lt;br&gt;&amp;gt; Repository&amp;quot; would surely make those noises more silent :-)
&lt;br&gt;&amp;gt; The ASF could release a rule-set that the Maven-repo must conform to &amp;nbsp;
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; order to get the &amp;quot;certified&amp;quot; label.
&lt;/div&gt;&lt;br&gt;This isn't really in the ASF's mission to provide. Everyone is going &amp;nbsp;
&lt;br&gt;to have their own rules for what is certified - there are varying &amp;nbsp;
&lt;br&gt;levels of trust, even if you verify it comes from the project itself &amp;nbsp;
&lt;br&gt;(for example, see Eclipse's IP verification process).
&lt;br&gt;&lt;br&gt;In this case you are better off having a dedicated group of people &amp;nbsp;
&lt;br&gt;approving third party artifacts to arrive into Archiva for use by &amp;nbsp;
&lt;br&gt;others, and limiting proxy access outside. You can obviously do this &amp;nbsp;
&lt;br&gt;manually in Archiva now, though ideally you want a &amp;quot;quarantine&amp;quot; area &amp;nbsp;
&lt;br&gt;where they can be retrieved and await approval with a decent workflow &amp;nbsp;
&lt;br&gt;for moving them into an accessible repository.
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Proposal%3A-concurrent-remote-requests-tp25890731p25953907.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25904406</id>
	<title>Re: Proposal: concurrent remote-requests / &quot;ASF Certified Maven Repository&quot;</title>
	<published>2009-10-15T01:00:35Z</published>
	<updated>2009-10-15T01:00:35Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">thanks Brett for the input.
&lt;br&gt;I can confirm that using black and white lists the case is rather rare when all remote-repos are searched sequentially and the artifact is not found in the end. However it is typical for some scenarios e. g. when you enable the source-jars to get downloaded for a project. From 40 deps, maybe 5 will have source-jars available. In that way a simple mvn-goal takes 30 minutes or more.
&lt;br&gt;&lt;br&gt;I mentioned the timeout just to have a maximum value. &amp;nbsp;Of course usually the requests don't run in a timeout (except when the repo is down) - the average response time is maybe 3-4 secs (for our installation).
&lt;br&gt;&lt;br&gt;Also it is clear that the first-serve concept conflicts with the existing concept of an (ordered) list of repos that is searched for.
&lt;br&gt;Can we not assume that artifacts with a given spec. are identical from whatever repo they come, provided the hash is matching?
&lt;br&gt;&lt;br&gt;Btw., this brings up another idea: could the ASF possibly grant &amp;quot;official&amp;quot; certificates for remote-repos?
&lt;br&gt;In that way, Archiva could distinguish between trusted and non-trusted repos.
&lt;br&gt;For companies, this would be a compelling feature! I (working for insurances and banks) often hear the argument &amp;quot;of boy - they are downloading software from some obscure server from russia&amp;quot;. Having the label &amp;quot;Certified Maven Repository&amp;quot; would surely make those noises more silent :-)
&lt;br&gt;The ASF could release a rule-set that the Maven-repo must conform to in order to get the &amp;quot;certified&amp;quot; label.
&lt;br&gt;Or even better, the ASF could offer a VMware-image that includes all the software ready to run the Maven-repo - including some logic to verify that known artifacts are mirrored correctly. A total control of repos is not possible, of course. But the contract between Archiva and the remote repo could be tightened pretty much.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Back to the concurrent requests idea: sending the HEAD request before the actual GET is surely a good idea. Archiva could decide to which repo to send the GET based on the shortest response-time.
&lt;br&gt;Anyway, this feature needs more brainstorming...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;brettporter wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;On 15/10/2009, at 12:06 AM, Marc Lustig wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; we have configured about 25 remote-repos for our public-artifacts &amp;nbsp;
&lt;br&gt;&amp;gt; managed
&lt;br&gt;&amp;gt; repo.
&lt;br&gt;&amp;gt; In certain cases, black and white lists don't help and a request is &amp;nbsp;
&lt;br&gt;&amp;gt; proxied
&lt;br&gt;&amp;gt; to all the 20 remote-repos _sequentially_. Even thou we have &amp;nbsp;
&lt;br&gt;&amp;gt; configured a
&lt;br&gt;&amp;gt; short timeout of 5 secs, this takes 125 secs in case the artifacts &amp;nbsp;
&lt;br&gt;&amp;gt; doesn't
&lt;br&gt;&amp;gt; exist in any remote-repo - per artifact!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So I was wondering if it would make sense to send requests to all of &amp;nbsp;
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; remote-repos _concurrently_.
&lt;br&gt;&amp;gt; The first thread that find the artifacts could cause all the other &amp;nbsp;
&lt;br&gt;&amp;gt; threads
&lt;br&gt;&amp;gt; to cancel the http-request.
&lt;br&gt;&amp;gt; The total request time would reduce from 100 secs++ to merely 5 secs.
&lt;br&gt;&amp;gt; Tremendous win or?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Has this been discussed before?
&lt;br&gt;&lt;br&gt;I think this is a pretty unusual case. I don't quite understand why &amp;nbsp;
&lt;br&gt;you are hitting the timeout limit on the remote repo - if they are up &amp;nbsp;
&lt;br&gt;they should be fast. Also, &amp;quot;first that finds&amp;quot; is different to the &amp;nbsp;
&lt;br&gt;current rule since it's first that appears in the list. I worry that &amp;nbsp;
&lt;br&gt;in this set up you're not entirely sure which repository the artifacts &amp;nbsp;
&lt;br&gt;are meant to be coming from, so maybe it points to another problem.
&lt;br&gt;&lt;br&gt;&amp;gt; Is there an argument against this strategy?
&lt;br&gt;&lt;br&gt;Particularly if we turned on streaming of the proxied download to the &amp;nbsp;
&lt;br&gt;client (which is intended) - we couldn't do so if they were pooled &amp;nbsp;
&lt;br&gt;like this, unless we accepted the &amp;quot;first found rule&amp;quot;.
&lt;br&gt;&lt;br&gt;That said, this might speed up requests with a long list of proxies, &amp;nbsp;
&lt;br&gt;even if they are functioning properly. So it might be reasonable as an &amp;nbsp;
&lt;br&gt;optional capability. One thing to consider would be doing a HEAD &amp;nbsp;
&lt;br&gt;request instead of a GET for all the remotes first to select where to &amp;nbsp;
&lt;br&gt;download from, then execute the GET from the desired one.
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Proposal%3A-concurrent-remote-requests-tp25890731p25904406.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25903957</id>
	<title>Re: svn commit: r824677 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src:  main/java/org/apache/maven/archiva/webdav/ test/java/org/apache/maven/archiva/webdav/  test/resources/</title>
	<published>2009-10-15T00:08:41Z</published>
	<updated>2009-10-15T00:08:41Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">On Wed, Oct 14, 2009 at 11:40 PM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25903957&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; // MRM-872 : merge all available metadata
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;// merge metadata only when requested via the repo group
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Should this use &amp;quot;isSupportFile&amp;quot; like below? That will cover the two
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; metadata checksums
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; .. but it will also get the other non-metadata checksum files so I don't
&lt;br&gt;&amp;gt;&amp;gt; think we can use isSupportFile(..) here
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ok - could the check be moved to the repository request (eg,
&lt;br&gt;&amp;gt; isMetadataSupportFile), so that it is all in one spot?
&lt;/div&gt;&lt;br&gt;&lt;br&gt;ok, will move this one over..
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -482,6 +496,35 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( request.getMethod().equals( HTTP_PUT_METHOD ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = logicalResource.getPath();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if target repo is enabled for releases
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we suppose that release-artifacts can deployed only
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; repos enabled for releases
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.getRepository().isReleases() &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; !repositoryRequest.isMetadata( resourcePath ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!repositoryRequest.isSupportFile( resourcePath ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ArtifactReference artifact = null;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;artifact =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; managedRepository.toArtifactReference(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resourcePath );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( LayoutException e )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; HttpServletResponse.SC_BAD_REQUEST, e );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !VersionUtil.isSnapshot( artifact.getVersion()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if artifact already exists
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.hasContent( artifact ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.warn( &amp;quot;Overwriting released artifacts
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ReleaseArtifactAlreadyExistsException( managedRepository.getId(),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;quot;Overwriting released artifacts is not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Is it necessarily a bad request if the reference can't be derived, or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; should the check just be skipped?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I don't think this is just a check though but it's for getting the
&lt;br&gt;&amp;gt;&amp;gt; artifact
&lt;br&gt;&amp;gt;&amp;gt; object and its coordinates. Maybe we could add a fall back for getting the
&lt;br&gt;&amp;gt;&amp;gt; artifact obj &amp; its coordinates when a LayoutException is thrown instead of
&lt;br&gt;&amp;gt;&amp;gt; immediately propagating it as a bad request error?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The check I meant was the VersionUtil bit.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Say you are trying to store /foo.txt using webdav, which is not a valid
&lt;br&gt;&amp;gt; artifact. I believe this was still allowed previously (though I might be
&lt;br&gt;&amp;gt; wrong) - but now it will be a bad request because of the artifact path, when
&lt;br&gt;&amp;gt; all it needs that for is to check if it is a release. Does that make sense?
&lt;/div&gt;&lt;br&gt;&lt;br&gt;Ok, I get it now :) I think we still need to check if the version is a
&lt;br&gt;SNAPSHOT or not though, and block deployment if it is a released artifact or
&lt;br&gt;an invalid artifact (LayoutException is thrown) as long as it already exists
&lt;br&gt;in the repository. We're also using the artifact reference to check if it is
&lt;br&gt;in the repository so it's not just the version we're using. I'll see if
&lt;br&gt;there's another way to do this.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824677---in--archiva-trunk-archiva-modules-archiva-web-archiva-webdav-src%3A-main-java-org-apache-maven-archiva-webdav--test-java-org-apache-maven-archiva-webdav--test-resources--tp25872304p25903957.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25900580</id>
	<title>Re: Proposal: concurrent remote-requests</title>
	<published>2009-10-14T16:02:30Z</published>
	<updated>2009-10-14T16:02:30Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">On 15/10/2009, at 12:06 AM, Marc Lustig wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; we have configured about 25 remote-repos for our public-artifacts &amp;nbsp;
&lt;br&gt;&amp;gt; managed
&lt;br&gt;&amp;gt; repo.
&lt;br&gt;&amp;gt; In certain cases, black and white lists don't help and a request is &amp;nbsp;
&lt;br&gt;&amp;gt; proxied
&lt;br&gt;&amp;gt; to all the 20 remote-repos _sequentially_. Even thou we have &amp;nbsp;
&lt;br&gt;&amp;gt; configured a
&lt;br&gt;&amp;gt; short timeout of 5 secs, this takes 125 secs in case the artifacts &amp;nbsp;
&lt;br&gt;&amp;gt; doesn't
&lt;br&gt;&amp;gt; exist in any remote-repo - per artifact!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So I was wondering if it would make sense to send requests to all of &amp;nbsp;
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; remote-repos _concurrently_.
&lt;br&gt;&amp;gt; The first thread that find the artifacts could cause all the other &amp;nbsp;
&lt;br&gt;&amp;gt; threads
&lt;br&gt;&amp;gt; to cancel the http-request.
&lt;br&gt;&amp;gt; The total request time would reduce from 100 secs++ to merely 5 secs.
&lt;br&gt;&amp;gt; Tremendous win or?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Has this been discussed before?
&lt;/div&gt;&lt;br&gt;I think this is a pretty unusual case. I don't quite understand why &amp;nbsp;
&lt;br&gt;you are hitting the timeout limit on the remote repo - if they are up &amp;nbsp;
&lt;br&gt;they should be fast. Also, &amp;quot;first that finds&amp;quot; is different to the &amp;nbsp;
&lt;br&gt;current rule since it's first that appears in the list. I worry that &amp;nbsp;
&lt;br&gt;in this set up you're not entirely sure which repository the artifacts &amp;nbsp;
&lt;br&gt;are meant to be coming from, so maybe it points to another problem.
&lt;br&gt;&lt;br&gt;&amp;gt; Is there an argument against this strategy?
&lt;br&gt;&lt;br&gt;Particularly if we turned on streaming of the proxied download to the &amp;nbsp;
&lt;br&gt;client (which is intended) - we couldn't do so if they were pooled &amp;nbsp;
&lt;br&gt;like this, unless we accepted the &amp;quot;first found rule&amp;quot;.
&lt;br&gt;&lt;br&gt;That said, this might speed up requests with a long list of proxies, &amp;nbsp;
&lt;br&gt;even if they are functioning properly. So it might be reasonable as an &amp;nbsp;
&lt;br&gt;optional capability. One thing to consider would be doing a HEAD &amp;nbsp;
&lt;br&gt;request instead of a GET for all the remotes first to select where to &amp;nbsp;
&lt;br&gt;download from, then execute the GET from the desired one.
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Proposal%3A-concurrent-remote-requests-tp25890731p25900580.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25893763</id>
	<title>Re: svn commit: r824677 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src:  main/java/org/apache/maven/archiva/webdav/ test/java/org/apache/maven/archiva/webdav/  test/resources/</title>
	<published>2009-10-14T08:40:59Z</published>
	<updated>2009-10-14T08:40:59Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 14/10/2009, at 7:03 PM, Deng Ching wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Brett,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Tue, Oct 13, 2009 at 8:49 PM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25893763&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 13/10/2009, at 9:36 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25893763&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; archivaLocator,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; archivaLocator,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( ReleaseArtifactAlreadyExistsException e )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HttpServletResponse.SC_CONFLICT );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; it might make more sense just to throw this at the source and &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; eliminate the
&lt;br&gt;&amp;gt;&amp;gt; exception, since the result is always the same?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; agreed :)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// MRM-872 : merge all available metadata
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; // merge metadata only when requested via the repo group
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; || (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; || (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Should this use &amp;quot;isSupportFile&amp;quot; like below? That will cover the two
&lt;br&gt;&amp;gt;&amp;gt; metadata checksums
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; .. but it will also get the other non-metadata checksum files so I &amp;nbsp;
&lt;br&gt;&amp;gt; don't
&lt;br&gt;&amp;gt; think we can use isSupportFile(..) here
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;ok - could the check be moved to the repository request (eg, &amp;nbsp;
&lt;br&gt;isMetadataSupportFile), so that it is all in one spot?
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; @@ -482,6 +496,35 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( request.getMethod().equals( HTTP_PUT_METHOD ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = logicalResource.getPath();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if target repo is enabled for releases
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we suppose that release-artifacts can deployed &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; only to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; repos enabled for releases
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.getRepository().isReleases 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; () &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; !repositoryRequest.isMetadata( resourcePath ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!repositoryRequest.isSupportFile 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ( resourcePath ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ArtifactReference artifact = null;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;artifact = &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; managedRepository.toArtifactReference(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resourcePath );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( LayoutException e )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HttpServletResponse.SC_BAD_REQUEST, e );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !VersionUtil.isSnapshot 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ( artifact.getVersion() )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if artifact already exists
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.hasContent 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ( artifact ) )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.warn( &amp;quot;Overwriting released &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; artifacts is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ReleaseArtifactAlreadyExistsException( managedRepository.getId(),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;quot;Overwriting released artifacts is not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Is it necessarily a bad request if the reference can't be derived, or
&lt;br&gt;&amp;gt;&amp;gt; should the check just be skipped?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I don't think this is just a check though but it's for getting the &amp;nbsp;
&lt;br&gt;&amp;gt; artifact
&lt;br&gt;&amp;gt; object and its coordinates. Maybe we could add a fall back for &amp;nbsp;
&lt;br&gt;&amp;gt; getting the
&lt;br&gt;&amp;gt; artifact obj &amp; its coordinates when a LayoutException is thrown &amp;nbsp;
&lt;br&gt;&amp;gt; instead of
&lt;br&gt;&amp;gt; immediately propagating it as a bad request error?
&lt;/div&gt;&lt;br&gt;The check I meant was the VersionUtil bit.
&lt;br&gt;&lt;br&gt;Say you are trying to store /foo.txt using webdav, which is not a &amp;nbsp;
&lt;br&gt;valid artifact. I believe this was still allowed previously (though I &amp;nbsp;
&lt;br&gt;might be wrong) - but now it will be a bad request because of the &amp;nbsp;
&lt;br&gt;artifact path, when all it needs that for is to check if it is a &amp;nbsp;
&lt;br&gt;release. Does that make sense?
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Also, given this is a point release (1.2.3), I don't think this &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; kind of
&lt;br&gt;&amp;gt;&amp;gt; functionality change should be imposed on users - can we offer a
&lt;br&gt;&amp;gt;&amp;gt; configuration option?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; +1
&lt;br&gt;&amp;gt; I've left the issue open yesterday since this functionality also &amp;nbsp;
&lt;br&gt;&amp;gt; needs to be
&lt;br&gt;&amp;gt; applied to the web upload.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Thanks!
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824677---in--archiva-trunk-archiva-modules-archiva-web-archiva-webdav-src%3A-main-java-org-apache-maven-archiva-webdav--test-java-org-apache-maven-archiva-webdav--test-resources--tp25872304p25893763.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25890731</id>
	<title>Proposal: concurrent remote-requests</title>
	<published>2009-10-14T06:06:18Z</published>
	<updated>2009-10-14T06:06:18Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">Hi all,
&lt;br&gt;&lt;br&gt;we have configured about 25 remote-repos for our public-artifacts managed repo.
&lt;br&gt;In certain cases, black and white lists don't help and a request is proxied to all the 20 remote-repos _sequentially_. Even thou we have configured a short timeout of 5 secs, this takes 125 secs in case the artifacts doesn't exist in any remote-repo - per artifact!
&lt;br&gt;&lt;br&gt;So I was wondering if it would make sense to send requests to all of the remote-repos _concurrently_.
&lt;br&gt;The first thread that find the artifacts could cause all the other threads to cancel the http-request.
&lt;br&gt;The total request time would reduce from 100 secs++ to merely 5 secs. Tremendous win or?
&lt;br&gt;&lt;br&gt;Has this been discussed before?
&lt;br&gt;Is there an argument against this strategy?
&lt;br&gt;&lt;br&gt;The implementation could be based on a thread-pool, or rather a pool of thread-pools.
&lt;br&gt;&lt;br&gt;greetings
&lt;br&gt;Marc</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Proposal%3A-concurrent-remote-requests-tp25890731p25890731.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25886921</id>
	<title>Re: svn commit: r824677 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src:  main/java/org/apache/maven/archiva/webdav/ test/java/org/apache/maven/archiva/webdav/  test/resources/</title>
	<published>2009-10-14T01:03:00Z</published>
	<updated>2009-10-14T01:03:00Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Hi Brett,
&lt;br&gt;&lt;br&gt;On Tue, Oct 13, 2009 at 8:49 PM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25886921&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 13/10/2009, at 9:36 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25886921&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, archivaLocator,
&lt;br&gt;&amp;gt;&amp;gt; repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal,
&lt;br&gt;&amp;gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, archivaLocator,
&lt;br&gt;&amp;gt;&amp;gt; repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal,
&lt;br&gt;&amp;gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( ReleaseArtifactAlreadyExistsException e )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException(
&lt;br&gt;&amp;gt;&amp;gt; HttpServletResponse.SC_CONFLICT );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it might make more sense just to throw this at the source and eliminate the
&lt;br&gt;&amp;gt; exception, since the result is always the same?
&lt;/div&gt;&lt;br&gt;&lt;br&gt;agreed :)
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // MRM-872 : merge all available metadata
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// merge metadata only when requested via the repo group
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || (
&lt;br&gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) )
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || (
&lt;br&gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) ||
&lt;br&gt;&amp;gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;repoGroupConfig != null )
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Should this use &amp;quot;isSupportFile&amp;quot; like below? That will cover the two
&lt;br&gt;&amp;gt; metadata checksums
&lt;/div&gt;&lt;br&gt;&lt;br&gt;.. but it will also get the other non-metadata checksum files so I don't
&lt;br&gt;think we can use isSupportFile(..) here
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;@@ -482,6 +496,35 @@
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( request.getMethod().equals( HTTP_PUT_METHOD ) )
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = logicalResource.getPath();
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if target repo is enabled for releases
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we suppose that release-artifacts can deployed only to
&lt;br&gt;&amp;gt;&amp;gt; repos enabled for releases
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.getRepository().isReleases() &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; !repositoryRequest.isMetadata( resourcePath ) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!repositoryRequest.isSupportFile( resourcePath ) )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ArtifactReference artifact = null;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;artifact = managedRepository.toArtifactReference(
&lt;br&gt;&amp;gt;&amp;gt; resourcePath );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( LayoutException e )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException(
&lt;br&gt;&amp;gt;&amp;gt; HttpServletResponse.SC_BAD_REQUEST, e );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !VersionUtil.isSnapshot( artifact.getVersion() )
&lt;br&gt;&amp;gt;&amp;gt; )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if artifact already exists
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.hasContent( artifact ) )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.warn( &amp;quot;Overwriting released artifacts is
&lt;br&gt;&amp;gt;&amp;gt; not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new
&lt;br&gt;&amp;gt;&amp;gt; ReleaseArtifactAlreadyExistsException( managedRepository.getId(),
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;quot;Overwriting released artifacts is not allowed.&amp;quot; );
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is it necessarily a bad request if the reference can't be derived, or
&lt;br&gt;&amp;gt; should the check just be skipped?
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;I don't think this is just a check though but it's for getting the artifact
&lt;br&gt;object and its coordinates. Maybe we could add a fall back for getting the
&lt;br&gt;artifact obj &amp; its coordinates when a LayoutException is thrown instead of
&lt;br&gt;immediately propagating it as a bad request error?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Also, given this is a point release (1.2.3), I don't think this kind of
&lt;br&gt;&amp;gt; functionality change should be imposed on users - can we offer a
&lt;br&gt;&amp;gt; configuration option?
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;+1
&lt;br&gt;I've left the issue open yesterday since this functionality also needs to be
&lt;br&gt;applied to the web upload.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Brett
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824677---in--archiva-trunk-archiva-modules-archiva-web-archiva-webdav-src%3A-main-java-org-apache-maven-archiva-webdav--test-java-org-apache-maven-archiva-webdav--test-resources--tp25872304p25886921.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25872304</id>
	<title>Re: svn commit: r824677 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src: main/java/org/apache/maven/archiva/webdav/ test/java/org/apache/maven/archiva/webdav/ test/resources/</title>
	<published>2009-10-13T05:49:17Z</published>
	<updated>2009-10-13T05:49:17Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 13/10/2009, at 9:36 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25872304&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, &amp;nbsp;
&lt;br&gt;&amp;gt; archivaLocator, repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal, &amp;nbsp;
&lt;br&gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resource =
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processRepositoryGroup( request, &amp;nbsp;
&lt;br&gt;&amp;gt; archivaLocator, repoGroupConfig.getRepositories(),
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;activePrincipal, &amp;nbsp;
&lt;br&gt;&amp;gt; resourcesInAbsolutePath );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( ReleaseArtifactAlreadyExistsException e )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException 
&lt;br&gt;&amp;gt; ( HttpServletResponse.SC_CONFLICT );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;/div&gt;&lt;br&gt;&lt;br&gt;it might make more sense just to throw this at the source and &amp;nbsp;
&lt;br&gt;eliminate the exception, since the result is always the same?
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // MRM-872 : merge all available metadata
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // merge metadata only when requested via the repo group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || &amp;nbsp;
&lt;br&gt;&amp;gt; ( requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) || &amp;nbsp;
&lt;br&gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) )
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; repoGroupConfig != null )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ( repositoryRequest.isMetadata( requestedResource ) || &amp;nbsp;
&lt;br&gt;&amp;gt; ( requestedResource.endsWith( &amp;quot;metadata.xml.sha1&amp;quot; ) || &amp;nbsp;
&lt;br&gt;&amp;gt; requestedResource.endsWith( &amp;quot;metadata.xml.md5&amp;quot; ) ) ) &amp;&amp;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;repoGroupConfig != null )
&lt;/div&gt;&lt;br&gt;Should this use &amp;quot;isSupportFile&amp;quot; like below? That will cover the two &amp;nbsp;
&lt;br&gt;metadata checksums
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; @@ -482,6 +496,35 @@
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( request.getMethod().equals( HTTP_PUT_METHOD ) )
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = logicalResource.getPath();
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if target repo is enabled for releases
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we suppose that release-artifacts can deployed &amp;nbsp;
&lt;br&gt;&amp;gt; only to repos enabled for releases
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.getRepository().isReleases() &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;&amp; !repositoryRequest.isMetadata( resourcePath ) &amp;&amp;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!repositoryRequest.isSupportFile 
&lt;br&gt;&amp;gt; ( resourcePath ) )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ArtifactReference artifact = null;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;artifact = &amp;nbsp;
&lt;br&gt;&amp;gt; managedRepository.toArtifactReference( resourcePath );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( LayoutException e )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new DavException 
&lt;br&gt;&amp;gt; ( HttpServletResponse.SC_BAD_REQUEST, e );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !VersionUtil.isSnapshot 
&lt;br&gt;&amp;gt; ( artifact.getVersion() ) )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check if artifact already exists
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( managedRepository.hasContent 
&lt;br&gt;&amp;gt; ( artifact ) )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.warn( &amp;quot;Overwriting released &amp;nbsp;
&lt;br&gt;&amp;gt; artifacts is not allowed.&amp;quot; );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new &amp;nbsp;
&lt;br&gt;&amp;gt; ReleaseArtifactAlreadyExistsException( managedRepository.getId(),
&lt;br&gt;&amp;gt; + 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;Overwriting 
&lt;br&gt;&amp;gt; &amp;nbsp;released artifacts is not allowed.&amp;quot; );
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; +
&lt;/div&gt;&lt;br&gt;Is it necessarily a bad request if the reference can't be derived, or &amp;nbsp;
&lt;br&gt;should the check just be skipped?
&lt;br&gt;&lt;br&gt;Also, given this is a point release (1.2.3), I don't think this kind &amp;nbsp;
&lt;br&gt;of functionality change should be imposed on users - can we offer a &amp;nbsp;
&lt;br&gt;configuration option?
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824677---in--archiva-trunk-archiva-modules-archiva-web-archiva-webdav-src%3A-main-java-org-apache-maven-archiva-webdav--test-java-org-apache-maven-archiva-webdav--test-resources--tp25872304p25872304.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25872020</id>
	<title>Re: helping to implement MRM-1256</title>
	<published>2009-10-13T05:31:34Z</published>
	<updated>2009-10-13T05:31:34Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 13/10/2009, at 1:02 AM, Marc Lustig wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; brettporter wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 13/10/2009, at 12:25 AM, Marc Lustig wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; can I help to implement this?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; of course!
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; What &amp;quot;event ideas for 1.3&amp;quot; was Brett refering to ?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; any existing issue?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://jira.codehaus.org/browse/MRM-976&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/MRM-976&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Unfortunately work on this stalled some time back.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I would prefer a generic solution to implement extension-point, in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the way I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; proposed it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; One or another consumer may be used perhaps for one or another task.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But consumers run only on repo-scan, right?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Action events triggered on artifact-deployment are a different thing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; and not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; less important.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I'd say if you've got an idea to go ahead with that - we can look at
&lt;br&gt;&amp;gt;&amp;gt; it early and often and look to incorporate it. The above, if picked &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; up
&lt;br&gt;&amp;gt;&amp;gt; again, can still support it afterwards. Thanks!
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt;&amp;gt; Brett
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; thanks Brett for the references.
&lt;br&gt;&amp;gt; So you mean the consumers-architecture could be and should be &amp;nbsp;
&lt;br&gt;&amp;gt; replaced by a
&lt;br&gt;&amp;gt; generic event-framework, that also provides other extension-points &amp;nbsp;
&lt;br&gt;&amp;gt; like the
&lt;br&gt;&amp;gt; ones I suggested?
&lt;/div&gt;&lt;br&gt;That's my impression, yes.
&lt;br&gt;&lt;br&gt;&amp;gt; That sounds pretty cool to me - but it's also a severe change - &amp;nbsp;
&lt;br&gt;&amp;gt; looks like a
&lt;br&gt;&amp;gt; bunch of work ;-)
&lt;br&gt;&lt;br&gt;Yes, and no. On the database refactoring branch I put in something &amp;nbsp;
&lt;br&gt;very basic - I think if we start to introduce a central point to &amp;nbsp;
&lt;br&gt;gather the handling, and introduce them in specific cases like the one &amp;nbsp;
&lt;br&gt;you want, we can gradually introduce it.
&lt;br&gt;&lt;br&gt;&amp;gt; Perhaps we can share the work load? Would you like to go ahead and
&lt;br&gt;&amp;gt; coordinate it?
&lt;br&gt;&lt;br&gt;&lt;br&gt;I'm a bit swamped up until ApacheCon next month, but I'm happy to help &amp;nbsp;
&lt;br&gt;you get started here, and I'm sure others are interested. If you &amp;nbsp;
&lt;br&gt;wanted to share some ideas for how it might work I'm sure we can get &amp;nbsp;
&lt;br&gt;something happening.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Brett
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/helping-to-implement-MRM-1256-tp25855756p25872020.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25866906</id>
	<title>Re: svn commit: r824220 - in /archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src:  main/java/org/apache/maven/archiva/repository/scanner/functors/  test/java/org/apache/maven/archiva/repository/metadata/ test/java/org/apache/maven/</title>
	<published>2009-10-12T21:08:31Z</published>
	<updated>2009-10-12T21:08:31Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 13/10/2009, at 2:52 PM, Jevica Arianne Zurbano wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Tue, Oct 13, 2009 at 8:12 AM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25866906&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 12/10/2009, at 3:29 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25866906&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jzurbano@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; * ConsumerWantsFilePredicate
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -62,8 +63,19 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Timestamp finished points to the last &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; successful
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; scan, not this current one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( basefile.lastModified() &amp;lt; changesSince )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occured.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// MRM-1246
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compares the lastModified of the &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; version-level
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (basefile) and the project-level (parent) metadata
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File parent =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; basefile.getParentFile().getParentFile();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( parent.lastModified() &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; basefile.lastModified() )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = true;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occurred.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; is this doing what it intends? It seems to be comparing the &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; timestamp of
&lt;br&gt;&amp;gt;&amp;gt; the parent directory, not the parent metadata file, and not all files
&lt;br&gt;&amp;gt;&amp;gt; passing through the predicate are metadata files.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It does update the parent metadata file. But I missed that not all &amp;nbsp;
&lt;br&gt;&amp;gt; are of
&lt;br&gt;&amp;gt; metadata files.
&lt;br&gt;&amp;gt; Will make modifications for this to check the consumer type.
&lt;/div&gt;&lt;br&gt;but basefile.getParentFile().getParentFile() is &amp;quot;..&amp;quot; for &amp;quot;maven- 
&lt;br&gt;metadata.xml&amp;quot;, ie a directory. I don't think it is checking the right &amp;nbsp;
&lt;br&gt;timestamp. I also don't think building knowledge of the repository &amp;nbsp;
&lt;br&gt;format into this level of abstraction is appropriate.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Does disabling this change cause the tests to fail to verify they are
&lt;br&gt;&amp;gt;&amp;gt; working?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I added a test to check the metadata before and after it has been &amp;nbsp;
&lt;br&gt;&amp;gt; updated.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But I haven't added a test on the fix yet. I am still figuring out &amp;nbsp;
&lt;br&gt;&amp;gt; where to
&lt;br&gt;&amp;gt; put the test since
&lt;br&gt;&amp;gt; the test should include scanning with the consumer.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, the repo scanning tests are ran before the consumers are &amp;nbsp;
&lt;br&gt;&amp;gt; built.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any thoughts on this?
&lt;/div&gt;&lt;br&gt;Usually you'd use a mock consumer to test whether it is called when &amp;nbsp;
&lt;br&gt;expected.
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824220---in--archiva-trunk-archiva-modules-archiva-base-archiva-repository-layer-src%3A--main-java-org-apache-maven-archiva-repository-scanner-functors---test-java-org-apache-maven-archiva-repository-metadata--test-java-org-apache-maven--tp25866810p25866906.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25866810</id>
	<title>Re: svn commit: r824220 - in /archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src:  main/java/org/apache/maven/archiva/repository/scanner/functors/  test/java/org/apache/maven/archiva/repository/metadata/ test/java/org/apache/maven/</title>
	<published>2009-10-12T20:52:26Z</published>
	<updated>2009-10-12T20:52:26Z</updated>
	<author>
		<name>Jevica Arianne Zurbano</name>
	</author>
	<content type="html">On Tue, Oct 13, 2009 at 8:12 AM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25866810&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 12/10/2009, at 3:29 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25866810&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jzurbano@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;-
&lt;br&gt;&amp;gt;&amp;gt; /**
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;* ConsumerWantsFilePredicate
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt; @@ -62,8 +63,19 @@
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Timestamp finished points to the last successful
&lt;br&gt;&amp;gt;&amp;gt; scan, not this current one.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( basefile.lastModified() &amp;lt; changesSince )
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occured.
&lt;br&gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// MRM-1246
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compares the lastModified of the version-level
&lt;br&gt;&amp;gt;&amp;gt; (basefile) and the project-level (parent) metadata
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File parent =
&lt;br&gt;&amp;gt;&amp;gt; basefile.getParentFile().getParentFile();
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( parent.lastModified() &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; basefile.lastModified() )
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = true;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occurred.
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; is this doing what it intends? It seems to be comparing the timestamp of
&lt;br&gt;&amp;gt; the parent directory, not the parent metadata file, and not all files
&lt;br&gt;&amp;gt; passing through the predicate are metadata files.
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;It does update the parent metadata file. But I missed that not all are of
&lt;br&gt;metadata files.
&lt;br&gt;Will make modifications for this to check the consumer type.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Does disabling this change cause the tests to fail to verify they are
&lt;br&gt;&amp;gt; working?
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I added a test to check the metadata before and after it has been updated.
&lt;br&gt;&lt;br&gt;But I haven't added a test on the fix yet. I am still figuring out where to
&lt;br&gt;put the test since
&lt;br&gt;the test should include scanning with the consumer.
&lt;br&gt;&lt;br&gt;However, the repo scanning tests are ran before the consumers are built.
&lt;br&gt;&lt;br&gt;Any thoughts on this?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; - Brett
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824220---in--archiva-trunk-archiva-modules-archiva-base-archiva-repository-layer-src%3A--main-java-org-apache-maven-archiva-repository-scanner-functors---test-java-org-apache-maven-archiva-repository-metadata--test-java-org-apache-maven--tp25866810p25866810.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25865282</id>
	<title>Re: svn commit: r824220 - in /archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src: main/java/org/apache/maven/archiva/repository/scanner/functors/ test/java/org/apache/maven/archiva/repository/metadata/ test/java/org/apache/maven/archiv...</title>
	<published>2009-10-12T17:12:39Z</published>
	<updated>2009-10-12T17:12:39Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 12/10/2009, at 3:29 PM, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25865282&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jzurbano@...&lt;/a&gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; -
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* ConsumerWantsFilePredicate
&lt;br&gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt; @@ -62,8 +63,19 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Timestamp finished points to the last &amp;nbsp;
&lt;br&gt;&amp;gt; successful scan, not this current one.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( basefile.lastModified() &amp;lt; changesSince )
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occured.
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// MRM-1246
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compares the lastModified of the version- 
&lt;br&gt;&amp;gt; level (basefile) and the project-level (parent) metadata
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File parent = basefile.getParentFile 
&lt;br&gt;&amp;gt; ().getParentFile();
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( parent.lastModified() &amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; basefile.lastModified() )
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = true;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Skip file as no change has occurred.
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;satisfies = false;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;/div&gt;&lt;br&gt;is this doing what it intends? It seems to be comparing the timestamp &amp;nbsp;
&lt;br&gt;of the parent directory, not the parent metadata file, and not all &amp;nbsp;
&lt;br&gt;files passing through the predicate are metadata files.
&lt;br&gt;&lt;br&gt;Does disabling this change cause the tests to fail to verify they are &amp;nbsp;
&lt;br&gt;working?
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r824220---in--archiva-trunk-archiva-modules-archiva-base-archiva-repository-layer-src%3A-main-java-org-apache-maven-archiva-repository-scanner-functors--test-java-org-apache-maven-archiva-repository-metadata--test-java-org-apache-maven-archiv...-tp25865282p25865282.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25864025</id>
	<title>Re: SvnPubSub websites -- need more volunteers</title>
	<published>2009-10-12T15:11:23Z</published>
	<updated>2009-10-12T15:11:23Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">Anyone?
&lt;br&gt;&lt;br&gt;On 01/10/2009, at 5:02 PM, Brett Porter wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; do we want to try this?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Begin forwarded message:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; From: Paul Querna &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25864025&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;paul@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Date: 1 October 2009 4:46:17 PM AEST
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25864025&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;infrastructure-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Subject: SvnPubSub websites -- need more volunteers
&lt;br&gt;&amp;gt;&amp;gt; Reply-To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25864025&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;infrastructure-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; list-id: &amp;lt;infrastructure-dev.apache.org&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; message-id: &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25864025&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;4239a4320909302346m7d76c134j3efeea0ff816119e@...&lt;/a&gt; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; apr.apache.org is now managed by SvnPubSub.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I think we are ready to add more.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Any volunteer TLPs?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Once its done, any commit to your SVN repo for your site will be
&lt;br&gt;&amp;gt;&amp;gt; automatically propagated to the live servers within seconds.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Things i need to know:
&lt;br&gt;&amp;gt;&amp;gt; - Path to Website Checkout
&lt;br&gt;&amp;gt;&amp;gt; - If applicable, do you need a dev/dist directory
&lt;br&gt;&amp;gt;&amp;gt; - Do you want a $tlp.staging.apache.org (Just maps to another SVN
&lt;br&gt;&amp;gt;&amp;gt; url, like $tlp/site/branche/staging)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Notes to self current process:
&lt;br&gt;&amp;gt;&amp;gt; - Add new paths to /etc/svnwcsub.conf
&lt;br&gt;&amp;gt;&amp;gt; - Checkout svn paths to /x1/tmp
&lt;br&gt;&amp;gt;&amp;gt; - mv /x1/www/$tlp &amp;nbsp;old-site &amp;&amp; mv /x1/tmp/$tlp /x1/www/$tlp
&lt;br&gt;&amp;gt;&amp;gt; - chown -R svnwc /x1/www/$tlp
&lt;br&gt;&amp;gt;&amp;gt; - /etc/init.d/svnwcsub restart
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fwd%3A-SvnPubSub-websites----need-more-volunteers-tp25693992p25864025.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25856366</id>
	<title>Re: helping to implement MRM-1256</title>
	<published>2009-10-12T07:02:21Z</published>
	<updated>2009-10-12T07:02:21Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;brettporter wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;On 13/10/2009, at 12:25 AM, Marc Lustig wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; can I help to implement this?
&lt;br&gt;&lt;br&gt;of course!
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What &amp;quot;event ideas for 1.3&amp;quot; was Brett refering to ?
&lt;br&gt;&amp;gt; any existing issue?
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://jira.codehaus.org/browse/MRM-976&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/MRM-976&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&lt;/a&gt;&lt;br&gt;&lt;br&gt;Unfortunately work on this stalled some time back.
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I would prefer a generic solution to implement extension-point, in &amp;nbsp;
&lt;br&gt;&amp;gt; the way I
&lt;br&gt;&amp;gt; proposed it.
&lt;br&gt;&amp;gt; One or another consumer may be used perhaps for one or another task.
&lt;br&gt;&amp;gt; But consumers run only on repo-scan, right?
&lt;br&gt;&amp;gt; Action events triggered on artifact-deployment are a different thing &amp;nbsp;
&lt;br&gt;&amp;gt; and not
&lt;br&gt;&amp;gt; less important.
&lt;br&gt;&lt;br&gt;I'd say if you've got an idea to go ahead with that - we can look at &amp;nbsp;
&lt;br&gt;it early and often and look to incorporate it. The above, if picked up &amp;nbsp;
&lt;br&gt;again, can still support it afterwards. Thanks!
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Brett
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
thanks Brett for the references. 
&lt;br&gt;So you mean the consumers-architecture could be and should be replaced by a generic event-framework, that also provides other extension-points like the ones I suggested?
&lt;br&gt;That sounds pretty cool to me - but it's also a severe change - looks like a bunch of work ;-)
&lt;br&gt;Perhaps we can share the work load? Would you like to go ahead and coordinate it? 
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/helping-to-implement-MRM-1256-tp25855756p25856366.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25855944</id>
	<title>Re: helping to implement MRM-1256</title>
	<published>2009-10-12T06:36:53Z</published>
	<updated>2009-10-12T06:36:53Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 13/10/2009, at 12:25 AM, Marc Lustig wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; can I help to implement this?
&lt;br&gt;&lt;br&gt;of course!
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What &amp;quot;event ideas for 1.3&amp;quot; was Brett refering to ?
&lt;br&gt;&amp;gt; any existing issue?
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwiki.apache.org/confluence/display/ARCHIVA/Event+Framework&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://jira.codehaus.org/browse/MRM-976&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/MRM-976&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/archiva/branches/MRM-976/branch-working-notes.txt?revision=706263&amp;view=markup&lt;/a&gt;&lt;br&gt;&lt;br&gt;Unfortunately work on this stalled some time back.
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I would prefer a generic solution to implement extension-point, in &amp;nbsp;
&lt;br&gt;&amp;gt; the way I
&lt;br&gt;&amp;gt; proposed it.
&lt;br&gt;&amp;gt; One or another consumer may be used perhaps for one or another task.
&lt;br&gt;&amp;gt; But consumers run only on repo-scan, right?
&lt;br&gt;&amp;gt; Action events triggered on artifact-deployment are a different thing &amp;nbsp;
&lt;br&gt;&amp;gt; and not
&lt;br&gt;&amp;gt; less important.
&lt;br&gt;&lt;br&gt;I'd say if you've got an idea to go ahead with that - we can look at &amp;nbsp;
&lt;br&gt;it early and often and look to incorporate it. The above, if picked up &amp;nbsp;
&lt;br&gt;again, can still support it afterwards. Thanks!
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/helping-to-implement-MRM-1256-tp25855756p25855944.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25855756</id>
	<title>helping to implement MRM-1256</title>
	<published>2009-10-12T06:25:00Z</published>
	<updated>2009-10-12T06:25:00Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">can I help to implement this?
&lt;br&gt;&lt;br&gt;What &amp;quot;event ideas for 1.3&amp;quot; was Brett refering to ?
&lt;br&gt;any existing issue?
&lt;br&gt;&lt;br&gt;I would prefer a generic solution to implement extension-point, in the way I proposed it.
&lt;br&gt;One or another consumer may be used perhaps for one or another task.
&lt;br&gt;But consumers run only on repo-scan, right?
&lt;br&gt;Action events triggered on artifact-deployment are a different thing and not less important.</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/helping-to-implement-MRM-1256-tp25855756p25855756.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25816782</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-09T00:41:08Z</published>
	<updated>2009-10-09T00:41:08Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Hi Marc,
&lt;br&gt;&lt;br&gt;I think you can pattern and add your test to the ones for the
&lt;br&gt;RepositoryServlet where all the webdav tests are. They're sort of an
&lt;br&gt;integration test for the webdav components.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;On Fri, Oct 9, 2009 at 2:59 PM, Marc Lustig &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25816782&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To implement the unit-test it would be quite helpful to execute the
&lt;br&gt;&amp;gt; unit-test
&lt;br&gt;&amp;gt; based on a runtime-environment. Does the Archivas build-process allow to
&lt;br&gt;&amp;gt; execute unit-tests in a runtime-environment?
&lt;br&gt;&amp;gt; Otherwise you will have to mock all kinds of objects, which doesn't reflect
&lt;br&gt;&amp;gt; the real scenario in the end and also is a lot of work.
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25816355.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25816355.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25816782.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25816355</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-08T23:59:16Z</published>
	<updated>2009-10-08T23:59:16Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">To implement the unit-test it would be quite helpful to execute the unit-test based on a runtime-environment. Does the Archivas build-process allow to execute unit-tests in a runtime-environment?
&lt;br&gt;Otherwise you will have to mock all kinds of objects, which doesn't reflect the real scenario in the end and also is a lot of work.</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25816355.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25815911</id>
	<title>[Results] [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-10-08T23:03:27Z</published>
	<updated>2009-10-08T23:03:27Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">The vote has passed with 4 binding votes:
&lt;br&gt;&lt;br&gt;+1 - Brett, James, Emmanuel, Deng
&lt;br&gt;No 0s and -1s so I'll finalize the release..
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25815911&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The source binaries of the recently released Archiva 1.2.2 is broken. You
&lt;br&gt;&amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re-built again
&lt;br&gt;&amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt; [ ] 0
&lt;br&gt;&amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25815911.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25803006</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-08T07:06:49Z</published>
	<updated>2009-10-08T07:06:49Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">Hi all,
&lt;br&gt;&lt;br&gt;please find the patch here: &lt;a href=&quot;http://jira.codehaus.org/browse/MRM-747&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/MRM-747&lt;/a&gt;&lt;br&gt;&lt;br&gt;For us it would be important to get this integrated into the trunk asap, so that 1.2.3 will already contain it.
&lt;br&gt;Can I please ask to review the patch and let me know if something should be changed.
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;Marc
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Deng Ching-2 wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Marc,
&lt;br&gt;&lt;br&gt;Sorry for the confusion, I think the blocking of overwriting released
&lt;br&gt;artifacts should be placed in the ArchivaDavResourceFactory instead of the
&lt;br&gt;RepositoryServlet or RepositoryContentConsumer since that handles the
&lt;br&gt;resource requests and that's where the artifact data is determined. You
&lt;br&gt;might want to take a look at the processRepository(..) method where the PUT
&lt;br&gt;requests are handled.
&lt;br&gt;&lt;br&gt;There's also the upload from the web UI to consider for this feature as it
&lt;br&gt;is entirely separate from the DAV deployment. This is in turn handled by the
&lt;br&gt;UploadAction in archiva-webapp :)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;On Mon, Oct 5, 2009 at 11:58 PM, Marc Lustig &amp;lt;ml@marclustig.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ok, thanks, so if I understand you correct, we should not the
&lt;br&gt;&amp;gt; RepositoryServlet, but the repo-consumer that you proposed, right?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deng Ching-2 wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hi Marc,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Please see in-line comments below :)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Mon, Oct 5, 2009 at 7:32 PM, Marc Lustig &amp;lt;ml@marclustig.com&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Deng, Brett, et al
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; if you give me some instructions to implement this straight away, I will
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; glad to do that.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; yes please - the initial call to deploy the artifact is done in #124
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; RepositoryServlet right?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; (Deng mentioned that the repo-consumer is called immediately after
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; deploying the artifact, but I guess the check should be done before
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; deployment is triggered.)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; So could you give me a hint how to retrieve the information necessary
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; do the check:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; - target repo and location in the repo in the fs (?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; You can get this from ArchivaConfiguration, I think this is already a
&lt;br&gt;&amp;gt; &amp;gt; component of the repo-consumer.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; - artifact data (groupId, artifactId, ...)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; This is usually passed in to the repo consumer. If you want to check for
&lt;br&gt;&amp;gt; &amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt; existing artifact in the database, you can get it through the
&lt;br&gt;&amp;gt; &amp;gt; ArtifactDAO..
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; What is the proper way to do that lookup? via File.exists(), or not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; better
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; using some Archiva-method like
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; SomeStaticSingleton. getRepo(reponame).artfifactExists(groupId,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; artifactId, ....)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I think there is a component for this in the repository-layer module,
&lt;br&gt;&amp;gt; I'll
&lt;br&gt;&amp;gt; &amp;gt; get back to you on this one :)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt; Deng
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; That would be better software design than looking up in the fs...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; brettporter wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; On 25/09/2009, at 7:56 PM, Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I agree that instead of adding a permission for overwriting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; artifacts it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; should be sufficient to delete that particlar artifact. The case
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; when you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; have to overwrite a whole bunch of artifacts in once should be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; rather rare.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Yeah, I already filed that a while ago as MRM-992.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; And even that was a duplicate for 747.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I will see if I find the time to fix it. The first barrier is to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; get
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; acqainted with the code...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Let us know how we can help!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; - Brett
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25753420.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25753420.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25803006.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25785737</id>
	<title>Re: [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-10-07T05:27:50Z</published>
	<updated>2009-10-07T05:27:50Z</updated>
	<author>
		<name>Emmanuel Venisse-2</name>
	</author>
	<content type="html">+1
&lt;br&gt;&lt;br&gt;Emmanuel
&lt;br&gt;&lt;br&gt;On Mon, Oct 5, 2009 at 3:58 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25785737&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ping?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25785737&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The source binaries of the recently released Archiva 1.2.2 is broken. You
&lt;br&gt;&amp;gt; &amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re-built
&lt;br&gt;&amp;gt; again
&lt;br&gt;&amp;gt; &amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt; &amp;gt; [ ] 0
&lt;br&gt;&amp;gt; &amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt; &amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt; Deng
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25785737.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25784904</id>
	<title>Re: [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-10-07T04:24:36Z</published>
	<updated>2009-10-07T04:24:36Z</updated>
	<author>
		<name>James William Dumay</name>
	</author>
	<content type="html">+1
&lt;br&gt;&lt;br&gt;Sent from my iPhone
&lt;br&gt;&lt;br&gt;On 07/10/2009, at 10:21 PM, Brett Porter &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25784904&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brett@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; +1, built and running just fine
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 05/10/2009, at 12:58 PM, Deng Ching wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ping?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25784904&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The source binaries of the recently released Archiva 1.2.2 is &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; broken. You
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re- 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; built again
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; [ ] 0
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25784904.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25784867</id>
	<title>Re: [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-10-07T04:21:12Z</published>
	<updated>2009-10-07T04:21:12Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">+1, built and running just fine
&lt;br&gt;&lt;br&gt;On 05/10/2009, at 12:58 PM, Deng Ching wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ping?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25784867&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The source binaries of the recently released Archiva 1.2.2 is &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; broken. You
&lt;br&gt;&amp;gt;&amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re- 
&lt;br&gt;&amp;gt;&amp;gt; built again
&lt;br&gt;&amp;gt;&amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt;&amp;gt; [ ] 0
&lt;br&gt;&amp;gt;&amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25784867.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25762465</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-05T20:46:09Z</published>
	<updated>2009-10-05T20:46:09Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Hi Marc,
&lt;br&gt;&lt;br&gt;Sorry for the confusion, I think the blocking of overwriting released
&lt;br&gt;artifacts should be placed in the ArchivaDavResourceFactory instead of the
&lt;br&gt;RepositoryServlet or RepositoryContentConsumer since that handles the
&lt;br&gt;resource requests and that's where the artifact data is determined. You
&lt;br&gt;might want to take a look at the processRepository(..) method where the PUT
&lt;br&gt;requests are handled.
&lt;br&gt;&lt;br&gt;There's also the upload from the web UI to consider for this feature as it
&lt;br&gt;is entirely separate from the DAV deployment. This is in turn handled by the
&lt;br&gt;UploadAction in archiva-webapp :)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;On Mon, Oct 5, 2009 at 11:58 PM, Marc Lustig &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25762465&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ok, thanks, so if I understand you correct, we should not the
&lt;br&gt;&amp;gt; RepositoryServlet, but the repo-consumer that you proposed, right?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deng Ching-2 wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hi Marc,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Please see in-line comments below :)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Mon, Oct 5, 2009 at 7:32 PM, Marc Lustig &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25762465&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Deng, Brett, et al
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; if you give me some instructions to implement this straight away, I will
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; glad to do that.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; yes please - the initial call to deploy the artifact is done in #124
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; RepositoryServlet right?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; (Deng mentioned that the repo-consumer is called immediately after
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; deploying the artifact, but I guess the check should be done before
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; deployment is triggered.)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; So could you give me a hint how to retrieve the information necessary
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; do the check:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; - target repo and location in the repo in the fs (?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; You can get this from ArchivaConfiguration, I think this is already a
&lt;br&gt;&amp;gt; &amp;gt; component of the repo-consumer.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; - artifact data (groupId, artifactId, ...)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; This is usually passed in to the repo consumer. If you want to check for
&lt;br&gt;&amp;gt; &amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt; existing artifact in the database, you can get it through the
&lt;br&gt;&amp;gt; &amp;gt; ArtifactDAO..
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; What is the proper way to do that lookup? via File.exists(), or not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; better
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; using some Archiva-method like
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; SomeStaticSingleton. getRepo(reponame).artfifactExists(groupId,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; artifactId, ....)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I think there is a component for this in the repository-layer module,
&lt;br&gt;&amp;gt; I'll
&lt;br&gt;&amp;gt; &amp;gt; get back to you on this one :)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt; Deng
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; That would be better software design than looking up in the fs...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; brettporter wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; On 25/09/2009, at 7:56 PM, Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I agree that instead of adding a permission for overwriting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; artifacts it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; should be sufficient to delete that particlar artifact. The case
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; when you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; have to overwrite a whole bunch of artifacts in once should be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; rather rare.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Yeah, I already filed that a while ago as MRM-992.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; And even that was a duplicate for 747.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I will see if I find the time to fix it. The first barrier is to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; get
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; acqainted with the code...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Let us know how we can help!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; - Brett
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25753420.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25753420.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25762465.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25753420</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-05T08:58:41Z</published>
	<updated>2009-10-05T08:58:41Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">Ok, thanks, so if I understand you correct, we should not the RepositoryServlet, but the repo-consumer that you proposed, right?
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Deng Ching-2 wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Marc,
&lt;br&gt;&lt;br&gt;Please see in-line comments below :)
&lt;br&gt;&lt;br&gt;On Mon, Oct 5, 2009 at 7:32 PM, Marc Lustig &amp;lt;ml@marclustig.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deng, Brett, et al
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if you give me some instructions to implement this straight away, I will be
&lt;br&gt;&amp;gt; glad to do that.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; yes please - the initial call to deploy the artifact is done in #124 in
&lt;br&gt;&amp;gt; &amp;gt; RepositoryServlet right?
&lt;br&gt;&amp;gt; &amp;gt; (Deng mentioned that the repo-consumer is called immediately after
&lt;br&gt;&amp;gt; &amp;gt; deploying the artifact, but I guess the check should be done before the
&lt;br&gt;&amp;gt; &amp;gt; deployment is triggered.)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; So could you give me a hint how to retrieve the information necessary to
&lt;br&gt;&amp;gt; &amp;gt; do the check:
&lt;br&gt;&amp;gt; &amp;gt; - target repo and location in the repo in the fs (?)
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;You can get this from ArchivaConfiguration, I think this is already a
&lt;br&gt;component of the repo-consumer.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt; - artifact data (groupId, artifactId, ...)
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;This is usually passed in to the repo consumer. If you want to check for the
&lt;br&gt;existing artifact in the database, you can get it through the ArtifactDAO..
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What is the proper way to do that lookup? via File.exists(), or not
&lt;br&gt;&amp;gt; better
&lt;br&gt;&amp;gt; &amp;gt; using some Archiva-method like
&lt;br&gt;&amp;gt; &amp;gt; SomeStaticSingleton. getRepo(reponame).artfifactExists(groupId,
&lt;br&gt;&amp;gt; &amp;gt; artifactId, ....)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I think there is a component for this in the repository-layer module, I'll
&lt;br&gt;get back to you on this one :)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt; That would be better software design than looking up in the fs...
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; brettporter wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On 25/09/2009, at 7:56 PM, Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I agree that instead of adding a permission for overwriting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; artifacts it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; should be sufficient to delete that particlar artifact. The case
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; when you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; have to overwrite a whole bunch of artifacts in once should be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; rather rare.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Yeah, I already filed that a while ago as MRM-992.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; And even that was a duplicate for 747.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I will see if I find the time to fix it. The first barrier is to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; get
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; acqainted with the code...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Let us know how we can help!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; - Brett
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25753420.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25751916</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-05T07:30:31Z</published>
	<updated>2009-10-05T07:30:31Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Hi Marc,
&lt;br&gt;&lt;br&gt;Please see in-line comments below :)
&lt;br&gt;&lt;br&gt;On Mon, Oct 5, 2009 at 7:32 PM, Marc Lustig &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25751916&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deng, Brett, et al
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if you give me some instructions to implement this straight away, I will be
&lt;br&gt;&amp;gt; glad to do that.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; yes please - the initial call to deploy the artifact is done in #124 in
&lt;br&gt;&amp;gt; &amp;gt; RepositoryServlet right?
&lt;br&gt;&amp;gt; &amp;gt; (Deng mentioned that the repo-consumer is called immediately after
&lt;br&gt;&amp;gt; &amp;gt; deploying the artifact, but I guess the check should be done before the
&lt;br&gt;&amp;gt; &amp;gt; deployment is triggered.)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; So could you give me a hint how to retrieve the information necessary to
&lt;br&gt;&amp;gt; &amp;gt; do the check:
&lt;br&gt;&amp;gt; &amp;gt; - target repo and location in the repo in the fs (?)
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;You can get this from ArchivaConfiguration, I think this is already a
&lt;br&gt;component of the repo-consumer.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt; - artifact data (groupId, artifactId, ...)
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;This is usually passed in to the repo consumer. If you want to check for the
&lt;br&gt;existing artifact in the database, you can get it through the ArtifactDAO..
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What is the proper way to do that lookup? via File.exists(), or not
&lt;br&gt;&amp;gt; better
&lt;br&gt;&amp;gt; &amp;gt; using some Archiva-method like
&lt;br&gt;&amp;gt; &amp;gt; SomeStaticSingleton. getRepo(reponame).artfifactExists(groupId,
&lt;br&gt;&amp;gt; &amp;gt; artifactId, ....)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I think there is a component for this in the repository-layer module, I'll
&lt;br&gt;get back to you on this one :)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt; That would be better software design than looking up in the fs...
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; brettporter wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On 25/09/2009, at 7:56 PM, Marc Lustig wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I agree that instead of adding a permission for overwriting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; artifacts it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; should be sufficient to delete that particlar artifact. The case
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; when you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; have to overwrite a whole bunch of artifacts in once should be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; rather rare.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Yeah, I already filed that a while ago as MRM-992.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; And even that was a duplicate for 747.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; OK, I will see if I find the time to fix it. The first barrier is to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; get
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; acqainted with the code...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Let us know how we can help!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; - Brett
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the archiva-dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25751916.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25749141</id>
	<title>Re: logic to prevent overwriting release-artifacts</title>
	<published>2009-10-05T04:32:32Z</published>
	<updated>2009-10-05T04:32:32Z</updated>
	<author>
		<name>Marc Lustig</name>
	</author>
	<content type="html">Deng, Brett, et al
&lt;br&gt;&lt;br&gt;if you give me some instructions to implement this straight away, I will be glad to do that.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;quote author=&quot;Marc Lustig&quot;&gt;&lt;br&gt;yes please - the initial call to deploy the artifact is done in #124 in RepositoryServlet right?
&lt;br&gt;(Deng mentioned that the repo-consumer is called immediately after deploying the artifact, but I guess the check should be done before the deployment is triggered.)
&lt;br&gt;&lt;br&gt;So could you give me a hint how to retrieve the information necessary to do the check:
&lt;br&gt;- target repo and location in the repo in the fs (?)
&lt;br&gt;- artifact data (groupId, artifactId, ...)
&lt;br&gt;&lt;br&gt;What is the proper way to do that lookup? via File.exists(), or not better using some Archiva-method like
&lt;br&gt;SomeStaticSingleton. getRepo(reponame).artfifactExists(groupId, artifactId, ....)
&lt;br&gt;&lt;br&gt;That would be better software design than looking up in the fs...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;brettporter wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;On 25/09/2009, at 7:56 PM, Marc Lustig wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; OK, I agree that instead of adding a permission for overwriting &amp;nbsp;
&lt;br&gt;&amp;gt; artifacts it
&lt;br&gt;&amp;gt; should be sufficient to delete that particlar artifact. The case &amp;nbsp;
&lt;br&gt;&amp;gt; when you
&lt;br&gt;&amp;gt; have to overwrite a whole bunch of artifacts in once should be &amp;nbsp;
&lt;br&gt;&amp;gt; rather rare.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Yeah, I already filed that a while ago as MRM-992.
&lt;br&gt;&amp;gt; And even that was a duplicate for 747.
&lt;br&gt;&amp;gt; OK, I will see if I find the time to fix it. The first barrier is to &amp;nbsp;
&lt;br&gt;&amp;gt; get
&lt;br&gt;&amp;gt; acqainted with the code...
&lt;br&gt;&lt;br&gt;Let us know how we can help!
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/quote&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logic-to-prevent-overwriting-release-artifacts-tp25564416p25749141.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25744298</id>
	<title>Re: [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-10-04T18:58:44Z</published>
	<updated>2009-10-04T18:58:44Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">ping?
&lt;br&gt;&lt;br&gt;On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25744298&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The source binaries of the recently released Archiva 1.2.2 is broken. You
&lt;br&gt;&amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re-built again
&lt;br&gt;&amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt; [ ] 0
&lt;br&gt;&amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25744298.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25693992</id>
	<title>Fwd: SvnPubSub websites -- need more volunteers</title>
	<published>2009-10-01T00:02:33Z</published>
	<updated>2009-10-01T00:02:33Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">do we want to try this?
&lt;br&gt;&lt;br&gt;Begin forwarded message:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; From: Paul Querna &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25693992&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;paul@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Date: 1 October 2009 4:46:17 PM AEST
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25693992&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;infrastructure-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: SvnPubSub websites -- need more volunteers
&lt;br&gt;&amp;gt; Reply-To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25693992&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;infrastructure-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; list-id: &amp;lt;infrastructure-dev.apache.org&amp;gt;
&lt;br&gt;&amp;gt; message-id: &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25693992&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;4239a4320909302346m7d76c134j3efeea0ff816119e@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; apr.apache.org is now managed by SvnPubSub.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think we are ready to add more.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any volunteer TLPs?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Once its done, any commit to your SVN repo for your site will be
&lt;br&gt;&amp;gt; automatically propagated to the live servers within seconds.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Things i need to know:
&lt;br&gt;&amp;gt; - Path to Website Checkout
&lt;br&gt;&amp;gt; - If applicable, do you need a dev/dist directory
&lt;br&gt;&amp;gt; - Do you want a $tlp.staging.apache.org (Just maps to another SVN
&lt;br&gt;&amp;gt; url, like $tlp/site/branche/staging)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Notes to self current process:
&lt;br&gt;&amp;gt; - Add new paths to /etc/svnwcsub.conf
&lt;br&gt;&amp;gt; - Checkout svn paths to /x1/tmp
&lt;br&gt;&amp;gt; - mv /x1/www/$tlp &amp;nbsp;old-site &amp;&amp; mv /x1/tmp/$tlp /x1/www/$tlp
&lt;br&gt;&amp;gt; - chown -R svnwc /x1/www/$tlp
&lt;br&gt;&amp;gt; - /etc/init.d/svnwcsub restart
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fwd%3A-SvnPubSub-websites----need-more-volunteers-tp25693992p25693992.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25674340</id>
	<title>Re: [VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-09-29T20:11:16Z</published>
	<updated>2009-09-29T20:11:16Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">Here's my +1 - verified the signatures and checksums, and was able to unzip
&lt;br&gt;the source binaries.
&lt;br&gt;&lt;br&gt;On Wed, Sep 30, 2009 at 10:29 AM, Deng Ching &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25674340&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;oching@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The source binaries of the recently released Archiva 1.2.2 is broken. You
&lt;br&gt;&amp;gt; can see the thread about the corrupt source at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Because of this, the Archiva 1.2.2 source binaries has been re-built again
&lt;br&gt;&amp;gt; from the tag and is staged at:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/%7Eoching/archiva-1.2.2-sources/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [ ] +1 Release it!
&lt;br&gt;&amp;gt; [ ] 0
&lt;br&gt;&amp;gt; [ ] -1 Don't release it, because...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The vote will be open for 72 hours.
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Deng
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25674340.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25674062</id>
	<title>[VOTE] Re-release Archiva 1.2.2 source binaries</title>
	<published>2009-09-29T19:29:31Z</published>
	<updated>2009-09-29T19:29:31Z</updated>
	<author>
		<name>Deng Ching-2</name>
	</author>
	<content type="html">The source binaries of the recently released Archiva 1.2.2 is broken. You
&lt;br&gt;can see the thread about the corrupt source at
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Fwd%3A-Corrupt-Source-Zip--td25638356.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Because of this, the Archiva 1.2.2 source binaries has been re-built again
&lt;br&gt;from the tag and is staged at:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://people.apache.org/~oching/archiva-1.2.2-sources/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~oching/archiva-1.2.2-sources/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Everyone is encouraged to vote and give their feedback..
&lt;br&gt;&lt;br&gt;[ ] +1 Release it!
&lt;br&gt;[ ] 0
&lt;br&gt;[ ] -1 Don't release it, because...
&lt;br&gt;&lt;br&gt;The vote will be open for 72 hours.
&lt;br&gt;Thanks,
&lt;br&gt;Deng
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Re-release-Archiva-1.2.2-source-binaries-tp25674062p25674062.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25656329</id>
	<title>Re: Corrupt Source Zip?</title>
	<published>2009-09-28T20:12:58Z</published>
	<updated>2009-09-28T20:12:58Z</updated>
	<author>
		<name>brettporter</name>
	</author>
	<content type="html">&lt;br&gt;On 29/09/2009, at 1:05 PM, Deng Ching wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Maybe during transfer it got corrupted? I fixed the checksums when &amp;nbsp;
&lt;br&gt;&amp;gt; it was
&lt;br&gt;&amp;gt; flagged by Henk previously but I didn't check if the source bundle &amp;nbsp;
&lt;br&gt;&amp;gt; was ok.
&lt;br&gt;&lt;br&gt;Yeah, for once I think the checksums were right and the bundle wasn't :)
&lt;br&gt;&lt;br&gt;&amp;gt; I
&lt;br&gt;&amp;gt; can build the source zip from the 1.2.2 tag and stage it for voting &amp;nbsp;
&lt;br&gt;&amp;gt; again
&lt;br&gt;&lt;br&gt;ok... just a reminder to everyone that voting is actually on the &amp;nbsp;
&lt;br&gt;source bundle, so make sure to test it :)
&lt;br&gt;&lt;br&gt;- Brett
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fwd%3A-Corrupt-Source-Zip--tp25638356p25656329.html" />
</entry>

</feed>
