Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/framing #1

Merged
merged 11 commits into from
Oct 24, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ out/
.settings
.classpath
.factorypath

oan-etl/data/
50 changes: 29 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,46 @@
## Micronaut 4.1.2 Documentation
## Ontology Annotation Network

*A graph to maintain our ontology annotation connections.*

Java 17

Micronaut 4.1.2
- [User Guide](https://docs.micronaut.io/4.1.2/guide/index.html)
- [API Reference](https://docs.micronaut.io/4.1.2/api/index.html)
- [Configuration Reference](https://docs.micronaut.io/4.1.2/guide/configurationreference.html)
- [Micronaut Guides](https://guides.micronaut.io/index.html)
---

- [Shadow Gradle Plugin](https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow)
- [Micronaut Gradle Plugin documentation](https://micronaut-projects.github.io/micronaut-gradle-plugin/latest/)
- [GraalVM Gradle Plugin documentation](https://graalvm.github.io/native-build-tools/latest/gradle-plugin.html)
## Feature serialization-jackson documentation

- [Micronaut Serialization Jackson Core documentation](https://micronaut-projects.github.io/micronaut-serialization/latest/guide/)


## Feature neo4j-bolt documentation

- [Micronaut Neo4j Bolt Driver documentation](https://micronaut-projects.github.io/micronaut-neo4j/latest/guide/index.html)


## Feature openapi documentation
### Modules

- [Micronaut OpenAPI Support documentation](https://micronaut-projects.github.io/micronaut-openapi/latest/guide/index.html)
#### OAN-ETL
A module to load our graph data which includes phenotypes, diseases, genes, assays. There
are multiple loaders for the different ontologies that are supported

- [https://www.openapis.org](https://www.openapis.org)
Running

```
./gradlew oan-etl:run
```

## Feature micronaut-aot documentation
Testing

- [Micronaut AOT documentation](https://micronaut-projects.github.io/micronaut-aot/latest/guide/)
```
./gradlew oan-etl:test
```

#### OAN-REST
A module that exposes our graph via a REST-API. This will be used for the hpo web application
and deployed to google cloud.

## Feature github-workflow-ci documentation
Running

- [https://docs.github.com/en/actions](https://docs.github.com/en/actions)
```
./gradlew oan-rest:run
```

Testing

```
./gradlew oan-rest:test
```
9 changes: 9 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ dependencies {
implementation("io.micronaut.neo4j:micronaut-neo4j-bolt")
implementation("io.micronaut.serde:micronaut-serde-jackson")
implementation("io.swagger.core.v3:swagger-annotations")
implementation("org.monarchinitiative.phenol:phenol-core:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
}
implementation("org.monarchinitiative.phenol:phenol-io:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
}
implementation("org.monarchinitiative.phenol:phenol-annotations:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
}
compileOnly("org.graalvm.nativeimage:svm")
runtimeOnly("ch.qos.logback:logback-classic")
testImplementation("io.micronaut:micronaut-http-client")
Expand Down
54 changes: 54 additions & 0 deletions oan-etl/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
id("io.micronaut.application") version "4.0.3"
}

group = 'org.jacksonlaboratory'
iimpulse marked this conversation as resolved.
Show resolved Hide resolved
version = '0.1'

repositories {
mavenCentral()
}

dependencies {
annotationProcessor("info.picocli:picocli-codegen")
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
testAnnotationProcessor("io.micronaut:micronaut-inject-java")
implementation("info.picocli:picocli")
implementation("io.micronaut.picocli:micronaut-picocli")
implementation("io.micronaut.serde:micronaut-serde-jackson")
implementation("io.micronaut.neo4j:micronaut-neo4j-bolt")
implementation("org.monarchinitiative.phenol:phenol-core:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iimpulse just curious here, why do you exclude slf4j-api?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forget lol, I think this came down to some version collision

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Maven, excluding would not be necessary, because the dependency that is higher in the dependency tree has a precedence. So, if you specify which version you want to use, e.g. in your top-level pom.xml, Maven will use that (more info here if you're interested, see the dependency mediation paragraph)

I think this principle sounds too useful to be Maven-specific. I would expect a similar behavior in Gradle, but 🤷‍♂️ ...

}
implementation("org.monarchinitiative.phenol:phenol-io:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
}
implementation("org.monarchinitiative.phenol:phenol-annotations:2.0.3"){
exclude group: 'org.slf4j', module: 'slf4j-api'
}
runtimeOnly("ch.qos.logback:logback-classic")
testImplementation("io.micronaut.test:micronaut-test-junit5")
testImplementation("org.neo4j.test:neo4j-harness")
testRuntimeOnly("javax.validation:validation-api:2.0.1.Final")
testRuntimeOnly("javax.annotation:javax.annotation-api:1.3.2")
testRuntimeOnly('javax.ws.rs:javax.ws.rs-api:2.1.1')
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation('org.junit.jupiter:junit-jupiter')
}

application {
mainClass.set("org.jacksonlaboratory.GraphCommand")
}
java {
sourceCompatibility = JavaVersion.toVersion("17")
targetCompatibility = JavaVersion.toVersion("17")
}

micronaut {
testRuntime("junit5")
processing {
incremental(true)
annotations("org.jacksonlaboratory.*")
}
}
Loading