You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

The basics

Java7 webapp

Fedora is a standard Java7 web-application that 

jetty and tomcat, or one-click

deployed as a war

jersey library

most of the configuration via system-properties

Maven3

build tool

manages library dependencies, build artifacts, code formatting, integration tests, release signing and deployment, code-coverage, etc

release artifacts are deployed to maven-central

Github

https://github.com/fcrepo4

Main F4 codebase

core of f4

fcrepo4

Other important projects

ontology

fcrepo-jms-indexer-pluggable

fcrepo-module-auth-rbacl

fcrepo-module-auth-xacml

fcrepo-build-tools

fcrepo-sample-dataset

Experimental projects

https://github.com/fcrepo4-labs

Git process

standard

fork the codebase, send PR

<link>

Application stack

Top - Fedora webapp

adds preservation and access sensibilities

  • linked data, ldp abstraction

Middle - JCR implementation

Modeshape - open source jcr reference implementation

<jcr spec>

Bottom - Storage/Caching

Infinispan - open source java caching and persistence

foundation of clustering that is exposed through the stack

Sprints

2-week long sprints

schedule in 6-month phases

community developers

Weekly schedule

first Monday is sprint planning

stand-up meeting every day at 11am ET

every Thursday has technical community call

Thursday of second week is sprint wrap-up meeting

Friday of second week is tying loose ends

Support tools

Pivotal Tracker

bug tracking system

tightly tied with git commits

  • ticket flow/process

Travis-CI

basic sanity build on each commit

Jenkins

continuous integration build server

publishes snapshot build artifacts to sonatype

publishes code-coverage and stats to sonar

Sonar

dashboard of codebase health

code coverage

code problem areas, or hotspots

total lines of code and complexity, etc

Background reading

jax-rs (jersey)

jcr

  • No labels