Add "conflicts" configuration into features.xml
-----------------------------------------------

                 Key: KARAF-368
                 URL: https://issues.apache.org/jira/browse/KARAF-368
             Project: Karaf
          Issue Type: New Feature
            Reporter: Andreas Pieber


I'm coding at pax-wicket right now and find the following "problem": 

In the following features.xml...

{code}
  <!-- Departmentstore example suite provided with paxwicket -->
  <feature name="departmentstore" version="0.6.0-SNAPSHOT">
    <feature version="0.6.0-SNAPSHOT">web</feature>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore/departmentstore-model/0.6.0-SNAPSHOT</bundle>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore.view/departmentstore-view-about/0.6.0-SNAPSHOT</bundle>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore.view/departmentstore-view-application/0.6.0-SNAPSHOT</bundle>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore.view/departmentstore-view-floor/0.6.0-SNAPSHOT</bundle>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore.view/departmentstore-view-franchisee/0.6.0-SNAPSHOT</bundle>
  </feature>
  <feature name="departmentstore-basic" version="0.6.0-SNAPSHOT">
    <feature version="0.6.0-SNAPSHOT">web</feature>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore/departmentstore-service-basic/0.6.0-SNAPSHOT</bundle>
  </feature>
  <feature name="departmentstore-alternative" version="0.6.0-SNAPSHOT">
    <feature version="0.6.0-SNAPSHOT">web</feature>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore/departmentstore-service-alternative/0.6.0-SNAPSHOT</bundle>
  </feature>
{code}

... I have the problem that both, departmentstore-basic and 
departmentstore-alternative depend on web AND departmentstore; but they 
"conflict" with each other. I know that we can't detect such a situation 
automatically BUT it would be cool to do something like the following

{code}
  <feature name="departmentstore-basic" version="0.6.0-SNAPSHOT">
    <feature version="0.6.0-SNAPSHOT">web</feature>
    <feature version="0.6.0-SNAPSHOT" 
conflicts=true>departmentstore-alternative</feature>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore/departmentstore-service-basic/0.6.0-SNAPSHOT</bundle>
  </feature>
  <feature name="departmentstore-alternative" version="0.6.0-SNAPSHOT">
    <feature version="0.6.0-SNAPSHOT">web</feature>
    <feature version="0.6.0-SNAPSHOT" 
conflicts=true>departmentstore-basic</feature>
    
<bundle>mvn:org.ops4j.pax.wicket.samples.departmentstore/departmentstore-service-alternative/0.6.0-SNAPSHOT</bundle>
  </feature>
{code}

If I have departmentstore-basic install now and I do a...

{code}
feature:install departmentstore-alternative
{code}

...something like the following should happen automatically...

{code}
features:uninstall departmentstore-basic
features:install departmentstore-alternative
{code}

For one feature this is maybe trivial but think you 20 departmentstore 
implementations. This will require you to look up which is currently installed, 
uninstall it and then install the new one...

WDYT?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to