Converting Enterprise Architect Model to EMF UML2 model

Tags: , , , EMF, UML 1 Kommentar »

Recently, I had a task of a converting a UML model in Enterprise Architect to a EMF UML2 model. Googling with the keywords took me straightaway to Ueli Brawand and his tool EA_UML2Exporter. It is a wonderful little tool that works with openArchitectureWare and gets the task done in no time. However, setting it up does consume some time. I thought of summarizing the steps I did, incase it helps others.

1. Downloading Enterprise Architect

  • If you don’t have Enterprise Architect, download a 30-day trial from here: http://www.sparxsystems.com/products/ea/trial.html.
    Please note that Enterprise Architect runs only on Microsoft Windows. If you are using other environments, please use a virtual Windows environment to install Enterprise Architect.

2. Downloading openArchitectureWare

3. Downloading EA_UML2Exporter

4. Setting up a new openArchitectureWare Project

  • Start the downloaded Eclipse distribution with oAW and create a new openArchitectureWare Project.
  • The EA_UML2Exporter libraries needs to be added to the project. Select Project Properties from context menu and add the EA_UML2Exporter JARs using Java Build Path -> Libraries ->  Add External JARs….
    Adding external Jars
  • The EA Java API library now needs to be added to the project in the same way. Browse to the Java API folder within Enterprise Architect Installation folder and add eaapi.jar to the project in the same way as above.
  • SSJavaCOM.dll within the Enterprise Architect Java API folder needs to be in the system path. Easiest would be to add this to the root of the newly created project.
  • Open MANIFEST.MF and add the following plugin dependencies:

org.eclipse.uml2

org.eclipse.uml2.uml

org.eclipse.uml2.uml.ecore.exporter

org.eclipse.uml2.uml.ecore.importer

org.eclipse.uml2.uml.resources

org.openarchitectureware.uml2.adapter

Plug-in Dependencies

  • Copy the to be converted Enterprise Architect EAP file to the src folder.
  • Create an empty file called model.uml within the src folder.
    This would be your converted UML2 model after the workflow is run.
  • Within this src folder create a workflow file (workflow.oaw) with the following content:

<?xml version=”1.0″ encoding=”UTF-8″?>

<workflow>

<property file=“workflow.properties”/>

<bean class=“oaw.uml2.Setup” standardUML2Setup=“true” />

<!– Metamodel-Definition –>

<bean id=“EmfMM” class=“oaw.type.emf.EmfMetaModel”>

<metaModelPackage value=“org.eclipse.emf.ecore.EcorePackage”/>

</bean>

<bean id=“UmlMM” class=“oaw.uml2.UML2MetaModel”/>

<component class=“oaw.uml2.toolsupport.ea.EA_Xmi2Exporter” >

<EapFile value=“${project_root}${ea_file}” />

<ModelFile value=“${model_file}” />

<PackageName value=“${model_pkg}” />

<Cleanup value=“true”/>

</component>

</workflow>

  • Within this src folder create a workflow properties file (workflow.properties) with the following content:

project_root =

# EA filename

ea_file =

#Output UML2 filename

model_file =

#Package within EA Model

model_pkg =

  • Fill in the missing values in the properties file.
    project_root: You could leave this empty
    ea_file: EAP file to be converted
    model_file: UML2 model to be created
    model_pkg: Package within EAP file to be converted (this could be the root package, if you want the whole file to be converted)

    The properties file might look, for example, as below:

project_root =

# EA filename

ea_file = src/2006-10-04 RiF-Meta-Modell_v1.1_PUBLIC.EAP

#Output UML2 filename

model_file = src/model.uml

#Package within EA Model

model_pkg = RIF/ExchangeFile

  • If the project is setup correctly, it would look like this:
    oAW Project

5. Running the openArchitectureWare workflow

  • Run the workflow by selecting the workflow file (workflow.oaw) and choosing Run As -> oAW Worlflow from context menu.
  • Enterprise Architect would now be started in the background.
  • If the conversion is successful you would get a console output similiar to below:

0    INFO  WorkflowRunner     – ————————————————————————————–

0    INFO  WorkflowRunner     – openArchitectureWare 4.3.1, Build 20090107-2000PRD

0    INFO  WorkflowRunner     – (c) 2005-2008 openarchitectureware.org and contributors

0    INFO  WorkflowRunner     – ————————————————————————————–

0    INFO  WorkflowRunner     – running workflow: workflow.oaw

0    INFO  WorkflowRunner     -

1281 INFO  CompositeComponent – EA_Xmi2Exporter

1281 INFO  EA_Xmi2ExportBase  – UML2Exporter for EA (1.7.0-SNAPSHOT)

1281 INFO  EA_Xmi2ExportBase  –   EAP-File   : src\2006-10-04 RiF-Meta-Modell_v1.1_PUBLIC.EAP

1281 INFO  EA_Xmi2ExportBase  –   Package    : RIF/ExchangeFile

1281 INFO  EA_Xmi2ExportBase  –   OutputFile : src\model.uml

70266 INFO  EA_Xmi2ExportBase  – Start XML2.0-output …

86891 INFO  EA_Xmi2ExportBase  – XML2.0-Export done.

86891 INFO  WorkflowRunner     – workflow completed in 85610ms!

  • model.uml file would now be the converted UML2 file.

Mission Accomplished

Eclipse, OSEE Kein Kommentar »

My talk on OSEE at Eclipse Summit 2009 was a success for me personally. The topic was of course not sexy as the modeling sessions that went on in parallel and through out the day. I hoped, the title “Get Lean with OSEE” would get the attention of some more guys who would think of it as a session on how to burn some fat ;) So it wasn’t really a shock for me when only 11 people turned up (out of which 2 were my colleagues and 2 were my old Bosch colleagues).

Open System Engineering Environment (OSEE) is the only Eclipse based open source tool currently available that could be used in a engineering environment (be it Aeronautics or Automotive) to provide an integrated environment for tools to share a common data model. Purpose of the talk was not really to sell OSEE (which I made it clear during the talk), but to give the results of an evaluation of OSEE we did as part of a research project.

Spending some time on the slides over the weekend wasn’t a bad idea as I could bring some coolness into the talk with this. However, I saw that the people got more interested when I started the demo of the tool (which took three quarters of the time of the total session). There was time for some Q&A in the end where we discussed about the potential of the tool. It was concluded that the tool has great potential, but the inactive newsgroups and disintegrated documentation would drive early adopters away.

The committers need to realize the huge possibilities of “selling” this tool in the Automotive engineering environments (which is much more in Europe than where the makers come from) and work more on “marketing” the tool. Integration of some existing Eclipse technologies as replacement for many self written components could be one way to gain some synergy and get more attention.  Also publishing reliable release plans is very important.

The slides from the presentation can be viewed here: http://www.slideshare.net/nirmalts/get-lean-with-osee

Confluence Macro Quick Reference

Tags: , , Confluence Kein Kommentar »

Below is the complete list of macros supported by Confluence 3.0.0, with usage and link to documentation. The list can also be downloaded as a PDF  reference card - Confluence Reference Card.

Macro Name Description Usage
1. Anchor Creates an anchor inside the page, which can be hyperlinked
{anchor:anchorname}
2. Blog Posts Lists the most recent news items in the space
{blog-posts:
time=24h}
3. Attachments Creates a list of attachments belonging to this page
{attachments:
patterns=.*jpg|
old=true|
sortBy=size|
upload=true}
4. Bookmarks Includes a list of bookmarks on a Confluence page
{bookmarks:
spaces=spacename|
labels=labelname|
creators=admin|
reverseSort=true|
showAuthor=false|
showDate=false|
showDescription=false|
showEditLinks=false|
showLabels=false|
showListHeader=false|
showSpace=false|
showViewLink=false}
5. Change History Shows the history of version comments for the current page or news item
{change-history}
6. Chart Displays a chart using data from the supplied table or tables
{chart:type=bar|
title=charttitle|
xLabel=x-axislabel|
yLabel=y-axislabel|
legend=false|
orientation=horizontal|
3D=true|
width=400|
height=400|
colors=red,green|
rangeAxisLowerBound=0|
rangeAxisUpperBound=400|
dataOrientation=vertical}
| col 1 | col 2| col 3|
| row 1 | 10 | 20 | 30 |
| row 2 | 100 | 200 | 300 |
{chart}
7. Cheese Inserts the text ‘I like cheese!’, used for testing macro functionality
{cheese}
8. Children Display Lists a page’s children and their descendant pages
{children:
all=true|
page=parentpage|
first=10|
depth=5|
style=h1|
excerpt=true|
sort=creation|
reverse=true}
9. Code Block Displays source code in your page with the appropriate syntax highlighting
{code:
lang=java|
title=title|
borderStyle=solid|
borderColor=bordercolour|
borderWidth=2|
bgColor=white|
titleBGColor=grey}
/*String Test*/
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
{code}
10. Colour Text Change the colour of a block of text
{color:red}
This is block text in RED
{color}
11. Column Defines a column on the page. (Must be used within a Section macro.)
{section:
border=true}
This is a section
{column:width=25%}
Column1 content
{column}
{column:width=75%}
Column2 Content
{column}
{section}
12. Content by Label Lists pages tagged with one or more specific labels
{contentbylabel:
labels=labelname|
type=page,comment|
showLabels=false|
showSpace=false|
title=listtitle|
max=20|excerpt=true|
spaces=spacename|
sort=creation|
reverse=true}
13. Content by User Lists pages created by a particular user
{content-by-user:
username}
14. Contributors Displays a list of contributors to a page, its hierarchy or selected spaces, or watches of these pages
{contributors:
include=authors|
order=name|
reverse=true|
limit=3|
mode=list|
showAnonymous=true|
showCount=true|
showLastTime=true|
page=pagename|
labels=labelname|
spaces=spacename|
contentType=pages|
publishDate=2009/09/01}
15. Contributors Summary Displays a summary of contributions to a page, its hierarchy or selected spaces, in tabular form
{contributors-summary:
groupby=pages|
order=name|
reverse=true|
limit=5|
showAnonymous=true|
showZeroCounts=true|
labels=labelname}
16. Create Space Button Displays a create space icon that links to the create space page
{create-space-button:
size=small}
17. Documentation Link Links to documentation on http://confluence.atlassian.com/
[Atlassian Support|
http://confluence.
atlassian.com/display/CONFEXT]
18. Edit in Word Link Display an Edit in Word icon link on your page
{editinwordlink}
19. Excerpt Marks part of the page’s content for use by other macros
{excerpt:hidden=true}
This excerpt can be reused
{excerpt}
20. Excerpt Include Displays the excerpted contents from another page within the same space
{excerpt-include:
pagename|
nopanel=true}
21. Favourite Pages Lists your favourite pages
{favpages:
maxResults=10}
22. Gallery Creates a thumbnail gallery from a page’s attachments
{gallery:
title=gallerytitle|
exclude=imagetoexclude.png|
include=imagetoinclude.png|
page=spacekey:pagetitle|
sort=name|
reverseSort=true}
23. Global Reports Displays a list of links to global reports
{global-reports:
width=50%}
bodytext
{global-reports}
24. IM Presence Displays a graphic indicating if a contact is signed into their Instant Messenger service
{im:skypeid|
service=skype}
25. Include Page Includes the contents of a page within another.
{include:
spacekey:pagename}
26. Info Highlights content as an informational note with a blue background
{info:
title=infotitle}
This is an information
{info}
27. JIRA Issues Displays a list of issues from a JIRA site on your Confluence page
{jiraissues:
url=http://jiraurl|
columns=type,summary|
count=true|
cache=off|
anonymous=true|
title=title|
renderMode=static}
28. JIRA Portlet Displays a JIRA dashboard portlet on your Confluence page
{jiraportlet:
url=http://jiraportleturl|
anonymous=true|
baseurl=http://baseurl}
29. JUnit Report Displays the results of JUnit tests. JUnit is a unit testing framework for Java
{junitreport:
url=http://junitxmlurl|
directory=file:///path|
reportdetail=summary|
debug=true}
30. Labels List Lists all labels of a space, grouped alphabetically
{listlabels:
spaceKey=spacekey}
31. Livesearch Embeds a search box into your Confluence page to show search results as you type
{livesearch:id=id|
spaceKey=spacekey}
32. Loremipsum Displays paragraphs of pseudo-Latin (space-filler) text
{loremipsum:5}
33. Metadata Embeds metadata into pages and blog posts for presentation with the ‘Metadata Summary’ macro
{details:
label=metalabel}authorname
date{details}
34. Metadata Summary Shows a tabulated report of metadata created with the ‘Metadata’ macro
{detailssummary:
label=metalabel}
35. Navigation Map Creates a map of pages associated with a specified label
{navmap:label|
title=maptitle|
wrapAfter=10|
cellWidth=100px|
cellHeight=80px|
theme=navmap-mytheme.vm}
36. Network Displays the network of a user
{network:followers|
username=username|
theme=full|
max=10}
37. No Format Displays text in monospace font within a panel, with no other formatting applied.
\{noformat:
nopanel=true}
Unformatted text
\{noformat}
38. No Link Displays a web address or URL without hyperlinking to the URL
{nolink:
http://url}
39. Note Highlights content as a note with a yellow background
{note}
This is a note
{note}
40. Office Excel Embeds an Office Excel document (.xls) into your Confluence page
{{viewxls:
page=pagename|
name=office.xls|
date=mm/dd/yyy|
space=spacekey|
grid=false|
sheet=worksheetname|
row=2|
col=2}
41. Office Powerpoint Embeds an Office Powerpoint document (.ppt) into your Confluence page
{viewppt:
page=pagename|
name=office.ppt|
date=mm/dd/yyyy|
space=spacekey|
slide=2|
height=50%|
width=50%}
42. Office Word Embeds an Office Word document (.doc) file into your Confluence page
{viewdoc:
page=pagename|
name=office.doc|
date=mm/dd/yyyy|
space=spacekey}
43. Page Index Creates an index of all pages within the spac
{index}
44. Page Tree Displays a dynamic, hierarchical list of pages starting from a specified parent (root) page
{pagetree:root=rootpage|
sort=creation|
excerpt=true|
reverse=true|
searchBox=true|
expandCollapseAll=true|
startDepth=4}
45. Page Tree Search Provides a search box that searches a hierarchy of pages (Page Tree) from a specified root page.
{pagetreesearch:
rootPage=rootpage}
46. Panel Displays a block of text within a customisable panel.
{panel:
title=paneltitle|
borderStyle=solid|
borderColor=red|
borderWidth=2|
bgColor=yellow|
titleBGColor=blue}
body text
{panel}
47. Popular Labels Generates a list or ‘heatmap’ of the most popular labels
{popular-labels:
count=50|
spaceKey=spacekey|
style=heatmap}
48. Quote Formats a block of text consisting of one or more paragraphs into a quote
{quote}
some quote
{quote}
49. Recently Updated Lists the most recently changed content within Confluence
{recently-updated:
author=username|
spaces=spacekey|
labels=label|
width=75%|
types=page,comment|
max=20|
theme=concise|
showProfilePic=true|
sort=title|
reverse=true}
50. Recently Updated Dashboard Lists the most recently changed Confluence content in a dashboard view style
{recently-updated-dashboard:
spaces=spacekey|
types=page,comment|
labels=label|
width=75%|
showProfilePic=true}
51. Recently Used Labels Lists the most recently used labels in a predefined scope of spaces
{recently-used-labels:
count=15|
scope=space|
style=table|
title=tabletitle}
52. Related Labels Lists all tagged labels from every page that has labels in common with the current page
{related-labels:
labels=label}
53. RSS Feed Embeds an RSS feed on a page and displays the contents of external or internal Confluence feeds
{rss:url=rssfeedurl|
max=20|
showTitlesOnly=true|
titleBar=false}
54. Search Results Searches your Confluence site based on specified terms and displays the results on the page
{search:
query=term|
maxLimit=10|
spacekey=spacekey|
type=page|
lastModified=24h|
contributor=username}
55. Section Defines a section on a page, which can contain one or more Column macros
{section:
border=true}
This is a section
{section}
56. Space Details Displays a table containing information about the current space
{space-details:
width=75%}
57. Spacebookmarkslink A macro that generates the links in the information panel in the .bookmarks page
{spacebookmarkslink:
spacebookmarkslink}
body text
{spacebookmarkslink}
58. Spaces List Displays a list of spaces witin the page.
{spaces:team|
width=75%}
59. Table of Content Zone Generates a table of contents based on the headings present within its body text zone
{toc-zone:
location=bottom|
type=flat|
style=circle|
indent=10px|
separator=braces|
minLevel=2|
maxLevel=6|
include=.*\.[1//2]|
exclude=.*\.[1//2]|
printable=false|
class=classname}
h2. Heading 1
Body1
h2. Heading 2
Body2
{toc-zone}
60. Table of Contents Generates a hyperlinked table of contents based on the headings present in the current page.
{toc:type=flat|
outline=true|
style=circle|
indent=10px|
separator=braces|
minLevel=2|
maxLevel=6|
include=.*\.[1//2]|
exclude=.*\.[1//2]|
printable=false|
class=clas
61. Tasklist Displays a modifiable and interactive task list.
{tasklist:
title}
tasklist
{tasklist}
62. Tip Highlights content as a helpful tip with a green background
{tip:
title=title}
Some tip
{tip}
63. User List Displays a list of Confluence users based on group membership
{userlister:
groups=*|
online=false}
64. User Profile Displays a user’s profile details
{profile:
user=username}
65. User Status List Displays a list of statuses for a user
{status-list:
username=username}
66. View PDF Embeds a PDF document (.pdf) into your Confluence page
{viewpdf:
page=pagename|
name=document.pdf|
date=mm/dd/yyyy|
space=spacekey}
67. Warning Highlights content as a warning note with a red background
{warning:
title=title}
This is a warning
{warning}
68. Widget Connector Embed multi-media content from other web sites into your Confluence page
{widget:
url=http://widgeturl|
width=200|
height=400}

Pomodoro – An agile time management technique

Tags: , Agile, Time Management Kein Kommentar »

Time management techniques and tools are in abundance. Many of them does their job quite well. But at times you lose focus in following these techniques due to the complexity of processes involved and tools required to do it.

I came across this technique which seems to do the task in a simple, agile way – The Pomodoro Technique (http://www.pomodorotechnique.com/).

pomodoro

Who hasn’t experienced time anxiety when faced with a task that has to be finished by a certain deadline? In these circumstances, who hasn’t felt the need to put off that task, to “come up for air”? Who hasn’t had that unpleasant sensation of depending on time, chasing after appointments, giving up what one loves to do for lack of time? …

The free (45 page) ebook on Pomodoro can be downloaded from http://www.pomodorotechnique.com/resources/cirillo/ThePomodoroTechnique_v1-3.pdf.

If you are worried about bringing a (tomato shaped) kitchen timer to work (and perhaps earning a new nick name doing that), you could download this free ticker made for Pomodoro from http://www.focusboosterapp.com/.

Now don’t say – “I have no time to try this!”

Cheating OSEE to install on Mac OS X

Tags: , , , Eclipse Kein Kommentar »

If you are a Microsoft Windows user and want to install OSEE (Open System Engineering Environment), you are plain lucky. The “platform independent” OSEE at the moment seems highly tuned to run on Windows. Follow the pointers here and you could get OSEE installed on Windows in no time. Coming back to the discriminated Mac OS X users, the hard truth is – the current version of OSEE (0.7.0) will NOT run on a Mac. But you could trick OSEE and make it run on a Mac with the steps below (but some features still does not work).

I wouldn’t advise to do this on a live/production environment. Try to get a Windows box and install OSEE or if you have only a Mac, install OSEE using a virtual machine like VirtualBox.

Why can’t OSEE run on Mac OS X?

One of the major reasons for this is that the current version of OSEE (0.7.0) requires Java 1.6 to run. Though Apple delivered 1.6.0 for Leopard, they delivered only a 64 bit version of it (and has no plans as of now to deliver a 32 bit version). Eclipse (more precisely SWT) cannot make use of 64bit unless you are using Eclipse Galileo Cocoa 64 bit. Unfortunately, OSEE client doesn’t run on Galileo Cocoa 64 bit, due to missing plugin dependencies. This leaves us with no option but use OSEE client with Eclipse Ganymede (3.4.2) as prescribed, by cheating it a bit.

Preparation

You need the following to make OSEE database, server and client run on a Mac.

1. PostgreSQL 8.4.0 (Download)

2. OSEE Application Server 0.7.0 (Download)

3. Eclipse (3.4.2) Ganyemde IDE for Java and Report Developers (Download)

4. OSEE Client 0.7.0 (Download)

5. OSEE Addons 0.7.0 (Download)

The above are the basic items you would need to run OSEE on any platform (unless you decide to use a database other than PostgresSQL). To run OSEE on Mac you additionally need:

6. SoyLatte Java 6 Port 1.0.2 (Download - Use username: “jrl” and password: “I am a Licensee in good standing”. Please note that SoyLatte 1.0.3 would not work)

7. WebKit Build for Safari 3.2.1 (Download – If you have Safari 4.0+ installed, YOU NEED this)

8. A bunch of shell scripts I made to make things easy (Download)

You can download these separately and configure it yourself or download the configured All-in-one bundle I made from here. Download and extract it to any folder, for example, $HOME/OSEE. The PostgresSQL installer is however not included in the bundle. You need to download and install it as per the steps below.

Installing PostGresSql

1. Run the PostgresSQL installer and follow the wizard, leaving the defaults as it is (unless you know what you are doing).
2. In the Password form enter password as “postgres” and confirm it. This is the password to be used for the superuser account (postgres) in the database cluster.

3. In the last step, UNCHECK “Launch Stack Builder at exit?”

Stack Builder Launch

Setting up PostGresSql for OSEE

PostGresSql installation creates a new service user account in your OS (this is different from the “postgres” super account in the database, the password for which you already provided in the wizard during installation). This is a standard OS user who could start/stop/administer the database. You need to set a password for this user to enable you to do database operations in the future.

1. Start Terminal and execute the following

sudo passwd postgres

Enter the new password as “postgres” and confirm.

Don’t be surprised if you see a new user called PostGresSQL the next time you log in to your OS.

2. Launch “pgAdmin III” from Applications.

3. Double Click on PostgreSQL Database Server (listed under Servers on the left hand side). If you are prompted for a password, type the password “postgres” selected during installation (user should be postgres by default)

4. OSEE needs a special database account named “osee”.To create it, right-click on Login Roles (at the bottom of the tree on the left hand side) and select “New Login Role…”. Enter the following in the dialog.

Please forgive me for the German text in screenshots

5. OSEE also needs a special database named “OSEE”. To create it, right-click on Databases and select “New Database…”. Enter the following in the dialog.

6. Click on OSEE and expand it and expand Schemas. Create a ”osee” schema by right-clicking on Schemas and selecting “New Schema…”. Enter the following in the dialog.

Starting PostGresSql

The installer starts up the database after it is finished. Also you could start/stop the database manually as follows:

1. Start Terminal and navigate to the “scripts” folder of the All-in-one bundle.

2. Execute the following:

./pg.sh start

3. Enter the password as “postgres”. This is the password for the service user account PostGresSQL created.

4. You could stop the database later by the following

./pg.sh stop

Initializing PostGresSql for OSEE

Before OSEE can start using the database, you need to initialize it with the initialization steps below:

1. Start Terminal and navigate to the “scripts” folder of the All-in-one bundle.

2. Assuming that the database is already running with the step above, you need to start the application server by executing the following:

./startserver.sh

3. Start database initialization by

./initdb.sh

Starting OSEE client

Now you are ready to startup and use the OSEE client.

1. Start Terminal and navigate to the “scripts” folder of the All-in-one bundle.

2. Execute the following

./osee.sh

What doesn’t work yet

1. The XWidgets included in OSEE doesn’t seem to work properly on Mac. Hence you see an error while opening forms which has these widgets.

OSGi debugging

Tags: , , , OSGi Kein Kommentar »

OSGi debugging can turn out to be a nightmare at times, especially when using OSGi declarative services. The steps below might provide some solace.

1. Using diag OSGi command

The OSGi console is automatically enabled if you launch your bundle from eclipse launch configuration as a “OSGi Framework”. Else you could add the argument -console to your launch configuration. This will enable the OSGi console upon run.

There are lot of OSGi commands that can be used from the console. You could get the list by simply typing help at the console.

To diagnose a particular bundle, type ss at the console to see its status. This would give you a list like, for example:

osgi> ss

Framework is launched.

id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.0.v20080605-1900
1 ACTIVE org.eclipse.osgi.services_3.1.200.v20071203
2 ACTIVE org.eclipse.equinox.ds_1.0.0.v20080427-0830
3 ACTIVE org.my.bundle._1.0.0
4 ACTIVE org.his.bundle_1.0.0
5 ACTIVE org.her.bundle_1.0.0
6 ACTIVE org.eclipse.equinox.util_1.0.0.v20080414

Use the command diag to diagnose a particular bundle.

For instance,

osgi> diag 3

initial@reference:file:plugins/org.my.bundle._1.0.0.jar/ [1]
Direct constraints which are unresolved:
Missing imported package org.someones.bundle_0.0.0.

3 is the id of the bundle org.my.bundle._1.0.0 above

2. Using -Dequinox.ds.print=true

Using VM argument -Dequinox.ds.print=true in your Launch configuration will echo all error messages to your console.

3. Using OSGi logging service

Start the OSGI bundle org.eclipse.equinox.log. With this bundle enabled, you could use the command log in your OSGi console.

For example,

osgi> log

>Info [2] Log created; Log Size=100; Log Threshold=4 initial@reference:file:plugins/org.eclipse.equinox.log_1.1.0.v20080414.jar/
>Info [2] ServiceEvent REGISTERED {service.id=23}
>Info [2] ServiceEvent REGISTERED {service.id=24}
>Info [2] ServiceEvent REGISTERED {service.id=25}


Wordpress Themes by Mobile Themes / Jim / Übersetzt ins Deutsche von Pascal Senn
Copyright © 2007 Nirmal’s blog. All rights reserved.