03 libraries, source code, and toolset
TRANSCRIPT
Darwino Libraries, Source Code, & Toolset
Libraries
• Darwino consists of a tree of Maven libraries
• Source code is in the Maven repository
Consuming the Libraries
• Everything is intended to be consumed by Maven or, potentially, Gradle• The download distribution also comes with several sets of “just a bunch of
Jars”, which is a setup that has been used in some limited cases, but isn’t the usual method– We’ll be changing the download to reflect this
Conceptual Layout
• Darwino has several conceptual “columns” and several layered platform trees
• Main “columns”:– Commons & Commons Runtime– JSON store code– Generalized SQL & RDBC code– Generalized services code– Web support
Conceptual Layout (Cont’d)
• Individual platforms:– JRE
• Vendor support (Bluemix, etc.)• JEE
– Mobile• Android• iOS
– RoboVM 👻– MOE
• SWT– Domino (separate tree, based on JEE)
Platform Libraries
• Each target platform has a corresponding project that handles most needed dependencies– dwo-android-platform-native– dwo-jre-j2ee-platform– And so forth
• Used in the generated template projects, these can cover the main bases for what you’ll need in your application
• Beyond the core platform libraries, individual support libraries (e.g. Watson) can be included via Maven
How Darwino Is Built
• Darwino is a set of related Maven project trees– darwino-platform: the core platform and shared services– darwino-studio: the shared Studio code as well as the Eclipse-specific
implementation– domino: the Domino adapter and runtime support code– darwino-demo: the set of example projects (publicly-available repo)– darwino-distribution: ties the release together
Some Notes About Tycho
• Tycho is used for the Studio and the Domino projects• Due to the inconvenience of working with a Tycho project mixed with non-
Tycho ones, it is kept out of the core platform and examples• This leads to a bit of… oddity when targetting Domino for a running Darwino
app– Requires special Mavenization of the XSP libraries to compile properly– We have a tool to run individually
Jenkins
• We use Jenkins for our build management• Four parallel sets of builders: master/develop for each of
enterprise/community editions• Runs on a Mac mini for full iOS building• Windows VM for testing Windows-native code
Artifactory
• Artifactory handles hosting Maven artifacts• Same tooling as OpenNTF uses for this purpose• Registered Darwino users can visit maven.darwino.com and retrieve their
encrypted passwords after login (top right)• In addition to Darwino, this hosts allowable third-party libraries, such as the
Maven-ized Android artifacts
Thank you for your attention!