Skip to content

Priha is a JSR-170 (aka Java Content Repository) repository implementation. It's light-weight, requires no dependencies (aside from jcr-1.0.jar) and is well-suited for embedding.

License

jalkanen/Priha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is Priha, a JSR-170 Java Content Repository implementation.  Unlike
the all-singing, all-dancing, fully CRM-certified implementations, Priha
is targeted at small applications, embedders and hobbyists, who like to
have a simple repository model with as few external dependencies as possible.

You can start off with Priha, and then just simply switch to a more efficient
solution (like Jackrabbit) once you start to need the performance / reliability.

The word "priha" is an ancient Finnish word and it roughly means a
"young man".  It is not in common use these days, except as an idiom
"ylen sankia priha" ("a very chubby young man").  Which, if you ever were
to use it correctly in the presence of a Finnish person, would probably get you
a free beer and plenty of questions.


GOALS
=====

The goals of the project are:

    * Provide a "good enough" implementation to ship with JSPWiki 3.0.
    
    * Optimize for fast fetching of medium-sized text objects (i.e.
      wikipages)
      
    * Good storage of large binaries (i.e. attachments)
      
    * Provide integrated versioning
    
    * Provide an SPI so that different types of providers can be used
      without hiding the JSR structure to something which cannot be
      understood by a mortal man.
      
    * Provide an SPI so powerful that JSPWiki can be easily migrated
      and keep the existing clarity of its Providers.
      
    * Scalability up to medium size systems (200 wikis, each with 2000 pages,
      total of 400,000 nodes).
    
    * Ships with as few external libraries as possible
    
The anti-goals (i.e. the things I don't particularly want to pay attention
to, because they are not useful (yet) in JSPWiki context) are:

    * Transactions support
    
    * HA or clustering support.  These should be left to an industrial-scale
      JSR implementation.
      
    * JNDI
    
    * Custom Nodetypes
    

REQUIREMENTS
============

Priha requires and takes advantage of Java 5 (JDK 1.5).  To compile and run the JCR 
tests you need the included libraries.

To run Priha, you need:
* a JAXP-compliant XML parser library somewhere in your classpath (the one with JDK5 is fine)
* jcr-1.0.jar somewhere in the classpath as well

That's it!

See doc/Configuration.txt for further information about how Priha is configured.


COMPILATION
===========

Priha uses Apache Ant to compile, and Apache Ivy for managing dependencies.  Ivy will
be downloaded automatically if you don't have it already installed.

To compile, run "ant".  This creates the JAR file under /build.

To run the full test suite, run "ant jcrtests".  This will create a test report in
/tests/reports.

If you use Eclipse, the use of IvyDE is highly recommended. Otherwise you will need
to install the dependencies manually with Ant first, then tweak the classpath within
Eclipse.


LICENSE
=======

Priha is licensed under the Apache 2.0 license.  Please see the LICENSE file in the
same directory as this document.


About

Priha is a JSR-170 (aka Java Content Repository) repository implementation. It's light-weight, requires no dependencies (aside from jcr-1.0.jar) and is well-suited for embedding.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages