Eclipse Configuration Guide for Mac OSX?

Hi,

We develop plugins for IBM Notes and Sametime. On my Mac, I’m trying to get my Eclipse workspace updated with Notes 9 as the target platform. I believe I have the JRE and Target Environment configured correctly but cannot figure out a runtime configuration that allows me to run my code inside Notes 9.

Are there any instructions for this available please? Obviously Expeditor is not an option any more. I have it working on Windows using Mikkel’s blog http://lekkimworld.com/pages/eclipse42_notes9.html but obviously the runtime environment needs tweaking for Notes. (Sametime 9 was no problem btw). I’m using Eclipse 4.2 and an Oracle Java 6 JRE.

The main exception on startup appears to be this:
WARNING CWPST0306W: An exception occurred while invoking the target method login. ::class.method=com.ibm.rcp.internal.security.AbstractProxy.invoke() ::thread=Thread-1 ::loggername=com.ibm.rcp.internal.security javax.security.auth.login.LoginException: CLFRJ0005E: Notes is not installed at com.ibm.workplace.internal.notes.security.auth.NotesLoginModule.login(NotesLoginModule.java:334) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibm.rcp.security.auth.ExtLoginModuleProxy.invokeImpl(ExtLoginModuleProxy.java:109) at com.ibm.rcp.internal.security.AbstractProxy.invoke(AbstractProxy.java:77) at com.sun.proxy.$Proxy0.login(Unknown Source) at com.ibm.rcp.security.auth.ExtLoginModuleProxy.login(ExtLoginModuleProxy.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:579) at com.ibm.rcp.security.auth.service.AbstractLoginService.login(AbstractLoginService.java:125) at com.ibm.rcp.internal.security.auth.service.DefaultLoginContextService.login(DefaultLoginContextService.java:130) at com.ibm.rcp.platform.personality.DefaultWorkbenchWindowAdvisor.doLogin(DefaultWorkbenchWindowAdvisor.java:2467) at com.ibm.rcp.platform.personality.DefaultWorkbenchWindowAdvisor.postWindowCreate(DefaultWorkbenchWindowAdvisor.java:1860) at org.eclipse.ui.internal.WorkbenchWindow.fireWindowCreated(WorkbenchWindow.java:1227) at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:779)

I can provide more information as required.

Regards,

Colin.

Subject: Try this?

I haven’t set up for plugin development on OSX yet, but for general Java development (ie. Notes.jar) try this.

In the Run->Configurations, select your configuration. Then go to the “Environment Tab” and add the following.

Variable: DYLD_LIBRARY_PATH
Value: /Application/IBM Notes.app/Contents/MacOS

Obviously you may need to change the value to match your system.

Subject: Try These

Try these out, they might be slightly outdated and you might need to tweak a few things. You might also want to reach out to Mikkel. He recently went through these same steps and setup an environment on the Mac. He was going to write a blog post…

Prerequisites

  • Copy file “rcp.security.properties” to directory “/Applications/IBM Notes.app/Contents/MacOS/rcp”
  • Copy Notes.jar from “/Applications/IBM Notes.app/Contents/MacOS/jvm/lib/ext/Notes.jar” to “/Applications/IBM Notes.app/Contents/MacOS/shared/eclipse/plugins/com.ibm.notes.java.api_9.0.0.20130309-0748/Notes.jar”
    JRE configuration

JRE home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
VM Argument: -d32
(to enforce 32 bit mode for 64 bit JVM)

Variable substitution

rcp base version could be added here as well. Simon had the rcp base version in the VM arguments.

(workspace_location is not needed here)

install_id=123
rcp.home=/Applications/IBM Notes.app/Contents/MacOS
(install id does not seem to be important)

Target platform

Target platform with paths:
/Applications/IBM Notes.app/Contents/MacOS/rcp/eclipse/plugins
/Applications/IBM Notes.app/Contents/MacOS/shared/eclipse/plugins

Run Configuration settings

Program arguments:
-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -personality com.ibm.rcp.platform.personality -debug -console

VM arguments:
-Xmx800m
-Djava.security.properties=“${rcp.home}/rcp/rcp.security.properties”
-Drcp.home=“${rcp.home}”
-Drcp.install.config=user
-Dosgi.install.area=“${rcp.home}”
-Dcom.ibm.pvc.osgiagent.core.logfileloc=“${rcp.home}\rcp”
-Dcom.ibm.pvc.webcontainer.port=0
-Declipse.pluginCustomization=“${rcp.home}\rcp\plugin_customization.ini”
-Declipse.registry.nulltoken=true
-Djava.protocol.handler.pkgs=com.ibm.net.ssl.www.protocol
-Djava.util.logging.config.class=com.ibm.rcp.core.internal.logger.boot.LoggerConfig
-Dosgi.hook.configurators.exclude=org.eclipse.core.runtime.internal.adaptor.EclipseLogHook
-Dosgi.framework.extensions=com.ibm.rcp.core.logger.frameworkhook
-Xbootclasspath/a:“${rcp.home}/rcp/eclipse/plugins/com.ibm.rcp.base_9.0.0.20130228-1411/rcpbootcp.jar”

DYLD_LIBRARY_PATH=/Applications/IBM Notes.app/Contents/MacOS
NOTESBIN=/Applications/IBM Notes.app/Contents/MacOS