[ 
http://jira.codehaus.org/browse/ARCHETYPE-179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=141928#action_141928
 ] 

batkinson edited comment on ARCHETYPE-179 at 7/16/08 10:26 AM:
----------------------------------------------------------------------

I am not so sure this issue is closed. Unless I am completely missing the 
point, the issue doesn't appear to be with the internal catalog. After peeking 
at the trunk (at the time of this post), the RemoteCatalogArchetypeDataSource 
still doesn't provide equivalent functionality as the getRemoteFile method in 
the WagonManager api (in the artifact module). 

http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?view=markup

It appears that archetype plugin isn't using the abstractions for artifact 
repositories for resolving the catalogs and is instead writing a new mechanism. 
This is troubling in that the existing abstractions ensured that things like 
password protected repositories (and mirrors) would function properly.

The archetype artifacts seem to resolve ok as long as a repository url is *not* 
specified in the catalog. The plugin uses the normal artifact api for 
resolution when no repo is specified in the catalog. Because I use my internal 
artifact proxy as a mirror for central, using an unprotected archetype catalog 
void of repo attributes, I am able to fully utilize the new plugin with a 
protected artifact proxy by specifying the catalog via 
-DarchetypeCatalog=http://my-unprotected-catalog-without-repo-attributes.

Because the repository configuration isn't in line with the typical Maven 
methodology, the plugin doesn't provide the same level of functionality as 
Maven itself. It also requires using command line arguments and a completely 
different configuration mechanism. 

Consider the following: if catalogs were retrieved as artifacts, you could 
override the archetype plugin's default catalog by specifying an artifact 
reference (and perhaps the resource url in the jar). This would still allow 
using custom catalogs but it would be using the proven artifact resolution 
scheme. Authentication, proxies, mirrors, etc. would work correctly and it 
wouldn't require special configuration. Multiple repositories would be 
supported as they already are - by specifying another repository in the POM. 
This would also allow for a pre-configured Maven distribution with a profile to 
override the default catalog, and configuration would be consistent with all 
other Maven plugins. This would provide the same functionality, *and* it makes 
sense in terms of what Maven already does well. As it stands now, the 2.0+ 
plugin seems to be IDE-centric and a simplistic (maybe even broken) Maven 
plugin.

Before this plugin was released, I was really impressed with how coherent Maven 
was. I would like to help return the tool to that status. How can I help?

      was (Author: batkinson):
    I am not so sure this issue is closed. Unless I am completely missing the 
point, the issue doesn't appear to be with the internal catalog. After peeking 
at the trunk (at the time of this post), the RemoteCatalogArchetypeDataSource 
still doesn't provide equivalent functionality as the getRemoteFile method in 
the WagonManager api (in the artifact module). 

http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?view=markup

It appears that archetype plugin isn't using the abstractions for artifact 
repositories for resolving the catalogs and is instead writing a new mechanism. 
This is troubling in that the existing abstractions ensured that things like 
password protected repositories (and mirrors) would function properly. Having 
said this, the archetype artifacts seem to resolve ok (as long as a repository 
url is *not* specified in the catalog) because they use the artifact api for 
resolution.

Also, without resolving the catalog using the artifact repository abstraction, 
overriding the default catalog by preconfiguring maven settings seems to be 
impossible (at least without a fragile hack). This makes this maven plugin very 
unattractive for corporate-style usage.

Can I help in any way?
  
> repo1 is hardcoded into internal catalog
> ----------------------------------------
>
>                 Key: ARCHETYPE-179
>                 URL: http://jira.codehaus.org/browse/ARCHETYPE-179
>             Project: Maven Archetype
>          Issue Type: Bug
>          Components: Generator
>            Reporter: Brett Porter
>             Fix For: 2.0-alpha-4
>
>
> The repository URL should not be hardcoded into the internal catalog - it is 
> looking at repo1, when really it should be looking at the repository defined 
> by central (ie, the one in my settings file that points to my internal 
> repository proxy). So, it needs to honour settings. I believe the catalog 
> should specify an id and a url - and if the id exists use that instead (and 
> if not, fall back to the URL).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to