-
Notifications
You must be signed in to change notification settings - Fork 0
/
eclipse_plugin.html
369 lines (327 loc) · 15.3 KB
/
eclipse_plugin.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- This is a generated file. Do not edit. -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="">
<meta name="title" content="Knopflerfish Eclipse Plugin">
<title>Knopflerfish Eclipse Plugin</title>
<link href="css/knopflerfish2.3.2.css" type="text/css" rel="stylesheet">
<link rel="shortcut icon" href="images/favicon.png">
<script type="text/javascript" src="scripts/google-analytics.js"></script>
<script type="text/javascript" src="scripts/menu.js"></script>
<script type="text/javascript" src="scripts/current_release.js"></script>
</head>
<body>
<div id="main">
<a name="top"></a>
<div id="header">
<div id="header_logo">
<a href="index.html"><img src="images/kf300_black.png" border="0" alt="knopflerfish logo"></a>
</div>
<div id="header_ad">
<div class="header_stylish">
Open Source OSGi Service Platform Maintained by<br>
<a href="http://www.makewave.com">
<img style="margin-top: 4px;" src="images/makewave_logo.png" alt="Makewave" border="0">
</a>
</div>
</div>
<div class="break"></div>
<div id="header_menu">
<a class="button_closed" href="index.html">Home</a>
<a class="button_closed" href="news.html">News</a>
<a class="button_closed" href="download.html">Download</a>
<a class="button_open" href="documentation.html">Documentation</a>
<a class="button_closed" href="about.html">About</a>
</div>
</div>
<div id="leftmenu">
<form style="padding-left: 0px;" class="searchform" method="GET" action="http://www.google.com/search">
<input type="hidden" name="ie" value="UTF-8">
<input type="hidden" name="oe" value="UTF-8">
<input type="hidden" name="domains" value="www.knopflerfish.org">
<input type="hidden" name="sitesearch" value="www.knopflerfish.org">
<input TYPE="text" value="Search site" name="q" size="20" maxlength="255"
onFocus="clearText(this)" onBlur="clearText(this)"
class="searchfield">
</form>
<div id="menu_news"><div class="nrow">
<img src="images/arrow_closed.gif" alt="" onclick="setMenuById(this.parentNode.parentNode.id, 'toggle')">
<a class="nrow_closed" href="news.html">News</a></div>
<div class="nrow1_closed"><a href="news_archive.html">Archive</a></div>
<!-- <div class="nrow1_closed"><a href="http://www.knopflerfish.org/mailman/listinfo">Mailing lists</a></div> -->
<div class="nrow1_off_closed">Mailing lists</div>
</div>
<div id="menu_download"><div class="nrow"><img src="images/arrow_closed.gif" alt="" onclick="setMenuById(this.parentNode.parentNode.id, 'toggle')"><a class="nrow_closed" href="download.html">Download</a></div>
<div class="nrow1_closed"><a href="license.html">License</a></div>
<!--
<div class="nrow1_closed"><a href="/snapshots/">Nightly builds</a></div>
<div class="nrow1_closed"><a href="/snapshots/current_trunk/junit_grunt/index.xml">Nightly tests</a></div>
-->
<div class="nrow1_off_closed">Nightly builds (off)</div>
<div class="nrow1_off_closed">Nightly tests (off)</div>
<!-- <div class="nrow1_closed"><a href="/releases/current/osgi/jars/index.xml">Bundle repository</a></div> -->
<div class="nrow1_closed"><a href="/releases/current/osgi/jars/index.html"
onclick="currentReleasePath(this, '/osgi/jars/index.xml')"> Bundle repository</a></div>
<div class="nrow1_closed"><a href="git_info.html">Source code (git)</a></div>
<div class="nrow1_closed"><a href="archive.html">Archived releases</a></div>
<div class="nrow1_closed"><a href="maven.html">Maven repository</a></div>
</div>
<div id="menu_docs"><div class="nrow"><img src="images/arrow_open.gif" alt="" onclick="setMenuById(this.parentNode.parentNode.id, 'toggle')"><a class="nrow_open" href="documentation.html">Documentation</a></div>
<div class="nrow1_open"><a href="kf6_osgi_r6.html">About Knopflerfish 6</a></div>
<div class="nrow1_open"><a href="kf5_osgi_r5.html">About Knopflerfish 5</a></div>
<div class="nrow1_open"><a href="kf4_osgi_r4_v4.3.html">About Knopflerfish 4</a></div>
<div class="nrow1_open"><a href="kf3_osgi_r4_v4.2.html">About Knopflerfish 3</a></div>
<div class="nrow1_open"><a href="osgi_java_compatibility_guide.html">Java Compatability</a></div>
<!-- <div class="nrow1_open"><a href="/releases/current/docs/index.html">Manual (KF 6.0.0)</a></div> -->
<div class="nrow1_open"><a href="/releases/current/docs/index.html"
onclick="currentReleasePath(this, '/docs/index.html')">Manual (KF 6.0.0)</a></div>
<!--
<div class="nrow1_label_open">Shortcuts</div>
<div class="nrow1_indent_open"><a href="/releases/current/docs/installing.html">Installing</a></div>
<div class="nrow1_indent_open"><a href="/releases/current/docs/running.html">Running</a></div>
<div class="nrow1_indent_open"><a href="/releases/current/docs/building.html">Building</a></div>
<div class="nrow1_indent_open"><a href="/releases/current/docs/programming.html">Programming</a></div>
<div class="nrow1_indent_open"><a href="/releases/current/docs/testing.html">Testing</a></div>
-->
<!-- <div class="nrow1_open"><a href="/snapshots_trunk/current_trunk/docs/index.html">Manual (snapshot)</a></div> -->
<div class="nrow1_off_open">Manual (snapshot) (off)</a></div>
<div class="nrow1_open"><a href="tutorials.html">Tutorials</a></div>
<div class="nrow1_open"><a href="eclipse_plugin.html">Eclipse plugin</a></div>
</div>
<div id="menu_about"><div class="nrow"><img src="images/arrow_closed.gif" alt="" onclick="setMenuById(this.parentNode.parentNode.id, 'toggle')"><a class="nrow_closed" href="about.html">About</a></div>
<div class="nrow1_closed"><a href="history.html">History</a></div>
<div class="nrow1_closed"><a href="contacts.html">Contacts</a></div>
<div class="nrow1_closed"><a href="osgi-links.html">OSGi related links</a></div>
<div class="nrow1_closed"><a href="merchandise.html">T-shirt and stuff</a></div>
</div>
<div class="nrow"> </div>
<div class="nrow"><a href="https://github.com/knopflerfish/knopflerfish.org/issues">Issue Tracker <img border="0" alt="" src="images/extlink.gif"></a></div>
<!--
<div class="nrow"><a href="https://sourceforge.net/forum/forum.php?forum_id=328005">
Forum <img border="0" src="images/extlink.gif"alt="">
</a></div-->
<div class="nrow"><a href="http://knopflerfish.blogspot.com/">
Knopflerfish Blog <img border="0" src="images/extlink.gif"alt="">
</a></div>
<div class="makewave">
Maintained by<br>
<a href="http://www.makewave.com"><img src="images/makewave_logo_126x16.gif" alt="Makewave" border="0"></a><br>
<div class="makewave_2">
<a href="http://www.makewave.com/site.en/products/knopflerfish_pro_osgi.shtml">
Knopflerfish Pro<img border="0" alt="" src="images/extlink.gif"></a><br>
<a href="http://www.makewave.com/site.en/products/osgi_training.shtml">
OSGi Training<img border="0" alt="" src="images/extlink.gif"></a><br>
<a href="http://www.makewave.com/site.en/products/osgi_expert.shtml">
Professional Services<img border="0" alt="" src="images/extlink.gif"></a><br>
</div>
</div>
<div class="makewave">
Checkout Knopflerfish<br>
<a href="http://github.com/knopflerfish"><img src="images/github/GitHub_Logo-80px.png"
alt="Knopflerfish on GitHub" border="0"/></a>
</div>
<div class="makewave">
<a href="http://www.twitter.com/knopflerfish"><img src="http://twitter-badges.s3.amazonaws.com/follow_us-b.png" alt="Follow knopflerfish on Twitter" border="0"/></a>
</div>
</div>
<div id="mainblock">
<h1 class="kf">Knopflerfish Eclipse Plugin</h1>
The Knopflerfish Eclipse Plug-in is a tool for launching and debugging
the Knopflerfish OSGi distribution. The goal with the plug-in is to
simply the use of Knopflerfish for developers using Eclipse as their
IDE.
<p>
The current version of the plug-in is 1.2.0.
</p>
<p>
Note: If you are upgrading from an earlier version of the plug-in
you may need to
<a href="eclipse_plugin_upgrade_1_0_19.html">
consult the upgrading instructions.</a>
</p>
<p>
You can install the latest release from the
Knopflerfish update site using the Eclipse software update mechanism:
</p>
<p>
Eclipse update site: <b>http://www.knopflerfish.org/eclipse-update/</b>
</P>
<p>
<a href="eclipse_changelog.html">Eclipse Plugin Changelog</a>
</p>
<p>
The Knopflerfish Eclipse Plugin is available under the Knopflerfish <a
href="license.html">BSD style license</a>
<p>
<h3>Contents</h3>
<ol>
<li><a href="eclipse_install.html">Installing the Knopflerfish Eclipse Plugin</a>
<li><a href="eclipse_preferences.html">Setting Preferences for Plugin</a>
</ol>
<h1>Creating a bundle project</h1>
<h3>Creating a new bundle project</h3>
<ol>
<li>Select File/New/Project...
<li>Select Bundle Project and enter project info.
<li>A new project is created.
</ol>
<h3>Editing Bundle Manifest</h3>
Double click on the bundle.manifest file in your project. The file will be opened in a special editor, which has one tab
for a graphical view of the manifest and one tab for a text view. Not all attributes can yet be set through the
graphical view, e.g. Import-Package, Export-Package etc. For now you will have to set these attributes in the text
view.
<p>
<b>TODO:</b> Add attributes to the graphical view and help setting them.
</p>
<h3>Using Services</h3>
This is not yet supported in the plugin. For now you will have to manually add the JAR file containing the service API
to your classpath and also edit the bundle manifest Import-Package attribute, see above.
<p>
<b>TODO:</b> Support usage of services, by given the service package, automatically find bundle JARs exporting this
package, add it to the build classpath and also update the manifest attribute Import-Package.
</p>
<h3>Running/Debugging</h3>
Create a new launch configuration by selecting 'Run...' or 'Debug...' from the Run menu and thereafter select
Knopflerfish from the configurations list and press 'New'.
<h4>Launch Configuration</h4>
<h5>Main Tab</h5>
<p>
The main tab is used for setting which framework to run and where to store
the instance data (the .xargs files and the fwdir).
</p>
<p>
In the main tab a list of known system properties are listed and their default values.
When a predefined property is selected a short description is shown. The value can be
changed either by double-clicking or selecting 'Edit...'. When a predefined property
is changed from its default value it is marked in bold. To restore a property to its
default value, edit the property and in the edit dialog select 'Restore Default'.
When running/debugging a framework, only properties
that differ from their default values are included in the generated .xargs file.
</p>
<p>
User properties can be added or removed using the 'Add...' or 'Remove' button.
</p>
<p>
<b>Known Bug:</b> User properties can not be removed.
</p>
<h5>Bundles Tab</h5>
<p>
Under this tab you specify the set of bundles that should be launched together with the
framework.
</p>
<p>
Available Bundles is a tree listing all bundles that are either part of the workspace
or available through an installed Knopflerfish distribution. Bundles already
selected are filtered from the 'Available' tree. Bundles are added to the
selected list by selecting them and pressing 'Add'.
</p>
<p>
Selected Bundles shows a list of the bundles that are currently selected.
For each bundle, the start level, mode and missing packages problems are shown.
</p>
<p>
By default the start level is set to 1 for Knopflerfish bundles and to 2 for
workspace bundles. The start level of a bundle can be changed by selecting
the start level cell (click on it).
</p>
<p>
The default value for mode is determined by the bundle's manifest; if a bundle activator exists,
mode is set to 'Start'; otherwise it is set to 'Install'. To change the mode of a bundle, select
the mode cell for that bundle by clicking on it.
</p>
<p>
If a bundle imports packages which are not exported by any of the selected bundles,
a red error message will be shown in the 'Missing Packages' column indicating the
missing package(s).
</p>
<h4>Basic configurations</h4>
<p>
This section lists sets of bundles that are needed to run some commonly used applications.
</p>
<p>
Log
<ul>
<li>log_all-1.0.0.jar</li>
<li>console_api-1.0.0.jar</li>
<li>cm_api-1.0.0.jar</li>
</ul>
</p>
<p>
Log and TTY console
<ul>
<li>log_all-1.0.0.jar</li>
<li>console_all-1.0.0.jar (Note: console_all is used instead of console_api)</li>
<li>cm_api-1.0.0.jar</li>
<li>consoletty-1.0.0.jar</li>
<li>frameworkcommands-1.0.0.jar</li>
<li>logcommands-1.0.0.jar</li>
</ul>
</p>
<p>
Log, TTY console and CM
<ul>
<li>log_all-1.0.0.jar</li>
<li>console_all-1.0.0.jar</li>
<li>cm_all-1.0.0.jar (Note: cm_all is used instead of cm_api)</li>
<li>consoletty-1.0.0.jar</li>
<li>frameworkcommands-1.0.0.jar</li>
<li>logcommands-1.0.0.jar</li>
<li>crimson-1.1.3.jar (Note: any XML implementation exporting org.xml.sax packages can be used)</li>
</ul>
</p>
<p>
Log, TTY console, CM and desktop
<ul>
<li>log_all-1.0.0.jar</li>
<li>console_all-1.0.0.jar</li>
<li>cm_all-1.0.0.jar</li>
<li>consoletty-1.0.0.jar</li>
<li>frameworkcommands-1.0.0.jar</li>
<li>logcommands-1.0.0.jar</li>
<li>crimson-1.1.3.jar</li>
<li>desktop_all-1.1.0.jar</li>
<li>util-1.0.0.jar</li>
</ul>
<b>Note:</b> The desktop can show a busy-wait mouse cursor, if this happens position the cursor last in the
Eclipse Console and press return a few times.
</p>
<h3>Packaging Bundle</h3>
<p>
The contents of the bundle is specified by the bundle.jar file. A special editor is linked to this file, which is opened when the file is selected. The editor allows the contents to be specified either through a graphical view or by directly editing the underlying XML file.
</p>
<p>
The graphical view has two sections:
<ul>
<li>Export</li>
<li>Contents</li>
</ul>
<h4>Export</h4>
By selecting export the bundle is packaged and exported to the selected destination. The contents of the bundle is set in the contents section.
<h4>Contents</h4>
The contents section specifies all resources that shall be included and where to store them in the bundle JAR file. Each row in the contents table shows a resource that shall be included and consists of the following:
<ul>
<li><b>Resource</b> - The path to a file or folder in the current workspace.</li>
<li><b>Destination</b> - The path to store the resource in the JAR file. The resource contents is stored in the JAR entry specified by destination. If destination is empty it means the JAR root.</li>
<li><b>Pattern</b> - An regular expression can be specified to filter the resources to be included</li>
</ul>
<p>
By default the bundle.jar specifies the class-files from the output directory to be included in the JAR file.
</p>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<bundlejar>
<resource dst="" pattern=".*\.class" src="/positron/out"/>
</bundlejar>
</pre>
</div>
<div class="break"></div>
<div id="footer">
<div id="copyright">
Copyright © 2008-2016. The Knopflerfish Project. All rights reserved.
</div>
</div>
</div>
</body>
</html>