The goal is to have a full working Domino Designer, launched in Debug mode from eclipse.
The first step is go to your eclipse and open the "Debug Configurations" dialog.
In there duplicate your existing notes launch config.
Then change the Name and the "run a product" field to Domino Designer and com.ibm.designer.domino.product.dde.
Switch to the "Arguments" Tab and change the Program arguments to
-vm ${rcp.home}/../jvm/bin\j9vm\jvm.dll
-personality com.ibm.designer.domino.personality
-product com.ibm.designer.domino.product.dde
-debug
-console
-nl en_US
Save your changes with the "Apply" button. Then click the debug button to launch Designer. Be sure that you have no open instance of Notes/Designer because only one instance can be open at the same time.
When everything works, you will get a designer window with a welcome screen. To close the welcome screen, choose "Close Perspective" from the Window menu.
Then you should see your normal Designer UI. Maybe you get many error message in the Problem view that some Java elements cannot be resolved. No problem we will fix this in the next step.
Open the Preferences of Designer and navigate to "Plug-in Development" -> Target Platform. Change the location from "NotesProgDir\framework\eclipse" to "NotesProgDir\framework\rcp\eclipse". Click Apply and "Ok". Eclipse will reload the target platform.
After reload all error message will be solved automatically in the background. Now you can try or debug your extensions in Designer.
Thank you very much for this!
ReplyDeleteHi Ralf,
ReplyDeleteI'm trying to build a little DDE Plugin-Extension (it's a dependency documenter that shows which script library inherits from which other script library) and I've been struggling the past few days to get the run configuration within Lotus Expeditor to point to DDE (I've been using a 'Client Services' Run Configuration instead of the Eclipse Application. I tried your method, in desperation, and it worked.
I think you are the only resource for DDE Plugin development. René Winkelmeyer and Karsten Lehmann had loads of information from 3 - 4 years ago, but they aren't blogging about it anymore.
Sorry, the last post is from me, Andrew Magerman. Since I'm there, I was wondering if you could help me find some documentation concerning the name of the plugins that are needed for Notes 9 dev. In previous versions one needed
ReplyDeletecom.ibm.designer.domino.ui.commons
com.ibm.designer.domino.ide.resources
but I can't find these anymore. Can you help?
Thank you for the compliment. Hm in my 9.0.1 installation i do still have the plugins you mentioned.
ReplyDeletecom.ibm.designer.domino.ide.resources_9.0.1.20131022-0932.jar
com.ibm.designer.domino.ui.commons_9.0.1.20131022-0932.jar
Both are in the framework\shared\eclipse\plugins folder.
Thanks Ralf. I was on the wrong tab (Extensions instead of Dependencies). Now I'm getting a billion java stack traces, and I've no idea as to which ones are the ones I can ignore and which ones are the correct ones. Sigh.
DeleteHi Ralf,
ReplyDeleteStill running into problems for launching DDE directly from Eclipse.
I did a fresh install using Luna (Eclipse 4.4). Would that eventually be the cause?
I'm following Mikkel Heisterberg's install instructions. The normal Notes client is launching fine.
The DDE is not launching, I'm getting loads of stack dumps:
SEVERE An error occurred while automatically activating bundle com.ibm.designer.domino.ide.resources
SEVERE An error occurred while automatically activating bundle org.eclipse.core.resources
SEVERE CLFAD####E: It appears that Domino Designer failed to successfully shut down in a previous session.
java.lang.UnsatisfiedLinkError: njnotes (Not found in java.library.path)
WARNING The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
And this is without having defined any kind of plug-in project.
I'm at my wit's end. It's been three days now I'm trying. At least now I've abandoned the idea of using Lotus Expeditor.
Hi Andrew,
ReplyDeletei really recommend, that you will start with a fresh eclipse workspace and then follow my tutorials to start Notes from Eclipse and then when this works you make the changes for DDE. If you get a problem zip the workspace and send it to ralfDOTpetterATgmailDOTcom with the output you get when you try to launch. I will have a look what the problem is.
Weird, I made a comment yesterday but it didn't register.
ReplyDeleteI got the source of my problems: I finally understood the 'Main' Tab - Workspace Data tab of the run configuration: I now get that this part of the tag defines a 'temporary' workspace. Since I was naming the Run Configurations exactly the same, I was landing on an old, broken workspace. I set the path to be hardcoded and set the run configuration to clear the workspace before starting. Problem solved.
Thanks for your kind assistance. It's been very frustrating, but I've learned a lot more. Do you know those rooms in fun fairs where there's a mirror behind you and at the back of you and you see many, many reflections. I felt like that as well. I'm doing some work in Eclipse, for another Eclipse implementation, and every single folder is either called rcp, workspace, framework, or eclipse. In which workspace am I right now?
Hi Andrew!
ReplyDeleteI am glad that it works now for you.
Hi Ralf, I've just updated my Notes to FP8 and my launch config's for Notes and Designer no longer work.
ReplyDeleteI assume it might be something to do with the new Java 8 runtime. There are a few error messages but the last SEVERE one is :
"The com.ibm.rcp.os bundle failed to start because the native operating system libraries"
Any tips on what I might need to change to get a debug launch config going ?
Have you upgraded the JVM definition in eclipse to java 8? And maybe you will have to change some settings in your launch config. I have not tried FP8, but i will try soon and if there is interest i will make a blog post.
ReplyDeleteHi Ralf, actually I can't really get it to work. ( I did recreate JVM's etc) I managed to launch it but then couldn't do much. menus weren't showing up etc.
DeleteI will try again from a blank workspace but If you do get around to testing it with FP8 then please let me know what you find out!
Ok i will analyze the problem and then post a solution.
DeleteSo i have found three possible problems.
Delete1. Be sure, that the Notes program directory is in the path of the operating system.
2. Add the line "-Djava.library.path=c:\Progra~2\IBM\Notes" to your VM arguments in your launch configuration
3. When you add a FP to an existing installation the plugins already exist will not be replaced, but the new Version will be added to the plugins directory. So when you create the target platform definition you have many plugins doubled. Remove all old plugins from your target definition. If you need help with this, i can send you my target definition file per mail.
When i make the above three modifications the Designer with installed FP8 works without problems.
Thanks Ralf I will give this a Try from a new workspace and see how it goes.
DeleteThe duplicate plugins seems to be strange problem because I thought OSGi would only load the latest versions?
The problem is, that the developer at IBM has no idea how the versioning scheme of OSGI works. It is not enough to only change the qualifier when a plugin has been updated with an API change. Here is an excerpt from the OSGI documentation:
Delete"The semantics for the version parts are therefore defined as:
1.
major
— Packages with versions that have different major parts are not compatible both for providers as
well as consumers. For example,
1.2
and
2.3
are completely incompatible.
2.
minor
— API consumers are compatible with exporters that have the same major number and an equal or
higher minor version. API providers are compatible with exporters that have the same major and minor
version number. For example,
1.2
is backward compatible with
1.1
for consumers but for providers it is
incompatible. Consumers should therefore import
[1.2,2)
and providers should import
[1.2,1.3)
.
3.
micro
— A difference in the micro part does not signal any backward compatibility issues. The micro
number is used to fix bugs that do not affect either consumers or providers of the API.
4.
qualifier
— The qualifier is usually used to indicate a build identity, for example a time stamp. Different
qualifiers do not signal any backward compatibility issues."
Thanks Ralf, i didn't realise that I thought that the qualifier would be enough to ensure only the latest version is loaded
DeleteHi Ralf, I think you are right. I decided to re-do your tutorials and start from beginning, creating JRE and new launch configs and they both worked fine!
ReplyDeleteThanks for your quick response and please never delete your blog :)