03 libraries, source code, and toolset

12
Darwino Libraries, Source Code, & Toolset

Upload: darwinodb

Post on 13-Apr-2017

41 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 03   libraries, source code, and toolset

Darwino Libraries, Source Code, & Toolset

Page 2: 03   libraries, source code, and toolset

Libraries

• Darwino consists of a tree of Maven libraries

Page 3: 03   libraries, source code, and toolset

• Source code is in the Maven repository

Page 4: 03   libraries, source code, and toolset

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

Page 5: 03   libraries, source code, and toolset

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

Page 6: 03   libraries, source code, and toolset

Conceptual Layout (Cont’d)

• Individual platforms:– JRE

• Vendor support (Bluemix, etc.)• JEE

– Mobile• Android• iOS

– RoboVM 👻– MOE

• SWT– Domino (separate tree, based on JEE)

Page 7: 03   libraries, source code, and toolset

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

Page 8: 03   libraries, source code, and toolset

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

Page 9: 03   libraries, source code, and toolset

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

Page 10: 03   libraries, source code, and toolset

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

Page 11: 03   libraries, source code, and toolset

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

Page 12: 03   libraries, source code, and toolset

Thank you for your attention!