karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Mazza (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KARAF-1027) Have cave:update-repository work with proxy repositories
Date Fri, 25 Nov 2011 14:01:41 GMT

    [ https://issues.apache.org/jira/browse/KARAF-1027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157157#comment-13157157
] 

Glen Mazza commented on KARAF-1027:
-----------------------------------

But isn't proxying a core *Cave* behavior, if not an OBR one?  To be most functional, a Cave
repository's repository.xml file may need to move beyond its strict definition in Felix, in
particular, the need for extension elements and attributes like "proxiedurl".

I had to override (actually, copy) much more of DataModelHelper than I would have liked because
too much of it is private rather than public.  (Perhaps the Felix project can see the need
to allow for more subclassing of these elements, and change that.)  While DataModelHelper
nominally allows us to subclass the serializing of each element within a repo file (so we
can add more elements/attributes in), the top-level method used for writing the repository
as a whole unhelpfully calls only the Felix-specific methods for writing each child element.
 

While the proxiedurl attribute is not being used in the patch (and that portion of the patch
can be omitted for the time being at least), presently the lifespan of a cave repository is
only as long as its parent Karaf instance is active.  (We have cave:create-repository but
not cave:attach-repository*, the former is doubling up for the latter.)  If we wish to be
able to reattach cave repositories--including proxy ones--upon a shutdown and restart of Karaf,
Karaf will later need to read the proxiedurl attribute in to know (1) that it's a proxy repository,
and (2) the remote repository it's pointing to.  Else the user is going to have to recreate
the proxy repo with cave:proxy-repository again each time he restarts Karaf, typing in the
ugly & lengthy remote URL every time--rather clumsy and unpleasant unless he uses some
form of automated script.

But the here-and-now purpose of this patch is just to have cave:update-repository also work
with proxy repositories.  If you can do this in a less intrusive manner, great, be my guest.

*a potentially new command which would have the exact opposite semantics of the already existing
cave:remove-repository command.  (But that's another topic.)

                
> Have cave:update-repository work with proxy repositories
> --------------------------------------------------------
>
>                 Key: KARAF-1027
>                 URL: https://issues.apache.org/jira/browse/KARAF-1027
>             Project: Karaf
>          Issue Type: Improvement
>          Components: cave-repository
>    Affects Versions: cave-3.0.0
>            Reporter: Glen Mazza
>            Assignee: Jean-Baptiste Onofré
>             Fix For: cave-3.0.0
>
>         Attachments: proxyupdate.patch
>
>
> Supplied patch makes following changes:
> 1.) cave:proxy-repository now creates the repository before populating its repository.xml
with the remote repository's contents (prior functionality would raise an exception if the
repository did not exist.)
> 2.) switches the "non-register" to OBR option from -nu to -nr (like create repository)
> 3.) Like create-repository, will raise an exception if the proxy repository already exists.
> 4.) Adds a proxiedurl attribute to the repository.xml file (for subsequent reading when
loading an already created proxy repository--functionality is not yet used.)  Warning: the
schema for the repository.xml now deviates from Felix because of this additional attribute
(unsure if that matters), although it still loads into the Karaf OBR (obr:listurl).
> 5.) cave:update-repository will now work for both normal and proxied cave repositories,
in the latter case it does a rescan of the remote repository and recreates the repository.xml
file.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message