Added svn properties
Fixed test runtime enviroment boostrap
Fixed dependecy in tester artifact



git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@674879 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/upnp/samples/binarylight/pom.xml b/upnp/samples/binarylight/pom.xml
index 05279d2..ba8b09f 100644
--- a/upnp/samples/binarylight/pom.xml
+++ b/upnp/samples/binarylight/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>

+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
@@ -17,66 +17,66 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

-  <parent>

-    <artifactId>felix</artifactId>

-    <groupId>org.apache.felix</groupId>

-    <version>1.0.2</version>

-    <relativePath>../../../pom/pom.xml</relativePath>

-  </parent>

-  <modelVersion>4.0.0</modelVersion>

-  <groupId>org.apache.felix</groupId>

-  <artifactId>org.apache.felix.upnp.sample.binaryLight</artifactId>

-  <packaging>bundle</packaging>

-  <name>Apache Felix UPnP Sample Binary-Light</name>

-  <version>0.2.0-SNAPSHOT</version>

-  <build>

-    <plugins>

-      <plugin>

-        <groupId>org.apache.felix</groupId>

-        <artifactId>maven-bundle-plugin</artifactId>

+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <artifactId>felix</artifactId>
+    <groupId>org.apache.felix</groupId>
+    <version>1.0.2</version>
+    <relativePath>../../../pom/pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.felix</groupId>
+  <artifactId>org.apache.felix.upnp.sample.binaryLight</artifactId>
+  <packaging>bundle</packaging>
+  <name>Apache Felix UPnP Sample Binary-Light</name>
+  <version>0.2.0-SNAPSHOT</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
         <version>1.4.0</version>
-        <extensions>true</extensions>

-        <configuration>

-          <instructions>

-            <Bundle-Name>${pom.name}</Bundle-Name>

+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${pom.name}</Bundle-Name>
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-            <Bundle-Author>Matteo Demuru &lt;demuru@apache.org&gt;,Francesco Furfari &lt;furfari@apache.org&gt;,Stefano "Kismet" Lenzi &lt;lenzi@apache.org&gt;</Bundle-Author>

-            <Bundle-Description>Standardized BinaryLight DCPs to test UPnP Base Driver</Bundle-Description>

-            <Bundle-SymbolicName>org.apache.felix.upnp.sample.binaryLight</Bundle-SymbolicName>

-            <Bundle-Activator>org.apache.felix.upnp.sample.binaryLight.Activator</Bundle-Activator>

-            <Private-Package>org.apache.felix.upnp.sample.binaryLight.*</Private-Package>

-            <Import-Package>*</Import-Package>

-          </instructions>

-        </configuration>

-      </plugin>

-    </plugins>

-  </build>

-  <dependencies>

-    <dependency>

-      <groupId>${pom.groupId}</groupId>

-      <artifactId>org.osgi.core</artifactId>

-      <version>1.1.0-SNAPSHOT</version>

-      <scope>provided</scope>

-    </dependency>

-    <dependency>

-      <groupId>${pom.groupId}</groupId>

-      <artifactId>org.osgi.compendium</artifactId>

+            <Bundle-Author>Matteo Demuru &lt;demuru@apache.org&gt;,Francesco Furfari &lt;furfari@apache.org&gt;,Stefano "Kismet" Lenzi &lt;lenzi@apache.org&gt;</Bundle-Author>
+            <Bundle-Description>Standardized BinaryLight DCPs to test UPnP Base Driver</Bundle-Description>
+            <Bundle-SymbolicName>org.apache.felix.upnp.sample.binaryLight</Bundle-SymbolicName>
+            <Bundle-Activator>org.apache.felix.upnp.sample.binaryLight.Activator</Bundle-Activator>
+            <Private-Package>org.apache.felix.upnp.sample.binaryLight.*</Private-Package>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
       <version>1.0.0</version>
-      <scope>provided</scope>

-    </dependency>

-    <dependency>

-      <groupId>${pom.groupId}</groupId>

-      <artifactId>javax.servlet</artifactId>

-      <version>1.0.0</version>

-      <scope>provided</scope>

-    </dependency>

-    <dependency>

-      <groupId>org.apache.felix</groupId>

-      <artifactId>org.apache.felix.upnp.extra</artifactId>

-      <version>0.3.0-SNAPSHOT</version>

-      <scope>provided</scope>

-    </dependency>

-  </dependencies>

-</project>

-

+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>javax.servlet</artifactId>
+      <version>1.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.upnp.extra</artifactId>
+      <version>0.3.0-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+</project>
+
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
index 374cc20..d48d2d3 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
@@ -1,113 +1,113 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-import org.apache.felix.upnp.extra.util.EventSource;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class LightModel implements EventSource{

-	

-	private boolean status = false;

-	private boolean target = false;

-	private boolean failure = false;

-	private PropertyChangeSupport propertySupport = new PropertyChangeSupport(this);

-	

-	public LightModel(){	

-	}

-	

-	public void addPropertyChangeListener(PropertyChangeListener listener){

-		propertySupport.addPropertyChangeListener(listener);

-	}

-	

-	public void removePropertyChangeListener(PropertyChangeListener listener){

-		propertySupport.removePropertyChangeListener(listener);

-	}

-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {

-		propertySupport.addPropertyChangeListener(propertyName,listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {

-		propertySupport.removePropertyChangeListener(propertyName,listener);

-	}

-	

-	public void doSwitch(boolean value){

-		if (value) switchOn();

-		else switchOff();

-	}

-	

-	public void switchOn(){

-		target = true;

-		if(! failure) {

-			boolean oldStatus = status;

-			status = true;

-			propertySupport.firePropertyChange("Status",oldStatus,status);

-		}

-	}

-	

-	public void switchOff(){

-		target = false;

-		if(! failure) {

-			boolean oldStatus = status;

-			status = false;

-			propertySupport.firePropertyChange("Status",oldStatus,status);

-		}

-	}

-	

-	public void setFailure(boolean value){

-		failure = value;

-		if (failure){

-			status = false;

-		}

-		else {

-			if (target)		{

-				status = true;

-			}

-			else{

-				status = false;

-			}

-		}

-		propertySupport.firePropertyChange("Status",!status,status);

-		propertySupport.firePropertyChange("Failure",!failure,failure);

-	}

-	

-

-	/**

-	 * @return

-	 */

-	public boolean getTarget() {

-		return target;

-	}

-

-	/**

-	 * @return

-	 */

-	public boolean getStatus() {

-		return status;

-	}

-

-

-

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+import org.apache.felix.upnp.extra.util.EventSource;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class LightModel implements EventSource{
+	
+	private boolean status = false;
+	private boolean target = false;
+	private boolean failure = false;
+	private PropertyChangeSupport propertySupport = new PropertyChangeSupport(this);
+	
+	public LightModel(){	
+	}
+	
+	public void addPropertyChangeListener(PropertyChangeListener listener){
+		propertySupport.addPropertyChangeListener(listener);
+	}
+	
+	public void removePropertyChangeListener(PropertyChangeListener listener){
+		propertySupport.removePropertyChangeListener(listener);
+	}
+	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+		propertySupport.addPropertyChangeListener(propertyName,listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+		propertySupport.removePropertyChangeListener(propertyName,listener);
+	}
+	
+	public void doSwitch(boolean value){
+		if (value) switchOn();
+		else switchOff();
+	}
+	
+	public void switchOn(){
+		target = true;
+		if(! failure) {
+			boolean oldStatus = status;
+			status = true;
+			propertySupport.firePropertyChange("Status",oldStatus,status);
+		}
+	}
+	
+	public void switchOff(){
+		target = false;
+		if(! failure) {
+			boolean oldStatus = status;
+			status = false;
+			propertySupport.firePropertyChange("Status",oldStatus,status);
+		}
+	}
+	
+	public void setFailure(boolean value){
+		failure = value;
+		if (failure){
+			status = false;
+		}
+		else {
+			if (target)		{
+				status = true;
+			}
+			else{
+				status = false;
+			}
+		}
+		propertySupport.firePropertyChange("Status",!status,status);
+		propertySupport.firePropertyChange("Failure",!failure,failure);
+	}
+	
+
+	/**
+	 * @return
+	 */
+	public boolean getTarget() {
+		return target;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean getStatus() {
+		return status;
+	}
+
+
+
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
index 2e56106..02238cc 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
@@ -1,185 +1,185 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight;

-

-import java.awt.BorderLayout;

-import java.awt.event.ActionEvent;

-import java.awt.event.MouseAdapter;

-import java.awt.event.MouseEvent;

-import java.awt.event.WindowAdapter;

-import java.awt.event.WindowEvent;

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeListener;

-import java.net.URL;

-

-import javax.swing.AbstractAction;

-import javax.swing.Icon;

-import javax.swing.ImageIcon;

-import javax.swing.JButton;

-import javax.swing.JFrame;

-import javax.swing.JLabel;

-import javax.swing.JPanel;

-import javax.swing.SwingUtilities;

-

-import org.osgi.framework.BundleException;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class LightUI extends JFrame implements PropertyChangeListener {

-    private final static ImageIcon LIGHT_ON = LightUI.loadIcon("LightOn.gif","ON");

-    private final static ImageIcon LIGHT_OFF = LightUI.loadIcon("LightOff.gif","OFF");

-    private final static ImageIcon LIGHT_FAIL = LightUI.loadIcon("LightFail.gif","FAILURE");

-	private final JLabel label = new JLabel();

-    private LightModel model;

-	private JButton btnSwitch;

-	private JButton btnFailure;

-   

-	public LightUI(LightModel model)   {

-		super("Felix UPnP BinaryLight");

-		this.model = model;

-		setSize(150,150);

-		JPanel panel = new JPanel(new BorderLayout());

-		panel.add(doMainPanel(),BorderLayout.CENTER);

-		panel.add(doControlPanel(),BorderLayout.SOUTH);

-		getContentPane().add(panel);

-		model.addPropertyChangeListener(this);

-

-		addWindowListener(new WindowAdapter(){

-			public void windowClosing(WindowEvent e) 

-			{

-				try {

-					Activator.context.getBundle().stop();

-				} catch (BundleException ex) {

-					ex.printStackTrace();

-				}

-			}

-		});			

-	       try {

-	            URL eventIconUrl = LightUI.class.getResource("images/logo.gif");           

-	            ImageIcon icon=  new ImageIcon(eventIconUrl,"logo");

-	            setIconImage(icon.getImage());

-	       }

-	        catch (Exception ex){

-	                System.out.println("Resource: IMAGES/logo.gif not found : " + ex.toString());

-	        }

-	

-		pack();

-		setVisible(true);

-    }

-	

-	private JPanel doMainPanel(){

-		JPanel panel = new JPanel();

-		label.setIcon(LIGHT_OFF);

-		//label.setSize(new Dimension(32,32));

-	    label.addMouseListener(new MouseAdapter(){          

-	          public void mouseClicked(MouseEvent e){

-	            if (SwingUtilities.isLeftMouseButton(e)){

-	              if (e.getClickCount()==1){

-	              Icon icon = label.getIcon();

-	              if (icon == LIGHT_ON)

-	                  model.switchOff();

-	              else 

-	                  model.switchOn();

-	              }

-	            }

-	          }

-	    });

-	    panel.add(label);

-	    return panel;

-	}

-	          

-	private JPanel doControlPanel(){

-		JPanel panel = new JPanel();

-		btnSwitch = new JButton("On");

-		btnFailure = new JButton("Break");

-		panel.add(btnSwitch);

-		panel.add(btnFailure);

-		

-		btnSwitch.addActionListener(new AbstractAction(){

-			public void actionPerformed(ActionEvent e) {

-				if (btnSwitch.getText().equals("On")){

-					btnSwitch.setText("Off");

-	                model.switchOn();

-				}else {

-					btnSwitch.setText("On");

-	                model.switchOff();					

-				}

-			}			

-		});

-		

-		btnFailure.addActionListener(new AbstractAction(){

-			public void actionPerformed(ActionEvent e) {

-				if (btnFailure.getText().equals("Break")){

-					btnFailure.setText("Repair");

-					btnSwitch.setEnabled(false);

-	                model.setFailure(true);

-				} else {

-					btnFailure.setText("Break");

-					btnSwitch.setEnabled(true);

-	                model.setFailure(false);					

-				}

-			}			

-		});

-		

-		return panel;

-	}

-	

-    public  static ImageIcon loadIcon(String path,String title)

-    {

-        try {

-            URL eventIconUrl = LightUI.class.getResource("images/" + path);

-            return new ImageIcon(eventIconUrl,title);

-        }

-        catch (Exception ex){

-			System.out.println("Resource:" + path + " not found : " + ex.toString());

-            return null;

-        }

-    }

-

-	/* (non-Javadoc)

-	 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)

-	 */

-    public void propertyChange(PropertyChangeEvent evt) {

-    	String property = evt.getPropertyName();

-    	boolean value = ((Boolean) evt.getNewValue()).booleanValue();

-    	System.out.println("BinaryLight property::"+property + " changed to:" +  value);

-        	if (property.equals("Status")){

-    		if (value){

-    			label.setIcon(LIGHT_ON);

-    			btnSwitch.setText("Off");

-    		}

-    		else{

-    			label.setIcon(LIGHT_OFF);

-    			btnSwitch.setText("On");

-    		}

-    	}

-    	else if (property.equals("Failure")){            

-    		if (value)

-    			label.setIcon(LIGHT_FAIL);

-    	}

-    	getContentPane().validate();

-    	repaint();

-

-	}

-

-	

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight;
+
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.net.URL;
+
+import javax.swing.AbstractAction;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
+
+import org.osgi.framework.BundleException;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class LightUI extends JFrame implements PropertyChangeListener {
+    private final static ImageIcon LIGHT_ON = LightUI.loadIcon("LightOn.gif","ON");
+    private final static ImageIcon LIGHT_OFF = LightUI.loadIcon("LightOff.gif","OFF");
+    private final static ImageIcon LIGHT_FAIL = LightUI.loadIcon("LightFail.gif","FAILURE");
+	private final JLabel label = new JLabel();
+    private LightModel model;
+	private JButton btnSwitch;
+	private JButton btnFailure;
+   
+	public LightUI(LightModel model)   {
+		super("Felix UPnP BinaryLight");
+		this.model = model;
+		setSize(150,150);
+		JPanel panel = new JPanel(new BorderLayout());
+		panel.add(doMainPanel(),BorderLayout.CENTER);
+		panel.add(doControlPanel(),BorderLayout.SOUTH);
+		getContentPane().add(panel);
+		model.addPropertyChangeListener(this);
+
+		addWindowListener(new WindowAdapter(){
+			public void windowClosing(WindowEvent e) 
+			{
+				try {
+					Activator.context.getBundle().stop();
+				} catch (BundleException ex) {
+					ex.printStackTrace();
+				}
+			}
+		});			
+	       try {
+	            URL eventIconUrl = LightUI.class.getResource("images/logo.gif");           
+	            ImageIcon icon=  new ImageIcon(eventIconUrl,"logo");
+	            setIconImage(icon.getImage());
+	       }
+	        catch (Exception ex){
+	                System.out.println("Resource: IMAGES/logo.gif not found : " + ex.toString());
+	        }
+	
+		pack();
+		setVisible(true);
+    }
+	
+	private JPanel doMainPanel(){
+		JPanel panel = new JPanel();
+		label.setIcon(LIGHT_OFF);
+		//label.setSize(new Dimension(32,32));
+	    label.addMouseListener(new MouseAdapter(){          
+	          public void mouseClicked(MouseEvent e){
+	            if (SwingUtilities.isLeftMouseButton(e)){
+	              if (e.getClickCount()==1){
+	              Icon icon = label.getIcon();
+	              if (icon == LIGHT_ON)
+	                  model.switchOff();
+	              else 
+	                  model.switchOn();
+	              }
+	            }
+	          }
+	    });
+	    panel.add(label);
+	    return panel;
+	}
+	          
+	private JPanel doControlPanel(){
+		JPanel panel = new JPanel();
+		btnSwitch = new JButton("On");
+		btnFailure = new JButton("Break");
+		panel.add(btnSwitch);
+		panel.add(btnFailure);
+		
+		btnSwitch.addActionListener(new AbstractAction(){
+			public void actionPerformed(ActionEvent e) {
+				if (btnSwitch.getText().equals("On")){
+					btnSwitch.setText("Off");
+	                model.switchOn();
+				}else {
+					btnSwitch.setText("On");
+	                model.switchOff();					
+				}
+			}			
+		});
+		
+		btnFailure.addActionListener(new AbstractAction(){
+			public void actionPerformed(ActionEvent e) {
+				if (btnFailure.getText().equals("Break")){
+					btnFailure.setText("Repair");
+					btnSwitch.setEnabled(false);
+	                model.setFailure(true);
+				} else {
+					btnFailure.setText("Break");
+					btnSwitch.setEnabled(true);
+	                model.setFailure(false);					
+				}
+			}			
+		});
+		
+		return panel;
+	}
+	
+    public  static ImageIcon loadIcon(String path,String title)
+    {
+        try {
+            URL eventIconUrl = LightUI.class.getResource("images/" + path);
+            return new ImageIcon(eventIconUrl,title);
+        }
+        catch (Exception ex){
+			System.out.println("Resource:" + path + " not found : " + ex.toString());
+            return null;
+        }
+    }
+
+	/* (non-Javadoc)
+	 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
+	 */
+    public void propertyChange(PropertyChangeEvent evt) {
+    	String property = evt.getPropertyName();
+    	boolean value = ((Boolean) evt.getNewValue()).booleanValue();
+    	System.out.println("BinaryLight property::"+property + " changed to:" +  value);
+        	if (property.equals("Status")){
+    		if (value){
+    			label.setIcon(LIGHT_ON);
+    			btnSwitch.setText("Off");
+    		}
+    		else{
+    			label.setIcon(LIGHT_OFF);
+    			btnSwitch.setText("On");
+    		}
+    	}
+    	else if (property.equals("Failure")){            
+    		if (value)
+    			label.setIcon(LIGHT_FAIL);
+    	}
+    	getContentPane().validate();
+    	repaint();
+
+	}
+
+	
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetStatusAction.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetStatusAction.java
index 9b19b6a..06744ff 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetStatusAction.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetStatusAction.java
@@ -1,93 +1,93 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.actions;

-

-import java.util.Dictionary;

-import java.util.Hashtable;

-

-import org.osgi.service.upnp.UPnPAction;

-import org.osgi.service.upnp.UPnPStateVariable;

-

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class GetStatusAction implements UPnPAction {

-

-	final private String NAME = "GetStatus";

-	final private String RESULT_STATUS = "ResultStatus";

-	final private String[] OUT_ARG_NAMES = new String[]{RESULT_STATUS};

-	private UPnPStateVariable state;

-	private LightModel model;

-	

-	

-	public GetStatusAction(LightModel model,UPnPStateVariable state){

-		this.state = state;

-		this.model=model;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getName()

-	 */

-	public String getName() {

-		return NAME;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()

-	 */

-	public String getReturnArgumentName() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()

-	 */

-	public String[] getInputArgumentNames() {

-		

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()

-	 */

-	public String[] getOutputArgumentNames() {

-		return OUT_ARG_NAMES;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)

-	 */

-	public UPnPStateVariable getStateVariable(String argumentName) {

-		return state;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)

-	 */

-	public Dictionary invoke(Dictionary args) throws Exception {

-		boolean status = model.getStatus();

-		Hashtable result = new Hashtable();

-		result.put(RESULT_STATUS,new Boolean(status));

-		return result;

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.actions;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.osgi.service.upnp.UPnPAction;
+import org.osgi.service.upnp.UPnPStateVariable;
+
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class GetStatusAction implements UPnPAction {
+
+	final private String NAME = "GetStatus";
+	final private String RESULT_STATUS = "ResultStatus";
+	final private String[] OUT_ARG_NAMES = new String[]{RESULT_STATUS};
+	private UPnPStateVariable state;
+	private LightModel model;
+	
+	
+	public GetStatusAction(LightModel model,UPnPStateVariable state){
+		this.state = state;
+		this.model=model;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getName()
+	 */
+	public String getName() {
+		return NAME;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()
+	 */
+	public String getReturnArgumentName() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()
+	 */
+	public String[] getInputArgumentNames() {
+		
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()
+	 */
+	public String[] getOutputArgumentNames() {
+		return OUT_ARG_NAMES;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)
+	 */
+	public UPnPStateVariable getStateVariable(String argumentName) {
+		return state;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary args) throws Exception {
+		boolean status = model.getStatus();
+		Hashtable result = new Hashtable();
+		result.put(RESULT_STATUS,new Boolean(status));
+		return result;
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetTargetAction.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetTargetAction.java
index b40d2ef..8529ab3 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetTargetAction.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/GetTargetAction.java
@@ -1,93 +1,93 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.actions;

-

-import java.util.Dictionary;

-import java.util.Hashtable;

-

-import org.osgi.service.upnp.UPnPAction;

-import org.osgi.service.upnp.UPnPStateVariable;

-

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class GetTargetAction implements UPnPAction {

-

-	final private String NAME = "GetTarget";

-	final private String RET_TARGET_VALUE = "RetTargetValue";

-	final private String[] OUT_ARG_NAMES = new String[]{RET_TARGET_VALUE};

-	private UPnPStateVariable state;

-	private LightModel model;

-	

-	

-	public GetTargetAction(LightModel model,UPnPStateVariable state){

-		this.state = state;

-		this.model=model;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getName()

-	 */

-	public String getName() {

-		return NAME;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()

-	 */

-	public String getReturnArgumentName() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()

-	 */

-	public String[] getInputArgumentNames() {

-		

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()

-	 */

-	public String[] getOutputArgumentNames() {

-		return OUT_ARG_NAMES;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)

-	 */

-	public UPnPStateVariable getStateVariable(String argumentName) {

-		return state;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)

-	 */

-	public Dictionary invoke(Dictionary args) throws Exception {

-		boolean target = model.getTarget();

-		Hashtable result = new Hashtable();

-		result.put(RET_TARGET_VALUE,new Boolean(target));

-		return result;

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.actions;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.osgi.service.upnp.UPnPAction;
+import org.osgi.service.upnp.UPnPStateVariable;
+
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class GetTargetAction implements UPnPAction {
+
+	final private String NAME = "GetTarget";
+	final private String RET_TARGET_VALUE = "RetTargetValue";
+	final private String[] OUT_ARG_NAMES = new String[]{RET_TARGET_VALUE};
+	private UPnPStateVariable state;
+	private LightModel model;
+	
+	
+	public GetTargetAction(LightModel model,UPnPStateVariable state){
+		this.state = state;
+		this.model=model;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getName()
+	 */
+	public String getName() {
+		return NAME;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()
+	 */
+	public String getReturnArgumentName() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()
+	 */
+	public String[] getInputArgumentNames() {
+		
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()
+	 */
+	public String[] getOutputArgumentNames() {
+		return OUT_ARG_NAMES;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)
+	 */
+	public UPnPStateVariable getStateVariable(String argumentName) {
+		return state;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary args) throws Exception {
+		boolean target = model.getTarget();
+		Hashtable result = new Hashtable();
+		result.put(RET_TARGET_VALUE,new Boolean(target));
+		return result;
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/SetTargetAction.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/SetTargetAction.java
index cac1e44..ebf4677 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/SetTargetAction.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/actions/SetTargetAction.java
@@ -1,90 +1,90 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.actions;

-

-import java.util.Dictionary;

-

-import org.osgi.service.upnp.UPnPAction;

-import org.osgi.service.upnp.UPnPStateVariable;

-

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class SetTargetAction implements UPnPAction {

-

-	final private String NAME = "SetTarget";

-	final private String NEW_TARGET_VALUE = "NewTargetValue";

-	final private String[] IN_ARG_NAMES = new String[]{NEW_TARGET_VALUE};

-	private UPnPStateVariable state;

-	private LightModel model;

-	

-	

-	public SetTargetAction(LightModel model,UPnPStateVariable state){

-		this.state = state;

-		this.model=model;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getName()

-	 */

-	public String getName() {

-		return NAME;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()

-	 */

-	public String getReturnArgumentName() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()

-	 */

-	public String[] getInputArgumentNames() {

-		return IN_ARG_NAMES;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()

-	 */

-	public String[] getOutputArgumentNames() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)

-	 */

-	public UPnPStateVariable getStateVariable(String argumentName) {

-		return state;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)

-	 */

-	public Dictionary invoke(Dictionary args) throws Exception {

-		Boolean value = (Boolean) args.get(NEW_TARGET_VALUE);

-		model.doSwitch(value.booleanValue());

-		return null;

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.actions;
+
+import java.util.Dictionary;
+
+import org.osgi.service.upnp.UPnPAction;
+import org.osgi.service.upnp.UPnPStateVariable;
+
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class SetTargetAction implements UPnPAction {
+
+	final private String NAME = "SetTarget";
+	final private String NEW_TARGET_VALUE = "NewTargetValue";
+	final private String[] IN_ARG_NAMES = new String[]{NEW_TARGET_VALUE};
+	private UPnPStateVariable state;
+	private LightModel model;
+	
+	
+	public SetTargetAction(LightModel model,UPnPStateVariable state){
+		this.state = state;
+		this.model=model;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getName()
+	 */
+	public String getName() {
+		return NAME;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getReturnArgumentName()
+	 */
+	public String getReturnArgumentName() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getInputArgumentNames()
+	 */
+	public String[] getInputArgumentNames() {
+		return IN_ARG_NAMES;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getOutputArgumentNames()
+	 */
+	public String[] getOutputArgumentNames() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#getStateVariable(java.lang.String)
+	 */
+	public UPnPStateVariable getStateVariable(String argumentName) {
+		return state;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary args) throws Exception {
+		Boolean value = (Boolean) args.get(NEW_TARGET_VALUE);
+		model.doSwitch(value.booleanValue());
+		return null;
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/devices/LightDevice.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/devices/LightDevice.java
index 7065d42..c99bb9b 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/devices/LightDevice.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/devices/LightDevice.java
@@ -1,146 +1,146 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.devices;

-

-import java.net.InetAddress;

-import java.net.UnknownHostException;

-import java.util.Dictionary;

-import java.util.Properties;

-import java.util.Random;

-

-import org.osgi.framework.BundleContext;

-import org.osgi.service.upnp.UPnPDevice;

-import org.osgi.service.upnp.UPnPIcon;

-import org.osgi.service.upnp.UPnPService;

-

-import org.apache.felix.upnp.extra.util.UPnPEventNotifier;

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-import org.apache.felix.upnp.sample.binaryLight.LightUI;

-import org.apache.felix.upnp.sample.binaryLight.icons.LightIcon;

-import org.apache.felix.upnp.sample.binaryLight.services.PowerSwitchService;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class LightDevice implements UPnPDevice {

-

-	final private String DEVICE_ID = "uuid:Felix-BinaryLight+" +Integer.toHexString(new Random(System.currentTimeMillis()).nextInt());

-	private BundleContext context;

-	private LightModel model;

-	private LightUI ui;

-	private PowerSwitchService powerSwitch;

-	private UPnPService[] services;

-	private Dictionary dictionary;

-	private UPnPEventNotifier notifier;

-	

-	public LightDevice(BundleContext context) {

-		this.context=context;

-		model = new LightModel();

-		ui = new LightUI(model);

-		powerSwitch = new PowerSwitchService(model);

-		services = new UPnPService[]{powerSwitch};

-		setupDeviceProperties();

-		buildEventNotifyer();

-	}

-

-	public LightModel getModel(){

-		return model;

-	}

-	/**

-	 * 

-	 */

-	private void buildEventNotifyer() {

-		notifier = new UPnPEventNotifier(context,this,powerSwitch,model);

-	}

-

-	private void setupDeviceProperties(){

-		dictionary = new Properties();

-		dictionary.put(UPnPDevice.UPNP_EXPORT,"");

-		dictionary.put(

-		        org.osgi.service

-		        	.device.Constants.DEVICE_CATEGORY,

-	        	new String[]{UPnPDevice.DEVICE_CATEGORY}

-	        );

-		//dictionary.put(UPnPDevice.DEVICE_CATEGORY,new String[]{UPnPDevice.DEVICE_CATEGORY});

-		dictionary.put(UPnPDevice.FRIENDLY_NAME,"Felix OSGi-UPnP BinaryLight");

-		dictionary.put(UPnPDevice.MANUFACTURER,"Apache Software Foundation");

-		dictionary.put(UPnPDevice.MANUFACTURER_URL,"http://felix.apache.org");

-		dictionary.put(UPnPDevice.MODEL_DESCRIPTION,"A BinaryLight device to test OSGi to UPnP service export");

-		dictionary.put(UPnPDevice.MODEL_NAME,"Lucciola");

-		dictionary.put(UPnPDevice.MODEL_NUMBER,"1.0");

-		dictionary.put(UPnPDevice.MODEL_URL,"http://felix.apache.org/site/upnp-examples.html");

-		String port = context.getProperty("org.osgi.service.http.port");

-        InetAddress inet;

-		try {

-			inet = InetAddress.getLocalHost();

-	        String hostname = inet.getHostName();

-            //String hostname = inet.getHostAddress();

-		dictionary.put(UPnPDevice.PRESENTATION_URL,"http://"+hostname + ":"+port+"/upnp/binaryLight/");

-		} catch (UnknownHostException e) {

-			System.out.println("Warning: enable to cacth localhost name");

-		}

-		dictionary.put(UPnPDevice.SERIAL_NUMBER,"123456789");

-		dictionary.put(UPnPDevice.TYPE,"urn:schemas-upnp-org:device:BinaryLight:1");

-		dictionary.put(UPnPDevice.UDN,DEVICE_ID);

-		//dictionary.put(UPnPDevice.ID,dictionary.get(UPnPDevice.UDN));

-		dictionary.put(UPnPDevice.UPC,"1213456789");

-	}

-	

-	

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPDevice#getService(java.lang.String)

-	 */

-	public UPnPService getService(String serviceId) {

-		if  (serviceId.equals(powerSwitch.getId())) return powerSwitch;

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPDevice#getServices()

-	 */

-	public UPnPService[] getServices() {

-		return services;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPDevice#getIcons(java.lang.String)

-	 */

-	public UPnPIcon[] getIcons(String locale) {

-		UPnPIcon icon = new LightIcon();

-		return new UPnPIcon[]{icon} ;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPDevice#getDescriptions(java.lang.String)

-	 */

-	public Dictionary getDescriptions(String locale) {

-		return dictionary;

-	}

-

-	/**

-	 * 

-	 */

-	public void close() {

-		ui.dispose();

-		notifier.destroy();

-	}

-	

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.devices;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Dictionary;
+import java.util.Properties;
+import java.util.Random;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.upnp.UPnPDevice;
+import org.osgi.service.upnp.UPnPIcon;
+import org.osgi.service.upnp.UPnPService;
+
+import org.apache.felix.upnp.extra.util.UPnPEventNotifier;
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+import org.apache.felix.upnp.sample.binaryLight.LightUI;
+import org.apache.felix.upnp.sample.binaryLight.icons.LightIcon;
+import org.apache.felix.upnp.sample.binaryLight.services.PowerSwitchService;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class LightDevice implements UPnPDevice {
+
+	final private String DEVICE_ID = "uuid:Felix-BinaryLight+" +Integer.toHexString(new Random(System.currentTimeMillis()).nextInt());
+	private BundleContext context;
+	private LightModel model;
+	private LightUI ui;
+	private PowerSwitchService powerSwitch;
+	private UPnPService[] services;
+	private Dictionary dictionary;
+	private UPnPEventNotifier notifier;
+	
+	public LightDevice(BundleContext context) {
+		this.context=context;
+		model = new LightModel();
+		ui = new LightUI(model);
+		powerSwitch = new PowerSwitchService(model);
+		services = new UPnPService[]{powerSwitch};
+		setupDeviceProperties();
+		buildEventNotifyer();
+	}
+
+	public LightModel getModel(){
+		return model;
+	}
+	/**
+	 * 
+	 */
+	private void buildEventNotifyer() {
+		notifier = new UPnPEventNotifier(context,this,powerSwitch,model);
+	}
+
+	private void setupDeviceProperties(){
+		dictionary = new Properties();
+		dictionary.put(UPnPDevice.UPNP_EXPORT,"");
+		dictionary.put(
+		        org.osgi.service
+		        	.device.Constants.DEVICE_CATEGORY,
+	        	new String[]{UPnPDevice.DEVICE_CATEGORY}
+	        );
+		//dictionary.put(UPnPDevice.DEVICE_CATEGORY,new String[]{UPnPDevice.DEVICE_CATEGORY});
+		dictionary.put(UPnPDevice.FRIENDLY_NAME,"Felix OSGi-UPnP BinaryLight");
+		dictionary.put(UPnPDevice.MANUFACTURER,"Apache Software Foundation");
+		dictionary.put(UPnPDevice.MANUFACTURER_URL,"http://felix.apache.org");
+		dictionary.put(UPnPDevice.MODEL_DESCRIPTION,"A BinaryLight device to test OSGi to UPnP service export");
+		dictionary.put(UPnPDevice.MODEL_NAME,"Lucciola");
+		dictionary.put(UPnPDevice.MODEL_NUMBER,"1.0");
+		dictionary.put(UPnPDevice.MODEL_URL,"http://felix.apache.org/site/upnp-examples.html");
+		String port = context.getProperty("org.osgi.service.http.port");
+        InetAddress inet;
+		try {
+			inet = InetAddress.getLocalHost();
+	        String hostname = inet.getHostName();
+            //String hostname = inet.getHostAddress();
+		dictionary.put(UPnPDevice.PRESENTATION_URL,"http://"+hostname + ":"+port+"/upnp/binaryLight/");
+		} catch (UnknownHostException e) {
+			System.out.println("Warning: enable to cacth localhost name");
+		}
+		dictionary.put(UPnPDevice.SERIAL_NUMBER,"123456789");
+		dictionary.put(UPnPDevice.TYPE,"urn:schemas-upnp-org:device:BinaryLight:1");
+		dictionary.put(UPnPDevice.UDN,DEVICE_ID);
+		//dictionary.put(UPnPDevice.ID,dictionary.get(UPnPDevice.UDN));
+		dictionary.put(UPnPDevice.UPC,"1213456789");
+	}
+	
+	
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPDevice#getService(java.lang.String)
+	 */
+	public UPnPService getService(String serviceId) {
+		if  (serviceId.equals(powerSwitch.getId())) return powerSwitch;
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPDevice#getServices()
+	 */
+	public UPnPService[] getServices() {
+		return services;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPDevice#getIcons(java.lang.String)
+	 */
+	public UPnPIcon[] getIcons(String locale) {
+		UPnPIcon icon = new LightIcon();
+		return new UPnPIcon[]{icon} ;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPDevice#getDescriptions(java.lang.String)
+	 */
+	public Dictionary getDescriptions(String locale) {
+		return dictionary;
+	}
+
+	/**
+	 * 
+	 */
+	public void close() {
+		ui.dispose();
+		notifier.destroy();
+	}
+	
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/icons/LightIcon.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/icons/LightIcon.java
index 6f54e3b..75171b0 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/icons/LightIcon.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/icons/LightIcon.java
@@ -1,73 +1,73 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.icons;

-import java.io.IOException;

-import java.io.InputStream;

-

-import org.osgi.service.upnp.UPnPIcon;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class LightIcon implements UPnPIcon {

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getMimeType()

-	 */

-	public String getMimeType() {

-		return "image/gif";

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getWidth()

-	 */

-	public int getWidth() {

-		return 32;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getHeight()

-	 */

-	public int getHeight() {

-		return 32;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getSize()

-	 */

-	public int getSize() {

-		return 1072;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getDepth()

-	 */

-	public int getDepth() {

-		return 16;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPIcon#getInputStream()

-	 */

-	public InputStream getInputStream() throws IOException {

-		return LightIcon.class.getResourceAsStream("images/LightOn.gif");

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.icons;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.osgi.service.upnp.UPnPIcon;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class LightIcon implements UPnPIcon {
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getMimeType()
+	 */
+	public String getMimeType() {
+		return "image/gif";
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getWidth()
+	 */
+	public int getWidth() {
+		return 32;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getHeight()
+	 */
+	public int getHeight() {
+		return 32;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getSize()
+	 */
+	public int getSize() {
+		return 1072;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getDepth()
+	 */
+	public int getDepth() {
+		return 16;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPIcon#getInputStream()
+	 */
+	public InputStream getInputStream() throws IOException {
+		return LightIcon.class.getResourceAsStream("images/LightOn.gif");
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/services/PowerSwitchService.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/services/PowerSwitchService.java
index c4fc2ac..7904c05 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/services/PowerSwitchService.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/services/PowerSwitchService.java
@@ -1,118 +1,118 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.services;

-

-import java.util.HashMap;

-

-import org.osgi.service.upnp.UPnPAction;

-import org.osgi.service.upnp.UPnPService;

-import org.osgi.service.upnp.UPnPStateVariable;

-

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-import org.apache.felix.upnp.sample.binaryLight.actions.GetStatusAction;

-import org.apache.felix.upnp.sample.binaryLight.actions.GetTargetAction;

-import org.apache.felix.upnp.sample.binaryLight.actions.SetTargetAction;

-import org.apache.felix.upnp.sample.binaryLight.statevariables.StatusStateVariable;

-import org.apache.felix.upnp.sample.binaryLight.statevariables.TargetStateVariable;

-

-/* 

-* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

-*/

-

-public class PowerSwitchService implements UPnPService{

-	

-	final private String SERVICE_ID = "urn:upnp-org:serviceId:SwitchPower:1";

-	final private String SERVICE_TYPE = "urn:schemas-upnp-org:service:SwitchPower:1";

-	final private String VERSION ="1";

-

-	private LightModel model;

-	private UPnPStateVariable status,target;

-	private UPnPStateVariable[] states;

-	private HashMap actions = new HashMap();

-	

-	

-	public PowerSwitchService(LightModel model){

-		this.model = model;

-		status = new StatusStateVariable(model);

-		target = new TargetStateVariable();

-		this.states = new UPnPStateVariable[]{status,target};

-		

-		UPnPAction setTarget = new SetTargetAction(model,target);

-		UPnPAction getTarget = new GetTargetAction(model,target);

-		UPnPAction getStatus = new GetStatusAction(model,status);

-		actions.put(setTarget.getName(),setTarget);

-		actions.put(getTarget.getName(),getTarget);

-		actions.put(getStatus.getName(),getStatus);

-		

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getId()

-	 */

-	public String getId() {

-		return SERVICE_ID;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getType()

-	 */

-	public String getType() {

-		return SERVICE_TYPE;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getVersion()

-	 */

-	public String getVersion() {

-		return VERSION;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getAction(java.lang.String)

-	 */

-	public UPnPAction getAction(String name) {

-		return (UPnPAction)actions.get(name);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getActions()

-	 */

-	public UPnPAction[] getActions() {

-		return (UPnPAction[])(actions.values()).toArray(new UPnPAction[]{});

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getStateVariables()

-	 */

-	public UPnPStateVariable[] getStateVariables() {

-		return states;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPService#getStateVariable(java.lang.String)

-	 */

-	public UPnPStateVariable getStateVariable(String name) {

-		if (name.equals("Status"))

-			return status;

-		else if (name.equals("Target"))

-			return target;

-		else return null;

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.services;
+
+import java.util.HashMap;
+
+import org.osgi.service.upnp.UPnPAction;
+import org.osgi.service.upnp.UPnPService;
+import org.osgi.service.upnp.UPnPStateVariable;
+
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+import org.apache.felix.upnp.sample.binaryLight.actions.GetStatusAction;
+import org.apache.felix.upnp.sample.binaryLight.actions.GetTargetAction;
+import org.apache.felix.upnp.sample.binaryLight.actions.SetTargetAction;
+import org.apache.felix.upnp.sample.binaryLight.statevariables.StatusStateVariable;
+import org.apache.felix.upnp.sample.binaryLight.statevariables.TargetStateVariable;
+
+/* 
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+*/
+
+public class PowerSwitchService implements UPnPService{
+	
+	final private String SERVICE_ID = "urn:upnp-org:serviceId:SwitchPower:1";
+	final private String SERVICE_TYPE = "urn:schemas-upnp-org:service:SwitchPower:1";
+	final private String VERSION ="1";
+
+	private LightModel model;
+	private UPnPStateVariable status,target;
+	private UPnPStateVariable[] states;
+	private HashMap actions = new HashMap();
+	
+	
+	public PowerSwitchService(LightModel model){
+		this.model = model;
+		status = new StatusStateVariable(model);
+		target = new TargetStateVariable();
+		this.states = new UPnPStateVariable[]{status,target};
+		
+		UPnPAction setTarget = new SetTargetAction(model,target);
+		UPnPAction getTarget = new GetTargetAction(model,target);
+		UPnPAction getStatus = new GetStatusAction(model,status);
+		actions.put(setTarget.getName(),setTarget);
+		actions.put(getTarget.getName(),getTarget);
+		actions.put(getStatus.getName(),getStatus);
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getId()
+	 */
+	public String getId() {
+		return SERVICE_ID;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getType()
+	 */
+	public String getType() {
+		return SERVICE_TYPE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getVersion()
+	 */
+	public String getVersion() {
+		return VERSION;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getAction(java.lang.String)
+	 */
+	public UPnPAction getAction(String name) {
+		return (UPnPAction)actions.get(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getActions()
+	 */
+	public UPnPAction[] getActions() {
+		return (UPnPAction[])(actions.values()).toArray(new UPnPAction[]{});
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getStateVariables()
+	 */
+	public UPnPStateVariable[] getStateVariables() {
+		return states;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPService#getStateVariable(java.lang.String)
+	 */
+	public UPnPStateVariable getStateVariable(String name) {
+		if (name.equals("Status"))
+			return status;
+		else if (name.equals("Target"))
+			return target;
+		else return null;
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/StatusStateVariable.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/StatusStateVariable.java
index f28ea45..38c5f63 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/StatusStateVariable.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/StatusStateVariable.java
@@ -1,102 +1,102 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.statevariables;

-import org.osgi.service.upnp.UPnPLocalStateVariable;

-

-import org.apache.felix.upnp.sample.binaryLight.LightModel;

-

-public class StatusStateVariable implements UPnPLocalStateVariable{

-	

-	final private String NAME = "Status";

-	final private Boolean DEFAULT_VALUE = Boolean.FALSE;

-	private LightModel model;

-	

-	

-	public StatusStateVariable(LightModel model){

-		this.model= model;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getName()

-	 */

-	public String getName() {

-		return NAME;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getJavaDataType()

-	 */

-	public Class getJavaDataType() {

-		return Boolean.class;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getUPnPDataType()

-	 */

-	public String getUPnPDataType() {

-		return TYPE_BOOLEAN;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getDefaultValue()

-	 */

-	public Object getDefaultValue() {

-		return DEFAULT_VALUE;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getAllowedValues()

-	 */

-	public String[] getAllowedValues() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getMinimum()

-	 */

-	public Number getMinimum() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getMaximum()

-	 */

-	public Number getMaximum() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getStep()

-	 */

-	public Number getStep() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#sendsEvents()

-	 */

-	public boolean sendsEvents() {

-		return true;

-	}

-

-	public Object getCurrentValue() {

-		return new Boolean(model.getStatus());

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.statevariables;
+import org.osgi.service.upnp.UPnPLocalStateVariable;
+
+import org.apache.felix.upnp.sample.binaryLight.LightModel;
+
+public class StatusStateVariable implements UPnPLocalStateVariable{
+	
+	final private String NAME = "Status";
+	final private Boolean DEFAULT_VALUE = Boolean.FALSE;
+	private LightModel model;
+	
+	
+	public StatusStateVariable(LightModel model){
+		this.model= model;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getName()
+	 */
+	public String getName() {
+		return NAME;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getJavaDataType()
+	 */
+	public Class getJavaDataType() {
+		return Boolean.class;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getUPnPDataType()
+	 */
+	public String getUPnPDataType() {
+		return TYPE_BOOLEAN;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getDefaultValue()
+	 */
+	public Object getDefaultValue() {
+		return DEFAULT_VALUE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getAllowedValues()
+	 */
+	public String[] getAllowedValues() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getMinimum()
+	 */
+	public Number getMinimum() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getMaximum()
+	 */
+	public Number getMaximum() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getStep()
+	 */
+	public Number getStep() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#sendsEvents()
+	 */
+	public boolean sendsEvents() {
+		return true;
+	}
+
+	public Object getCurrentValue() {
+		return new Boolean(model.getStatus());
+	}
+}
diff --git a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/TargetStateVariable.java b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/TargetStateVariable.java
index cfa8918..c99a983 100644
--- a/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/TargetStateVariable.java
+++ b/upnp/samples/binarylight/src/main/java/org/apache/felix/upnp/sample/binaryLight/statevariables/TargetStateVariable.java
@@ -1,94 +1,94 @@
-/* 

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.felix.upnp.sample.binaryLight.statevariables;

-import org.osgi.service.upnp.UPnPStateVariable;

-

-public class TargetStateVariable implements UPnPStateVariable{

-	

-	final private String NAME = "Target";

-	final private Boolean DEFAULT_VALUE = Boolean.FALSE;

-	

-	

-	public TargetStateVariable(){

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getName()

-	 */

-	public String getName() {

-		return NAME;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getJavaDataType()

-	 */

-	public Class getJavaDataType() {

-		return Boolean.class;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getUPnPDataType()

-	 */

-	public String getUPnPDataType() {

-		return TYPE_BOOLEAN;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getDefaultValue()

-	 */

-	public Object getDefaultValue() {

-		return DEFAULT_VALUE;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getAllowedValues()

-	 */

-	public String[] getAllowedValues() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getMinimum()

-	 */

-	public Number getMinimum() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getMaximum()

-	 */

-	public Number getMaximum() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#getStep()

-	 */

-	public Number getStep() {

-		return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.service.upnp.UPnPStateVariable#sendsEvents()

-	 */

-	public boolean sendsEvents() {

-		return false;

-	}

-}

+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.felix.upnp.sample.binaryLight.statevariables;
+import org.osgi.service.upnp.UPnPStateVariable;
+
+public class TargetStateVariable implements UPnPStateVariable{
+	
+	final private String NAME = "Target";
+	final private Boolean DEFAULT_VALUE = Boolean.FALSE;
+	
+	
+	public TargetStateVariable(){
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getName()
+	 */
+	public String getName() {
+		return NAME;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getJavaDataType()
+	 */
+	public Class getJavaDataType() {
+		return Boolean.class;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getUPnPDataType()
+	 */
+	public String getUPnPDataType() {
+		return TYPE_BOOLEAN;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getDefaultValue()
+	 */
+	public Object getDefaultValue() {
+		return DEFAULT_VALUE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getAllowedValues()
+	 */
+	public String[] getAllowedValues() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getMinimum()
+	 */
+	public Number getMinimum() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getMaximum()
+	 */
+	public Number getMaximum() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#getStep()
+	 */
+	public Number getStep() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.osgi.service.upnp.UPnPStateVariable#sendsEvents()
+	 */
+	public boolean sendsEvents() {
+		return false;
+	}
+}