Skip to content

Commit b78b666

Browse files
committed
[KARAF-1752] remove hard coded features uri in features deployer feature discovery; THX to Andrei Pozolotin for the patch
git-svn-id: https://svn.apache.org/repos/asf/karaf/trunk@1376824 13f79535-47bb-0310-9956-ffa450edef68
1 parent b68094f commit b78b666

File tree

6 files changed

+31
-6
lines changed

6 files changed

+31
-6
lines changed

deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import org.apache.felix.fileinstall.ArtifactUrlTransformer;
3737
import org.apache.karaf.features.Feature;
38+
import org.apache.karaf.features.FeaturesNamespaces;
3839
import org.apache.karaf.features.FeaturesService;
3940
import org.apache.karaf.features.Repository;
4041
import org.osgi.framework.Bundle;
@@ -87,14 +88,37 @@ public void destroy() throws Exception {
8788
bundleContext.removeBundleListener(this);
8889
}
8990

91+
private boolean isKnownFeaturesURI(String uri){
92+
if(uri == null){
93+
return true;
94+
}
95+
if(FeaturesNamespaces.URI_0_0_0.equalsIgnoreCase(uri)){
96+
return true;
97+
}
98+
if(FeaturesNamespaces.URI_1_0_0.equalsIgnoreCase(uri)){
99+
return true;
100+
}
101+
if(FeaturesNamespaces.URI_1_1_0.equalsIgnoreCase(uri)){
102+
return true;
103+
}
104+
if(FeaturesNamespaces.URI_CURRENT.equalsIgnoreCase(uri)){
105+
return true;
106+
}
107+
return false;
108+
}
109+
90110
public boolean canHandle(File artifact) {
91111
try {
92112
if (artifact.isFile() && artifact.getName().endsWith(".xml")) {
93113
Document doc = parse(artifact);
94114
String name = doc.getDocumentElement().getLocalName();
95115
String uri = doc.getDocumentElement().getNamespaceURI();
96-
if ("features".equals(name) && (uri == null || "".equals(uri) || "http://karaf.apache.org/xmlns/features/v1.0.0".equalsIgnoreCase(uri))) {
97-
return true;
116+
if ("features".equals(name) ) {
117+
if(isKnownFeaturesURI(uri)){
118+
return true;
119+
} else {
120+
logger.error("unknown features uri", new Exception("" + uri));
121+
}
98122
}
99123
}
100124
} catch (Exception e) {

features/core/src/main/java/org/apache/karaf/features/internal/FeaturesNamespaces.java renamed to features/core/src/main/java/org/apache/karaf/features/FeaturesNamespaces.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.apache.karaf.features.internal;
16+
package org.apache.karaf.features;
1717

1818
import javax.xml.namespace.QName;
1919

features/core/src/main/java/org/apache/karaf/features/internal/FeatureValidationUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import javax.xml.validation.SchemaFactory;
3030
import javax.xml.validation.Validator;
3131

32+
import org.apache.karaf.features.FeaturesNamespaces;
3233
import org.slf4j.Logger;
3334
import org.slf4j.LoggerFactory;
3435
import org.w3c.dom.Document;

features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import javax.xml.stream.XMLInputFactory;
3636
import javax.xml.transform.sax.SAXSource;
3737

38-
import org.apache.karaf.features.internal.FeaturesNamespaces;
38+
import org.apache.karaf.features.FeaturesNamespaces;
3939
import org.xml.sax.Attributes;
4040
import org.xml.sax.InputSource;
4141
import org.xml.sax.SAXException;

features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020
@javax.xml.bind.annotation.XmlSchema(namespace = FeaturesNamespaces.URI_CURRENT, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
2121
package org.apache.karaf.features.internal.model;
2222

23-
import org.apache.karaf.features.internal.FeaturesNamespaces;
23+
import org.apache.karaf.features.FeaturesNamespaces;

tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import javax.xml.parsers.ParserConfigurationException;
3030
import javax.xml.stream.XMLStreamException;
3131

32-
import org.apache.karaf.features.internal.FeaturesNamespaces;
32+
import org.apache.karaf.features.FeaturesNamespaces;
3333
import org.apache.karaf.features.internal.model.Features;
3434
import org.apache.karaf.features.internal.model.Feature;
3535
import org.apache.karaf.features.internal.model.JaxbUtil;

0 commit comments

Comments
 (0)