Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

These training archives may be out of date, but have been retained and kept available for the community's benefit in reviewing previous sessions.

Current training documentation can be found here: Training

Table of Contents

Learning outcomes

  1. Communicate value of cross-institutional collaboration process
  2. Feel comfortable getting involved in development sprints
    • What are minimum requirements
  3. Be able to articulate technology stack and tools
  4. Know where to look for more details

...

  • Dashboard of codebase health
  • Test code coverage
  • Code problem areas, or hotspots
  • Total lines of code and complexity, etc

The basics

Java7 webapp

  • Fedora is a standard Java7 web-

...

  • application 

      ...

        • Jetty and

      ...

        • Tomcat, or one-click

      ...

        • Deployed as a war

      jersey library

      ...

      • Configuration via 
        • Configuration files
        • System-properties
        • Repository objects/resources

      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

      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

      ...

      Git process

      standard

      • Standard: fork the codebase, commit to a branch, send PR

      ...

      • Facilitates collaboration

      Application stack

      Top - Fedora webapp

      ...

      • Adds preservation and access sensibilities
          linked
          • Linked data,
          ldp
          • 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

            Background reading

            jax-rs (jersey)

            jcr

            infinispan

            modeshape

            maven

            git-flow

            guava

            wiki - process, documentation, roadmap