Download the CrossWorlds source code from GitHub or OpenNTF. The code comprises a number of plugins. The following will need importing and should be copied into the workspace:
- org.openntf.xworlds.webapp.j2eenabler will also be needed
org.openntf.xworlds.features.server is the feature you install into Liberty. Like a feature project when creating OSGi plugins, it contributes one or more jar files. In this case, it contributes org.openntf.xworlds.core, org.openntf.xworlds.dominodeps and org.openntf.xworlds.oda.
org.openntf.xworlds.dominodeps wraps the five Notes jars required to compile the core code. Without those, we don't have access to the Domino Object Model and other code required. Under the terms of the Domino licensing, these jars can't be redistributed. But the licensing does permit including them outside the Domino server hierarchy. So it's down to each person who installs CrossWorlds to put those jar files into the org.openntf.xworlds.dominodeps plugin. However, the rest of the plugin is already configured so they are already on the build path and in the META-INF definitions. All you need to do is copy and paste them into the BundleContent folder. (And if you can't copy and paste files, any development is probably beyond you!)
org.openntf.xworlds.oda contains the relevant OpenNTF Domino API files. Currently we don't distribute them, but by modifying a couple of properties in the build.properties file and running the build.xml ANT task, it will automatically pull them in for you.
org.openntf.xworlds.core contains the main CrossWorlds code. This includes the Security Manager to handle setting up Domino sessions, Thread Manager to initialise and destroy the Notes thread for each HTTP request, an Application Listener, a Filter to filter requests from relevant databases through the Thread Manager and Security Manager, Configuration interfaces and classes, an OSGi Command Manager to allow you to issue specific commands, and Xots Manager. It also includes a target platform to allow easy setup.
org.openntf.xworlds.j2eeenabler is the jar file that needs including in any application that wants to use the CrossWorlds native Java access to Domino. (You can of course just install other standard web applications on the Liberty server.) Without this, you will receive a Factory is not initialized for this thread error message.
You will have errors on several of the packages. That is expected and the steps below will resolve them, one by one.