Skip to content

Commit

Permalink
Merge pull request #111 from biocodellc/develop
Browse files Browse the repository at this point in the history
Merging develop into master to sync with release 3.0.12
  • Loading branch information
jdeck88 authored May 15, 2019
2 parents fa22c0f + e9466ba commit 67dd2fb
Show file tree
Hide file tree
Showing 22 changed files with 1,196 additions and 540 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ resources/geome_secrets.json
.idea/
build/
out/
*.iml
*.ipr
*.iws
18 changes: 18 additions & 0 deletions JBD_readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# JBD Readme

Random notes about working in the LIMS development environmeent

# if we ever get class conflicts of the same class name, some steps to rectify:
NOTE: I believe this happens when i switch versions of geneious... doesn't seem to happen
if i stay on a single geneious version or with a single genious API.
there is probably a more elegant way to proceed here but this is what i've found helpful
* clean the Data directory or provide an entirely new one
* rm -fr /Library/Application\ Support/Geneious/plugins/com.biomatters.plugins.biocode.BiocodePlugin/
* rm -fr ~/.gradle/caches
* may have to clean gradle like ./gradlew clean

# Quickly create a plugin, without running time-consuming Tests... Only for development
# only run from the command line
```
./gradlew quickCreatePlugin
```
11 changes: 6 additions & 5 deletions PluginVersions.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<PluginVersions>
<LatestVersion>3.0.9</LatestVersion>
<LatestVersionURL>https://github.com/biocodellc/biocode-lims/releases/download/3.0.9/BiocodePlugin_3_0_9.gplugin</LatestVersionURL>
<ReleaseNotes>==Biocode Plugin 3.0.9 - 6 March 2019==
* Fix Project search bug
* Add Genbank Metadata data properties to results list for Geome
<LatestVersion>3.0.12</LatestVersion>
<LatestVersionURL>https://github.com/biocodellc/biocode-lims/releases/download/3.0.12/BiocodePlugin_3_0_12.gplugin</LatestVersionURL>
<ReleaseNotes>==Biocode Plugin 3.0.12 - 14 May 2019==
* Fixes bug in fetching tissues for plates
* Fixes "Already connected" exception occuring in Geneious v9
* Changed behaviour when creating new extractions that use existing extractions ID's
</ReleaseNotes>
<ExtraInformation/>
</PluginVersions>
36 changes: 28 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,22 @@ plugins {
id 'net.saliman.properties' version '1.4.5'
}

println "Gradle " + GradleVersion.current().getVersion() + ' - ' + GradleVersion.current().getBuildTime() + ' - ' + GradleVersion.current().getRevision() + (GradleVersion.current().isSnapshot() ? " SNAPSHOT" : "")
//println "Gradle " + GradleVersion.current().getVersion() + ' - ' + GradleVersion.current().getBuildTime() + ' - ' + GradleVersion.current().getRevision() + (GradleVersion.current().isSnapshot() ? " SNAPSHOT" : "")


apply plugin: "java"
apply plugin: "idea"

version = '3.0.9'
version = '3.0.12'

defaultTasks 'createPlugin';

task wrapper(type: Wrapper) {
gradleVersion = "3.5"
}

ext {
shortName = "BiocodePlugin"
pluginName = "com.biomatters.plugins.biocode." + shortName
geneiousPublicAPIVersion = "10.0.5"
geneiousPublicAPIVersion = "11.1.5"
//geneiousPublicAPIVersion = "2019.1.1"
//geneiousPublicAPIVersion = "9.0.5"
pluginDistFilename = "${shortName}_" + version.replaceAll("\\.", "_") + ".gplugin"
geneiousFilesName = "GeneiousFiles"
geneiousFilesPath = "$buildDir/$geneiousFilesName"
Expand All @@ -46,9 +44,11 @@ repositories {
}

dependencies {

compile group: "com.biomatters", name: "geneious.publicapi", version: "$geneiousPublicAPIVersion", configuration: "api", changing: true
compile group: "com.google.guava", name: "guava", version:"15.0"

compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
compile group: "org.hsqldb", name:"hsqldb", version:"2.3.0"
compile group: "org.jcommon", name:"jcommon", version:"1.0"
compile group: "org.jfree", name:"jfreechart", version:"1.0.15"
Expand All @@ -71,7 +71,10 @@ dependencies {
compile group: "commons-beanutils", name:"commons-beanutils", version:"1.9.2"
compile group: "mysql", name:"mysql-connector-java", version:"5.1.6"


compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.8'
compile group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
compile group: 'org.jsslutils', name: 'jsslutils', version: '1.0.8'

testCompile "junit:junit:4.+"
testRuntime group: "com.biomatters", name: "geneious.publicapi", version: "$geneiousPublicAPIVersion", configuration: "runtime"

Expand Down Expand Up @@ -165,6 +168,21 @@ sourceSets {
runtimeClasspath += fileTree("$geneiousFiles/lib")
}
}
task quickCreatePlugin ( dependsOn: assemble, type: Zip) {
description "Creates the gplugin to install into Geneious"

from {
configurations.compile.filter {
!it.getName().startsWith("GeneiousPublicAPI-") && !it.getName().startsWith("jdom-") && !it.getName().startsWith("jebl-")
}
}
from(libsDir)
from(sourceSets.main.resources)
into "$pluginName"

archiveName pluginDistFilename
}

task createPlugin(dependsOn: build, type: Zip) {
description "Creates the gplugin to install into Geneious"

Expand All @@ -181,6 +199,8 @@ task createPlugin(dependsOn: build, type: Zip) {
}

task runGeneious(dependsOn: [extractGeneiousRuntimeFiles, assemble], type: JavaExec) {
// NOTE, the expectation is that we java java 11 linked here
//executable '/usr/bin/java'
main 'com.biomatters.iseek.application.ISeekMain'
classpath sourceSets.main.runtimeClasspath
args 'extraPlugins=' + pluginName
Expand Down
67 changes: 67 additions & 0 deletions development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
## Developers Section
This section is intended for developers interested in contributing to the Biocode LIMS development.

## Requirements
* Java Development Kit 1.6+
* Gradle

### Geneious Plugin
Run the following command from the root directory to create the gplugin file:

./gradlew createPlugin

Drag and drop the gplugin file from the build/distributoin directory into Geneious to install the plugin.

### LIMS Server (Under Development)
The LIMS Server is packaged as a distributable WAR file that can be deployed on most Java Web Servers. (eg) Jetty
or Apache Tomcat.

Run the following command from the **biocode-server** directory to create the war file:

./gradelw create-war

The war file will be created in the biocode-server directory.

## Development
The development of this project follows the [Gitflow branching strategy](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
All development is done in the develop branch and merged to master when complete. Thus master only contains released code.

When switching branches it is always a good idea to run a build with

./gradlew build-plugin

This will ensure any dependency changes for the new branch are applied and everything compiles.

### Modules
The project currently contains two modules:

* biocode-lims - The Geneious plugin
* biocode-server - The unreleased server

In most cases you will only need to make changes to the biocode-lims source code.


### Dependency Management
The plugin uses Apache Ivy for depenedency management and the repository includes everything that is required for its use.


### Use of an IDE
Many modern IDEs come with Apache Ivy integration. If you are using such a feature, please note that the biocode-server
depends on some Geneious core classes and this is not reflected in the Ivy configuration. The main reason for this is
that the required libraries are not provided standalone in any repositories.

In the gradle build, the complete Geneious runtime is downloaded and the required libraries are extracted from it.

## Contributing
Please contact [email protected]

## Biocode LIMS Server
The Biocode LIMS server is an extension to the original LIMS that adds security, user management, access control and
the ability to offload tasks from the Geneious client.

The server needs to be deployed in a compatible Java Web Application server and acts as a middle man between the
client and the LIMS database. The client communicates with the server using a REST interface. By providing this
interface rather than a proprietary one, there is the possibility of other future clients outside of the Geneious
software package.

It is currently in active development and has not been released yet.
Loading

0 comments on commit 67dd2fb

Please sign in to comment.