From b7d5e71d99814e1744d482a1d12eb86a6c55ed14 Mon Sep 17 00:00:00 2001 From: Stefano Lenzi Date: Thu, 9 Sep 2010 12:33:51 +0000 Subject: [PATCH] Fixed FELIX-2579 by adding a new method extractDeviceType and calling it for root device and its children Fixed FELIX-2588 by merging org.osgi.service.upnp classes into the bundle during the packaging phase git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@995403 13f79535-47bb-0310-9956-ffa450edef68 --- upnp/basedriver/pom.xml | 46 ++++++++++++++++--- .../upnp/basedriver/export/BuildDevice.java | 33 +++++++------ 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/upnp/basedriver/pom.xml b/upnp/basedriver/pom.xml index 1ed13aad773..667f21f3ed8 100644 --- a/upnp/basedriver/pom.xml +++ b/upnp/basedriver/pom.xml @@ -12,13 +12,42 @@ org.apache.felix.upnp.basedriver 0.9.0-SNAPSHOT + + 1.8.0 + 1.8.0 + 1.7.0 + + + + LATEST + + + release.domoware.isti.cnr.it + Domoware Java Repository + http://domoware.isti.cnr.it/maven2/ + false + + + snapshot.domoware.isti.cnr.it + Domoware Java Snapshot Repository + http://domoware.isti.cnr.it/maven2-snap/ + false + + + + 1.9.0-SNAPSHOT + 1.8.1-SNAPSHOT + 1.8.0-SNAPSHOT + + + cyberlink - cyberlinktrue - + cyberlinktrue + @@ -53,7 +82,8 @@ org.apache.felix.upnp.basedriver.controller;version=0.1.0, org.apache.felix.upnp.basedriver.util;version=0.3.0, - org.apache.felix.upnp.basedriver.resources;version=0.3.0 + org.apache.felix.upnp.basedriver.resources;version=0.3.0, + org.osgi.service.upnp;version=1.1.0 org.osgi.*, javax.xml.parsers, org.w3c.dom, org.xml.sax, @@ -117,7 +147,8 @@ org.apache.felix.upnp.basedriver.controller;version=0.1.0, org.apache.felix.upnp.basedriver.util;version=0.3.0, - org.apache.felix.upnp.basedriver.resources;version=0.3.0 + org.apache.felix.upnp.basedriver.resources;version=0.3.0, + org.osgi.service.upnp;version=1.1.0 org.osgi.*, javax.xml.parsers, org.w3c.dom, org.xml.sax @@ -141,7 +172,8 @@ org.apache.felix.upnp.basedriver.controller;version=0.1.0, org.apache.felix.upnp.basedriver.util;version=0.3.0, - org.apache.felix.upnp.basedriver.resources;version=0.3.0 + org.apache.felix.upnp.basedriver.resources;version=0.3.0, + org.osgi.service.upnp;version=1.1.0 org.osgi.* @@ -202,13 +234,13 @@ it.cnr.isti.domoware.cyberdomo upnp-stack - 1.8.0 + ${cyberdomo.jdk14.version} true it.cnr.isti.domoware.cyberdomo upnp-stack-jdk13 - 1.8.0 + ${cyberdomo.jdk13.version} true diff --git a/upnp/basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java b/upnp/basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java index a0334e64659..afc0628f7b4 100644 --- a/upnp/basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java +++ b/upnp/basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java @@ -59,21 +59,11 @@ private static Node buildRootNode(){ root.addNode(spec); return root; } - - private static Device buildRootDeviceNode(Node root,ServiceReference sr){ - Node dev = new Node(Device.ELEM_NAME); - root.addNode(dev); - DeviceData dd = new DeviceData(); - dd.setDescriptionURI("/gen-desc.xml"); - dev.setUserData(dd); - Device devUPnP = new Device(root,dev); - + private static String extractDeviceType(ServiceReference sr) { Object aux = sr.getProperty(UPnPDevice.TYPE); - if(aux==null){ - devUPnP.setDeviceType(null); - }else if(aux instanceof String){ - devUPnP.setDeviceType((String) aux); + if(aux instanceof String){ + return (String) aux; }else if(aux instanceof String[]){ //The property key UPnP.device.type should be a String String[] v = (String[]) aux; @@ -87,9 +77,21 @@ private static Device buildRootDeviceNode(Node root,ServiceReference sr){ maxindex=i; } } - devUPnP.setDeviceType(v[maxindex]); + return v[maxindex]; + }else{ + return ""; } - + } + + private static Device buildRootDeviceNode(Node root, ServiceReference sr){ + Node dev = new Node(Device.ELEM_NAME); + root.addNode(dev); + DeviceData dd = new DeviceData(); + dd.setDescriptionURI("/gen-desc.xml"); + dev.setUserData(dd); + Device devUPnP = new Device(root,dev); + + devUPnP.setDeviceType(extractDeviceType(sr)); devUPnP.setFriendlyName((String) sr.getProperty(UPnPDevice.FRIENDLY_NAME)); devUPnP.setManufacture((String) sr.getProperty(UPnPDevice.MANUFACTURER)); devUPnP.setManufactureURL((String) sr.getProperty(UPnPDevice.MANUFACTURER_URL)); @@ -139,6 +141,7 @@ private static void buildDevice(String id,Device parent, ServiceReference sr) { Device devUPnP = new Device(dev); + devUPnP.setDeviceType(extractDeviceType(sr)); devUPnP.setFriendlyName((String) sr.getProperty(UPnPDevice.FRIENDLY_NAME)); devUPnP.setManufacture((String) sr.getProperty(UPnPDevice.MANUFACTURER)); devUPnP.setManufactureURL((String) sr.getProperty(UPnPDevice.MANUFACTURER_URL));