[ 
http://jira.codehaus.org/browse/MRM-1025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=198788#action_198788
 ] 

Brett Porter commented on MRM-1025:
-----------------------------------

the next step is to remove the ProjectModelToDatabaseConsumer as this is the 
only remaining requirement for the second database scan.

The following relies on the project model directly:
- the dependency-graph module (in turn, used only by the DependencyTree tag in 
the webapp, as it was not implemented for XMLRPC)
- DefaultRepositoryBrowsing (see below)
- DatabaseProjectModelResolver. This is primarily used in populating the model 
itself, and the dependency graph. If the above usages are removed, this can be 
removed.

The following utilise DefaultRepositoryBrowsing:
- "used by" in the webapp
- all tabs of the artifact page (ShowArtifactAction)
- the "shared model" on the artifact parent page
- to determine the artifact packaging in XMLRPC search (falls back to JAR - 
this code should be improved)
- getDependencies in XMLRPC

The key step is to introduce a metadata content repository API that can be a 
single touchpoint for the application, rather than the current situation of 
spreading between the repository-layer and direct access to the database which 
makes the availability of the model unreliable, is not easily extensible by 
plugins, and causes the main need for slow pre-scanning.

I believe the next steps are to flesh out the new metadata content repository 
api to support querying the above information. While it could be made to 
continue to interface to the existing database using the same resolvers, I 
believe it is valuable to simplify it using existing APIs and then revisit 
functionality that might need to catch up. Therefore, it can have a dumb 
implementation to start with (perhaps going back to reading the POM and 
dependency tree on demand for most uses, and not implementing get used by 
initially), and be improved later. 

The API can be tested by migrating browse and xmlrpc to it, then removing the 
dependency graph module and unprocessed database consumers, model code, 
database scheduler and corresponding UI. If this is successful, other uses of 
the database can be moved over (RSS, other browse and xmlrpc functionality, and 
reporting) and the tree / used by made to work again. Following that, uses of 
repository-layer and model can be moved over as well and deletion scanning 
revisited.

> make the archiva database an optional part of the installation
> --------------------------------------------------------------
>
>                 Key: MRM-1025
>                 URL: http://jira.codehaus.org/browse/MRM-1025
>             Project: Archiva
>          Issue Type: Task
>            Reporter: Brett Porter
>            Assignee: Brett Porter
>             Fix For: 1.3
>
>


-- 
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