1 You can drag and drop a bundle jar file into the Desktop. When a bundle jar files is dropped into the Deskstop, it will be installed and started.

----

2 Individual bundle logs can be viewed. By selecting any bundle from the main bundle area, that bundle's log is displayed in the bundle detail area.

----

3 All bundle logs can be viewed in a single display. By unselecting all bundles in the main bundle area, all log entries are displayed in the bundle detail area.

Unselecting bundles can be done from the Desktop Edit menu

Edit - Unselect all

----

4 The Desktop can remotely control another framework If you install the optional SOAP remote connectivity kit, the Desktop can be used to remotely control another framework.

Read more about the SOAP kit at

https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_opt/soap/readme.txt

----

5 The console can be accessed remotely using telnet The consoletelnet bundle, which is installed by default allows remote acces to a framework using any telnet client.

----

6 Bundle packages need to be refreshed after update To make sure all exported classes are refreshed after a bundle update, you should refresh the packages. The Desktop bundle menu or console both have refresh commands.

Menu:

Bundle - Refresh bundle packages

Console:

> /framework refresh

----

7 The Knopflerfish Desktop can be run on other OSGi frameworks. Just install and start the Desktop and util bundle jars on the target framework.

----

8 Bundles can have custom icons in the Desktop view A bundle developer can specify a custom icon resource using the Application-Icon manifest attribute. Icon can use any image format as AWT/Swing can read, as JPEG, PNG or GIF.

This is how the desktop bundle sets its own icon in the "Large Icon" display.

If no icon is specified, is used for bundles with an activator, is used for bundles without an activator.

----

9 New Desktop views can be installed A developer can write a bundle exporting a Desktop plugin service. See org.knopflerfish.service.desktop javadoc for more info.

----

10 A bundle's start level can be changed Select the bundle, the the menu Bundle - Start level - [new level]

----

11 New console commands can be installed A developer can write a bundle defining new console commands. See

https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles/console/readme.txt

----

12 Masiakasaurus knopfleri probably ate fish The fossilized teeth of Masiakasaurus knopfleri indicates that the Madagascarian dinosaur could have eaten fish. And enjoyed it.

----

13 An online Knopflerfish discussion forum is available Sourceforge hosts a Knopflerfish discussion forum. See

https://sourceforge.net/forum/forum.php?forum_id=328005

----

14 Knopflerfish doesn't really mean anything But it's hard to spell and sounds nice

----

15 The System.out and System.err streams is logged in the OSGi log The System.out stream is logged on the system bundle as INFO events. The System.err stream is logged as ERROR events.

----

16 The optional commons-logging bundle provides the Apache Commons Logging API If you install the commons-logging bundle (from the optional package) a bundle (or lib) can use the Apache commons logging API with all logs sent to the OSGi log. The log entries are found on the log bundle.

See https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_opt/commons-logging/readme.txt

----

17 The entire Knopflerfish source is available in a Subversion repository Knopflerfish uses Subversion as version control system for all its files. The repository can be browsed at

https://www.knopflerfish.org/svn

For example, this entire tip file is available at

https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles/desktop/resources/tips.html

----

18 This Desktop is just another OSGi bundle The Desktop bundle is a normal bundle, using Swing to display it's interface.

As long as the JVM supports swing, nothing prevents you from writing your own swing bundles. Do close your windows yourself, though ;)

----

19 This dialog doesn't block the main window You can have the tip dialog open at the same time you work with the main Desktop window.

----

20 All system properties can be viewed from the Desktop Open the "Framework info" dialog using the Desktop Help menu.

Help - Framework info

----

21 All console commands have automatic shortcuts Each console command can be shortened to the shortest unique string.

For example "/framework update 15" can be shortened to

> /fr up 15

----

22 You can copy the log to the clipboard The log can be copied to the clipboard, by showing the log detail view and right-clicking on the log entries. Then select "Copy log to clipboard".

The log can then be pasted as text into your favorite editor.

----

23 The platform name is defined using a system property The system property org.osgi.provisioning.spid is used to define the platform name. This name is displayed in the Desktop window's title bar.

----

24 Detail information panes can be shown as separate windows Each of the Detail information panes can be displayed as a floating, resizable window by clicking on the small   float icon in the upper right corner.

The window can be restored by closing it, or by clicking on the float icon again.

----

25 The Bundle Repository can be used from the Desktop The Knopflerfish bundlerepository.jar bundle includes a Desktop plugin which allows access to bundles in OBR format.

OBR is a bundle repository format introduced by the Oscar OSGi project. The format consists of an XML file describing all available bundles and an OSGi OBR bundle which should be installed on an OSGi framework. When started, the OBR bundle can read the XML file, list bundles, and install bundles and their dependencies.