-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
93 lines (57 loc) · 2.92 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.