diff --git a/README.md b/README.md index 5fe776d37..d852e08d6 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ git clone https://github.com/4thline/cling.git mvn clean install ```` +If your build fails with Android/dex packaging errors, you forgot the clean. + * Use Cling in your pom.xml with: ```` @@ -31,7 +33,7 @@ mvn clean install org.fourthline.cling cling-core - 2.0-SNAPSHOT + 2.0.0 ```` diff --git a/core/pom.xml b/core/pom.xml index 52273d44a..4f9359e28 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -7,7 +7,7 @@ org.fourthline.cling cling - 2.0-SNAPSHOT + 2.0.0 Cling Core @@ -82,6 +82,7 @@ maven-site-plugin + 3.3 @@ -97,6 +98,16 @@ + + + + src/main/java + src/test/java + ../demo/android/browser/src/android + ../demo/android/browser/src/main/java + ../demo/android/light/src/main/java + + diff --git a/core/src/main/java/org/fourthline/cling/UpnpServiceImpl.java b/core/src/main/java/org/fourthline/cling/UpnpServiceImpl.java index 5ccd7415b..3c23e3b0c 100644 --- a/core/src/main/java/org/fourthline/cling/UpnpServiceImpl.java +++ b/core/src/main/java/org/fourthline/cling/UpnpServiceImpl.java @@ -37,7 +37,7 @@ * If no {@link UpnpServiceConfiguration} is provided it will automatically * instantiate {@link DefaultUpnpServiceConfiguration}. This configuration does not * work on Android! Use the {@link org.fourthline.cling.android.AndroidUpnpService} - * application component instead + * application component instead. *

*

* Override the various create...() methods to customize instantiation of protocol factory, diff --git a/core/src/main/java/org/fourthline/cling/android/AndroidUpnpServiceConfiguration.java b/core/src/main/java/org/fourthline/cling/android/AndroidUpnpServiceConfiguration.java index c90e9ea49..82a8b0a8b 100644 --- a/core/src/main/java/org/fourthline/cling/android/AndroidUpnpServiceConfiguration.java +++ b/core/src/main/java/org/fourthline/cling/android/AndroidUpnpServiceConfiguration.java @@ -44,7 +44,7 @@ * client and server. The servlet context path for UPnP is set to /upnp. *

*

- * The kxml2 implementation of org.xmlpull is available Android, therefore + * The kxml2 implementation of org.xmlpull is available on Android, therefore * this configuration uses {@link RecoveringUDA10DeviceDescriptorBinderImpl}, * {@link RecoveringSOAPActionProcessorImpl}, and {@link RecoveringGENAEventProcessorImpl}. *

diff --git a/core/src/main/java/org/fourthline/cling/model/meta/Device.java b/core/src/main/java/org/fourthline/cling/model/meta/Device.java index 4ba122966..a32f3c00f 100644 --- a/core/src/main/java/org/fourthline/cling/model/meta/Device.java +++ b/core/src/main/java/org/fourthline/cling/model/meta/Device.java @@ -224,7 +224,9 @@ public S[] findServices(ServiceType serviceType) { } protected D find(UDN udn, D current) { - if (current.getIdentity().getUdn().equals(udn)) return current; + if (current.getIdentity() != null && current.getIdentity().getUdn() != null) { + if (current.getIdentity().getUdn().equals(udn)) return current; + } if (current.hasEmbeddedDevices()) { for (D embeddedDevice : (D[]) current.getEmbeddedDevices()) { D match; @@ -236,9 +238,9 @@ protected D find(UDN udn, D current) { protected Collection findEmbeddedDevices(D current) { Collection devices = new HashSet(); - if (!current.isRoot()) { + if (!current.isRoot() && current.getIdentity().getUdn() != null) devices.add(current); - } + if (current.hasEmbeddedDevices()) { for (D embeddedDevice : (D[]) current.getEmbeddedDevices()) { devices.addAll(findEmbeddedDevices(embeddedDevice)); diff --git a/core/src/site/xhtml/index.xhtml b/core/src/site/xhtml/index.xhtml index 619baca4a..60f3be56e 100644 --- a/core/src/site/xhtml/index.xhtml +++ b/core/src/site/xhtml/index.xhtml @@ -92,7 +92,7 @@ org.fourthline.cling cling-core - 2.0 + 2.0.0 ]]> diff --git a/core/src/test/resources/default-logging.properties b/core/src/test/resources/default-logging.properties index 0fadee707..88b52895f 100644 --- a/core/src/test/resources/default-logging.properties +++ b/core/src/test/resources/default-logging.properties @@ -15,10 +15,6 @@ handlers=org.seamless.util.logging.SystemOutLoggingHandler #org.fourthline.cling.transport.spi.DatagramProcessor.level=INFO #org.fourthline.cling.transport.spi.MulticastReceiver.level=INFO -# Apps -#org.fourthline.cling.bridge.level=FINER -#org.fourthline.cling.workbench.bridge.level=FINER - # Always keep this as WARNING with Workbench etc. apps, we # have an endless loop in how we log/intercept CDI beans... org.jboss.weld.Bean.level=WARNING diff --git a/demo/android/browser/pom.xml b/demo/android/browser/pom.xml index ac901d9f3..fc1d89766 100755 --- a/demo/android/browser/pom.xml +++ b/demo/android/browser/pom.xml @@ -5,7 +5,7 @@ org.fourthline.cling cling-demo-android - 2.0-SNAPSHOT + 2.0.0 Cling Demo Android Browser diff --git a/demo/android/light/pom.xml b/demo/android/light/pom.xml index d3b3614d3..77302f84c 100755 --- a/demo/android/light/pom.xml +++ b/demo/android/light/pom.xml @@ -5,7 +5,7 @@ org.fourthline.cling cling-demo-android - 2.0-SNAPSHOT + 2.0.0 Cling Demo Android Light diff --git a/demo/android/pom.xml b/demo/android/pom.xml index d3e838de1..ab33dff77 100755 --- a/demo/android/pom.xml +++ b/demo/android/pom.xml @@ -6,7 +6,7 @@ org.fourthline.cling cling-demo - 2.0-SNAPSHOT + 2.0.0 Cling Demo Android diff --git a/demo/pom.xml b/demo/pom.xml index ae884ee12..9078751dd 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -7,7 +7,7 @@ org.fourthline.cling cling - 2.0-SNAPSHOT + 2.0.0 Cling Demo @@ -31,6 +31,13 @@ true + + maven-site-plugin + 3.3 + + true + + diff --git a/distribution/pom.xml b/distribution/pom.xml index 5646023f0..21affeac7 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -7,7 +7,7 @@ cling org.fourthline.cling - 2.0-SNAPSHOT + 2.0.0 Cling Distribution @@ -23,6 +23,13 @@ true + + maven-site-plugin + 3.3 + + true + + diff --git a/distribution/src/dist/README.txt b/distribution/src/dist/README.txt index b3a4a7590..5cba77f6d 100644 --- a/distribution/src/dist/README.txt +++ b/distribution/src/dist/README.txt @@ -42,8 +42,6 @@ Add this dependency to your pom.xml: ${project.version} -The current unstable version is 2.0-SNAPSHOT. - For Cling on Android with Maven, please see the pom.xml example in the demo/android/ folder. @@ -51,11 +49,7 @@ demo/android/ folder. BUILDING CLING ============================================================================== -To build the source of 2.0-SNAPSHOT, clone it with: - - git clone https://github.com/4thline/cling.git' - -Run "mvn install" to build the JAR files and store them in your local repo. +See https://github.com/4thline/cling ============================================================================== DEPENDENCIES @@ -63,21 +57,28 @@ DEPENDENCIES Required dependencies of Cling Core (included with this distribution): - +- org.fourthline.cling:cling-core:jar:2.0-SNAPSHOT - +- org.seamless:seamless-util:jar:1.0-alpha3 - +- org.seamless:seamless-http:jar:1.0-alpha3 - \- org.seamless:seamless-xml:jar:1.0-alpha3 + +- org.fourthline.cling:cling-core:jar:2.0.0 + +- org.seamless:seamless-util:jar:1.0.0 + +- org.seamless:seamless-http:jar:1.0.0 + \- org.seamless:seamless-xml:jar:1.0.0 Additional dependencies of Cling Core on Android (not included): - TODO - jetty + +- org.eclipse.jetty:jetty-server:jar:8.1.8.v20121106 + | +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016 + | +- org.eclipse.jetty:jetty-continuation:jar:8.1.8.v20121106 + | \- org.eclipse.jetty:jetty-http:jar:8.1.8.v20121106 + | \- org.eclipse.jetty:jetty-io:jar:8.1.8.v20121106 + | \- org.eclipse.jetty:jetty-util:jar:8.1.8.v20121106 + +- org.eclipse.jetty:jetty-servlet:jar:8.1.8.v20121106 + | \- org.eclipse.jetty:jetty-security:jar:8.1.8.v20121106 + +- org.eclipse.jetty:jetty-client:jar:8.1.8.v20121106 +- org.slf4j:slf4j-jdk14:jar:1.6.1 (or any other SLF4J implementation) \- org.slf4j:slf4j-api:jar:1.6.1 If you need the fixed Android java.util.logging Handler: - +- org.seamless:seamless-android:jar:1.0-alpha3 + +- org.seamless:seamless-android:jar:1.0.0 \- android.support:compatibility-v13:jar:10 (Exclude this in pom.xml) WARNING: Jetty JAR files each contain an 'about.html' file, you will get @@ -89,7 +90,7 @@ JAR files and remove 'about.html'. Feedback, bug reports: http://4thline.org/projects/mailinglists.html -Copyright 2013, 4th Line GmbH, Switzerland, http://4thline.com/ +Copyright 2014, 4th Line GmbH, Switzerland, http://4thline.com/ You may at your option receive a license to this program under EITHER the terms of the GNU Lesser General Public License (LGPL) OR the diff --git a/mediarenderer/pom.xml b/mediarenderer/pom.xml index 7925ef4bd..dac6890a9 100644 --- a/mediarenderer/pom.xml +++ b/mediarenderer/pom.xml @@ -7,7 +7,7 @@ org.fourthline.cling cling - 2.0-SNAPSHOT + 2.0.0 Cling MediaRenderer @@ -55,6 +55,7 @@ maven-site-plugin + 3.3 diff --git a/mediarenderer/src/site/xhtml/index.xhtml b/mediarenderer/src/site/xhtml/index.xhtml index 2c32cc600..48d38a2d6 100644 --- a/mediarenderer/src/site/xhtml/index.xhtml +++ b/mediarenderer/src/site/xhtml/index.xhtml @@ -36,10 +36,10 @@

- Note: The OS X version will look for GStreamer libraries in /opt/local/lib (default location for MacPorts install), - the JAR version requires that you specify the location of your gstreamer install as a system property (e.g. on Linux): - java -Djna.library.path=/usr/lib -jar cling-mediarenderer.jar + Note: Specify the location of your gstreamer install as a system property (e.g. on Linux):

+
+java -Djna.library.path=/usr/lib -jar cling-mediarenderer.jar

If you want to run the MediaRenderer's display in windowed mode (not fullscreen), start it with the -w argument. @@ -51,10 +51,7 @@

  • - Mac OS X desktop application (Snow Leopard required) -
  • -
  • - JDK 1.6 desktop application (any OS) + JDK 1.6 desktop application (any OS)
  • Cling main distribution (incl. Cling Core library) diff --git a/pom.xml b/pom.xml index 5322e5aba..fbcbe6913 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,25 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + + org.fourthline.cling cling pom - 2.0-SNAPSHOT + 2.0.0 core @@ -67,8 +80,8 @@ 6 6 - 1.0-alpha3 - 1.1-SNAPSHOT + 1.0.0 + 1.1.0 6.2 4.2.2 4.2.3 @@ -94,7 +107,7 @@ 4thline-repo http://4thline.org/m2 - true + false @@ -111,7 +124,7 @@ 4thline-repo http://4thline.org/m2 - true + false @@ -191,16 +204,10 @@ 2.4.1 - - - maven-war-plugin - 2.1 - - maven-site-plugin - 3.0-beta-3 + 3.3 @@ -218,13 +225,6 @@ 1.4.4 - - - org.codehaus.mojo - osxappbundle-maven-plugin - 1.0-alpha-2 - - org.fourthline.lemma @@ -302,13 +302,4 @@ - - diff --git a/support/pom.xml b/support/pom.xml index aed63b556..3dde2c0d4 100644 --- a/support/pom.xml +++ b/support/pom.xml @@ -7,7 +7,7 @@ org.fourthline.cling cling - 2.0-SNAPSHOT + 2.0.0 Cling Support @@ -72,6 +72,7 @@ maven-site-plugin + 3.3 diff --git a/support/src/site/xhtml/index.xhtml b/support/src/site/xhtml/index.xhtml index 345cf1f61..49e7b5f78 100644 --- a/support/src/site/xhtml/index.xhtml +++ b/support/src/site/xhtml/index.xhtml @@ -100,7 +100,7 @@ org.fourthline.cling cling-support - 1.0.5 + 2.0.0 ]]> diff --git a/website/pom.xml b/website/pom.xml index 2f5be308c..f9e63f0b1 100644 --- a/website/pom.xml +++ b/website/pom.xml @@ -7,7 +7,7 @@ cling org.fourthline.cling - 2.0-SNAPSHOT + 2.0.0 Cling Website @@ -24,6 +24,11 @@ + + maven-site-plugin + 3.3 + + maven-antrun-plugin diff --git a/website/src/site/resources/changelog.txt b/website/src/site/resources/changelog.txt deleted file mode 100644 index 43947be95..000000000 --- a/website/src/site/resources/changelog.txt +++ /dev/null @@ -1,8 +0,0 @@ -Changelog (http://4thline.org/projects/cling/) -============================================================================== - -2.0-beta1 (2011-xx-xx) - -- First beta release - ------------------------------------------------------------------------------- diff --git a/website/src/site/site.xml b/website/src/site/site.xml index e2ab55e31..d84c8fc75 100644 --- a/website/src/site/site.xml +++ b/website/src/site/site.xml @@ -18,7 +18,6 @@ - @@ -44,7 +43,6 @@ - diff --git a/website/src/site/xhtml/faq.xhtml b/website/src/site/xhtml/faq.xhtml index eafffe146..c4f472c9c 100644 --- a/website/src/site/xhtml/faq.xhtml +++ b/website/src/site/xhtml/faq.xhtml @@ -25,13 +25,13 @@

    Cling Core is compatible with the - UPnP Device Architecture 1.0. + UPnP Device Architecture 1.0.

    - Can I use Cling to access a UPnP/DLNA MediaServer in Android? + Can I use Cling to access a UPnP/DLNA MediaServer in Android?
    @@ -45,7 +45,7 @@
    - Can I use Cling in my commercial application or device? + Can I use Cling in my commercial application or device?
    @@ -61,20 +61,40 @@ Free Software.
  • - You have to allow replacement of the Cling library in your distributed application. This means - replacement of the JAR file (e.g. in a WAR or EAR package) or replacement of Cling .class files - in the Android APK package (dex2jar). You can not lock your distribution package with any kind - of obfuscation or DRM scheme. + You have to allow replacement of the Cling library in your distributed application. This + means allowing replacement of the Cling JAR or JVM binary class file(s) in, for example, a + WAR or EAR package.
  • - If you modify Cling source code, and you distribute a binary compiled from this modified source - code, you have to distribute your changed source code as well under the LGPL (upon request). - Typically this means you contribute your changes back to the Cling project, to be included in - an official Cling release. + For Cling 1.x, the following exception for static linking of an executable + (see LGPLv3 clause 4 or LGPLv2 clause 6b) + applies to Cling + usage within Android applications and the DEX instead of the JVM binary + format: Converting Cling's binary JVM class files to the DEX format, and distributing a + combined work as an Android APK does not affect the licensing of other resources within that + DEX or APK archive. You must however allow re-packaging/conversion of the DEX and APK with + tools such as dex2jar. Anyone receiving your + APK must be able to replace the Cling binary code with a compatible version. You can + not lock your APK with any kind of obfuscation or DRM scheme, or otherwise prevent + unpacking and reassembly of the DEX containing Cling binaries. Alternatively, consider + + dynamic loading of libraries on Android. +
  • +
  • + For Cling 2.x, you may at your option license Cling under CDDL instead of the LGPL. You + can convert to DEX and package Cling 2.x within an APK without affect on other files in + that APK. You can obfuscate the source in the APK and lock it with digital restrictions. +
  • +
  • + If you modify Cling source code, and you distribute a binary compiled from this modified + source code, you have to distribute your changed source code as well under the LGPL or + CDDL (upon request). Typically this means you contribute your changes back to the Cling + project, to be included in an official Cling release.

- Contact us if you have questions about the licensing of Cling. + Contact us if you have + questions about the licensing of Cling and/or require a proprietary license.

@@ -85,7 +105,7 @@
- What are the dependencies of Cling Core? + What are the dependencies of Cling Core?
@@ -93,27 +113,27 @@ Cling Core is distributed as a single JAR file. It only has one other dependency, the seamless-* libraries. All JAR files are typically packaged next to each other in the ZIP distribution. You - have to add these JAR files to your classpath. + have to add them to your classpath.

- How can I access the services of a device? + How can I access the services of a device?

First write a control point and a RegistryListener as explained in - the manual. Then call device.getServices() when a device has + the manual. Then call device.getServices() when a device has been discovered.

- Cling doesn't work if I start my application on Tomcat/JBoss/Glassfish/etc?! + Cling doesn't work if I start my application on Tomcat/JBoss/Glassfish/etc?!
@@ -123,14 +143,15 @@ an old and badly designed part of the JDK: Only "one application" in the whole JVM can configure it. You have to switch Cling to an alternative HTTP client, e.g. the other bundled implementation based on Apache HTTP Core. This is explained - in more detail in + in more detail in the user manual.

- Is IPv6 supported? + Is IPv6 supported?
@@ -146,7 +167,7 @@
- I don't see debug log messages on Android? + I don't see debug log messages on Android?
@@ -154,7 +175,46 @@ The java.util.logging implementation on Android is broken, it does not allow you to print debug-level messages easily. See this - discussion for a simple solution. + discussion for a simple solution. +

+
+
+ + + Where can I find the source for Cling 1.x and teleal-common? + +
+
+

+ Here. +

+
+
+ + + Wich version of Android (API) is supported by Cling? + +
+
+

+ Cling 1.0 supports Android 2.1. With Cling 2.0, we currently require platform level 15 (Android 4.0.3). +

+
+
+ + + I get a lock acquisition timeout exception? + +
+
+

+ Your service receives a subscription, then this happens: +

+
RuntimeException at org.teleal.cling.protocol.sync.ReceivingSubscribe.responseSent(ReceivingSubscribe.java:177)
+

+ Your service was already being used by something else and didn't give up the lock during the 500 + millisecond default wait time. Increase the wait time by overriding DefaultServiceManager in + LocalService. Or don't block the service action/methods for a long time.

diff --git a/website/src/site/xhtml/index.xhtml b/website/src/site/xhtml/index.xhtml index 0eaadaf94..cc5a72a8f 100644 --- a/website/src/site/xhtml/index.xhtml +++ b/website/src/site/xhtml/index.xhtml @@ -23,17 +23,13 @@ -->

- The current release of Cling is 2.0-beta1 (2011-xx-xx), see - the Changelog for a summary of improvements and - the Road Map for future plans. You can - also find snapshot builds of the current development - trunk here or include version - 2.0-SNAPSHOT as a dependency in your Maven pom.xml. + The current release of Cling is 2.0.0 (2014-11-05): Download

Read this - chapter of the manual for a simple Cling usage example. + chapter of the manual for a simple Cling usage example. Have a look at the + Android application examples.

@@ -50,11 +46,7 @@ Cling Core to expose services with a UPnP remoting interface, or to write control point applications that discover UPnP devices and utilize their services. You can also integrate Cling Core as - an Android UPnP/DLNA library in your applications (platform level 7/2.1 required). - The full source code of the Android UPnPBrowser example of the manual can be - found here. You can see the application in - action in this - video. + an Android UPnP/DLNA library in your applications (platform level 15/4.0 required).

@@ -71,8 +63,7 @@
Cling Workbench

- A desktop application for browsing UPnP devices and interacting with their services, including - an HTTP gateway and WAN/LAN bridge. + A desktop application for browsing UPnP devices and interacting with their services.

diff --git a/website/src/site/xhtml/inproduction.xhtml b/website/src/site/xhtml/inproduction.xhtml index c188c9f9b..bad820ac0 100644 --- a/website/src/site/xhtml/inproduction.xhtml +++ b/website/src/site/xhtml/inproduction.xhtml @@ -19,27 +19,89 @@
  • - BubbleDS + BubbleDS

    - A UPnP control point for Android and LinnDS + A UPnP control point for Android and LinnDS streamer appliances.

  • - BubbleUPnP + BubbleUPnP

    - A generic UPnP/DLNA audio control point and renderer for Android. + A generic UPnP/DLNA media control point and renderer for Android.

  • - Jinzora UPnP + Jinzora UPnP

    The Jinzora music management and streaming server can be accessed through a UPnP MediaServer gateway written with Cling. The Android client also uses Cling to access the MediaServer.

  • + +
  • + MovieBrowser UPnP +

    + MovieBrowser is a movie manager to use with your favorite player on your Android tablet. Manage your videos anywhere on + your network (Samba & UPnP/DLNA) and watch them with your favorite player or using the unique Play-To feature (Android airplay). +

    +
  • + +
  • + Private Dancer +

    + Private Dancer is a UPnP/DLNA Media Renderer for Android. It is designed to be used on a device attached to speakers + and power. Unlike other UPnP Android applications, Private Dancer is designed for always-on (headless) use. +

    +
  • + +
  • + MediaHouse +

    + Stream music, videos, movies and pictures from PC, NAS or any other device running UPnP/DLNA compliant media server to + your Android phone/handset/tablet. +

    +
  • + +
  • + Digital Photo Frame Slideshow +

    + Turn your Android device in a digital photo viewer showing a slideshow of local files, photos from + network shares (Samba/SMB) or pictures from a UPnP server. +

    +
  • + +
  • + I-Frame Home +

    + Full HD digital photo frame, picture-like design, displays files located in internal memory, LAN or + Internet. +

    +
  • + +
  • + MediaConnect +

    + MediaConnect enables you to connect mediaservers with mediaplayers and also remote control these mediaplayers within a WLAN. +

    +
  • + +
  • + MediaConnect +

    + MediaConnect enables you to connect mediaservers with mediaplayers and also remote control these mediaplayers within a WLAN. +

    +
  • + +
  • + ShuffleBox +

    + Use your smartphone or tablet as a remote control and play music on your laptop, mobile phone or any other DNLA device. +

    +
  • +
diff --git a/website/src/site/xhtml/roadmap.xhtml b/website/src/site/xhtml/roadmap.xhtml index d8aad9cc3..7fa615311 100644 --- a/website/src/site/xhtml/roadmap.xhtml +++ b/website/src/site/xhtml/roadmap.xhtml @@ -21,20 +21,20 @@

- Cling 2.0 + Cling 2.0.1

  • - Integration with and for CDI (IN PROGRESS) -

    - Currently all modules (transport, protocol, registry, binding) of Cling are wired through - constructor injection from a single UpnpService entry point constructor. We can keep this - flexibility (easy overriding by developers of create() methods) but at the same time enable - dependency injection frameworks. This is mostly adding CDI annotations on core classes and - testing Cling Core with Weld. -

    + Minor bugfixes
  • +
+ +

+ Future +

+ +
  • Client/server profile system

    @@ -55,10 +55,10 @@

  • - GENA eventing support in the HTTP bridge + GENA eventing support in (and reactivating) the HTTP bridge

    This has already been designed and needs to be implemented, - see Bridge Architecture.graffle in SVN. + see Bridge Architecture.graffle.

diff --git a/workbench/pom.xml b/workbench/pom.xml index 97d5d8dad..463f820be 100644 --- a/workbench/pom.xml +++ b/workbench/pom.xml @@ -7,7 +7,7 @@ org.fourthline.cling cling - 2.0-SNAPSHOT + 2.0.0 Cling Workbench @@ -45,6 +45,7 @@ maven-site-plugin + 3.3 diff --git a/workbench/src/site/resources/images/WAN Bridge.png b/workbench/src/site/resources/images/WAN Bridge.png deleted file mode 100644 index 0d7bf4fef..000000000 Binary files a/workbench/src/site/resources/images/WAN Bridge.png and /dev/null differ diff --git a/workbench/src/site/xhtml/index.xhtml b/workbench/src/site/xhtml/index.xhtml index d33e56063..70647ea7c 100644 --- a/workbench/src/site/xhtml/index.xhtml +++ b/workbench/src/site/xhtml/index.xhtml @@ -28,10 +28,7 @@ - - - WAN Bridge and HTTP Gateway - - - - -
- -

- The WAN Bridge & HTTP Gateway in the Cling Workbench -

- -

- The Cling Workbench features an HTTP Gateway, so you can access all your UPnP devices - with a webbrowser, either while you are at home or even remotely. The HTTP interface is RESTful and - utilizes XHTML, thus enabling HATEOAS and easy - programmatic client access. (It's not "pretty" for humans.) -

- -

- Furthermore, the WAN Bridge maintains a durable live connection between two LANs, typically - over a WAN. Endpoint connection management is implemented with RESTful HTTP interfaces. In other words, - you can discover and control your friends UPnP devices over the public Internet, and they - can discover and control yours. Devices from a remote LAN appear on your LAN and they act like they are - connected directly on your LAN. (At this time GENA eventing is not supported and subscriptions - to bridged remote devices will result in an error.) -

- - WAN Bridge - -

- The following screenshot shows the WAN Bridge configuration panel in the Cling Workbench with - two connected endpoints. The local Workbench is connected to two other Workbench instances. - In the background you see a proxy MediaServer device from one of the - connected endpoints: -

- - Cling Workbench Screenshot 5 - -

- If available, the Workbench can create a NAT port mapping on your router and discover the - external IP address automatically. After starting the bridge you may access the local URL with - your webbrowser immediately, or send it to a friend who also has a running bridge. One of you will - then create the link by entering and connecting to the other's URL. It doesn't matter who sends - the URL and who creates the link, all UPnP devices from one LAN will be visible on the other LAN, - respectively. Either side may disconnect the link at any time. -

- -

- All communication by default is in clear-text with plain HTTP, no HTTPS or other protocols. Security - is based on an authentication key embedded in the URL and all HTTP messages between two bridge - endpoints. -

- -

Starting the bridge from the command-line

- -

- The extra package - cling-workbench-bridge-cli.jar provides a command-line version of the WAN Bridge. You can start it directly - from your shell: -

- -
- -

- The options are the LAN interface for binding the HTTP gateway (192.168.0.123) and - the WAN-reachable hostname and port, which will be send to other endpoints for connecting. - The optional -demo argument can be provided to start a demo Binary Light device on - the UPnP stack that runs the bridge, this helps with testing. -

- -

- Security is also based on an authentication key, so you have to watch the startup log messages of the - bridge for the generated key: -

- -
- -

- No port mapping on your NAT router will be created, you have to ensure that the configured WAN - hostname and port is reachable and mapped to the LAN host (and same port) on which the HTTP gateway - is bound. Open the local URL in your webbrowser to test this. Then access the minimal interface for - bridge link management with http://my.wan.hostname.and.port:8123/link?auth=[key]. -

- -
- - - - -