Project

General

Profile

FAQ » History » Version 3

amit -, 04/24/2008 12:00 AM
Added Jon's question and Paul's answer.

1 1 amit -
= Mulgara Developer FAQ =
2
3
This contains administrative information for developers who wish to contribute
4
to the Mulgara Project.
5
6
IMPORTANT: Due to the licensing requirements in moving from the MPL to the OSL
7
we need to carefully document all changes to existing source files. This is
8
very important for developers contributing to the project. More details are
9
provided below.
10
11
== FAQ ==
12
13 2 amit -
'''What does Mulgara mean?'''
14
15
Like the [http://www.australianfauna.com/kowari.php Kowari], the
16
[http://www.australianfauna.com/mulgara.php Mulgara] is an Australian marsupial, and
17
is listed as "vulnerable".
18
19 1 amit -
'''What License is the code under?'''
20
21
The OSL. This was chosen to be compatible with the original MPL license of
22
Kowari. The MPL specifies an organization must be an "initial contributor" for
23
the licensed code. Since Mulgara is entirely community driven, a more
24
appropriate license was needed.
25
26
'''How do I get the source code?'''
27
28
You need a version of Subversion which supports SSL (encryption). Subversion
29
is an open source tool, and is free to download. Not all versions of
30
Subversion feature SSL, so ensure you have one which supports this option.
31
32
The following command will get the latest version of Mulgara:
33
34
{{{
35
svn co https://mulgara.org/svn/mulgara/trunk
36
}}}
37
38
You can also browse the source code by pointing your browser directly at this
39
link.
40
41
'''How do I contribute code?'''
42
43
Please mail contributions to the developers' list in patch format with
44
comments and justification. One of the lead developers with add your code as
45
soon as it can be tested.
46
47
'''How can I get read/write access to the source repository?'''
48
49
Ask an administrator on the developers' mailing list. Once you have
50
established a good track record then we will consider giving you full
51
read/write access to the repository. We hope to have a more formal process in
52
place soon, so that the procedure will be open and accountable.
53
54
'''How do I learn the architecture of Mulgara?'''
55
56
Eventually this information will be posted in the Mulgara Wiki. In the
57
meantime, try the following:
58
59
 * Download the source and read it. If code is not clear and comments are lacking, then please report it.
60
 * Ask on the developers' mailing list.
61
 * Read Paul's blog. Many of the relevant entries may be quite old. Ask him to write about something if you need specific information. In recent months he hasn't been writing regularly, but he is still there and willing to answer most questions in detail.
62
63
If you learn something that is not adequately documented, then please consider
64
adding it to the Wiki.
65
66
'''Where is the documentation for Mulgara development?'''
67
68
On the Development page in the Wiki. If something is missing, then let us
69
know, and we will endeavor to add it.
70
71
'''How do I develop for Mulgara with Eclipse?'''
72
73
Install Subclipse for Subversion in Eclipse, and check out Mulgara using the
74
address found in the download page.
75
76
Mulgara makes heavy use of 3rd party libraries, some of which generate code.
77
Eclipse will report errors until it sees all of the libraries and code already
78
available. To accomplish this we have an Ant task called ideSupport. Build
79
this from the command line, and then refresh the Eclipse project.
80
81
For more details see the HOWTO.
82
83
'''How are the legal change files being created?'''
84
85
We are using some simple scripts on the Subversion repository. These may be
86
modified as the management of the project becomes more complex. It is because
87
this is a semi-automatic process that we need to ensure all commit comments
88
are accurate. The basic information for the first release is based on the
89
output of:
90
91
{{{
92
CURRENT_TX=`sudo svnlook youngest /opt/svn/mulgara`
93
LAST_TX=1
94
for i in `seq $CURRENT_TX -1 $LAST_TX`;
95
    do sudo svnlook changed /opt/svn/mulgara --revision $i >> KOWARI-MODIFICATIONS.txt
96
    sudo svnlook info /opt/svn/mulgara --revision $i >> KOWARI-MODIFICATIONS.txt
97
    echo >> KOWARI-MODIFICATIONS.txt
98
done
99
}}}
100
101
'''Why is my question not answered here?'''
102
103
Because I didn't know about the issue and no one has asked me about it yet.
104
Let one of the developers know, and we will put something up. Feel free to
105
harrass us if we take too long.
106
107
'''Why do you sometimes mis-spell words?'''
108
109
The project was started in Australia. Mulgaras are Australian, Kowaris are
110
Australian, and I'm Australian. I live in the USA now, so I try to remember to
111
use American spelling, but sometimes I forget.
112 3 amit -
113
''' I am getting the following exception upon Mulgara startup running on my
114
Windows XP machine:'''
115
{{{
116
[java] INFO 11:59 MulgaraInternalTransaction> Committing Transaction: 4779445, state=ACTUNREF, inuse=1, using=0
117
[java] ERROR 12:00 XAStatementStoreImpl> I/O error while performing prepare.
118
[java] java.io.IOException
119
[java]     at java.nio.MappedByteBuffer .force0(Native Method)
120
[java]     at java.nio.MappedByteBuffer.force(MappedByteBuffer.java:144)
121
[java]     at org.mulgara.store.xa.MappedBlockFile.force(MappedBlockFile.java:218)
122
[java]     at org.mulgara.store.xa.ManagedBlockFile.force(ManagedBlockFile.java:147)
123
[java]     at org.mulgara.store.xa.AVLFile.force(AVLFile.java:170)
124
[java]     at org.mulgara.store.statement.xa.TripleAVLFile.force(TripleAVLFile.java:279)
125
[java]     at org.mulgara.store.statement.xa.XAStatementStoreImpl.prepare(XAStatementStoreImpl.java:817)
126
[java]     at org.mulgara.resolver.StringPoolSession.prepare(StringPoolSession.java:242)
127
 .
128
 .
129
 .
130
}}}
131
132
The error you are seeing is happening while an uncommitted transaction
133
is being committed. (Did the system shut down cleanly?)  Once you get
134
it up and running it might be fine to continue as normal. If that's
135
the case, then forcing the system to NOT use file mappings should get
136
you going again.  Do this by updating the command line to include the
137
following:
138
{{{
139
java -Dmulgara.xa.forceIOType=explicit -jar mulgara-1.x.x.jar
140
}}}
141
142
If this works, then you can either continue running like this, or else
143
shut down cleanly and start up again normally.