Revised handleUploadRequet.
Add three methods into this class. One is named getServerCode, to given a server name, it return server code in xml_replication table.One named insertServerIntoReplicationTable, if a server is not in the server list, it will insert it.One is named WriteReplication, this method will be used in forceReplication. It delete the replication code in it.
Delete the control that when action="insert", rev should be 1
Overload a method debugMessage(String msg, int debugLevel)User can set a debugLevel for this message. If debugLevel is less than the default a value in build.xml, this message will be printed.If user set a value less than or equals 0, debugLevel will be set automatically to 1. So we can set default value to 0 in build.xml file and close all debug message.
Add a variable named debuglevel here. It control the differrent debug level message will be printed.
Add a property named debuglevel in it. This property will control the debug message. It set higher, more debug message will print out
This file now contaions login testing for nceas, pisco and lter ldap server. It includes both successful and failed login testing.More testing such as insert xml document and data file ... will coming.
Revise junit testing part and make it working.Delete the variables for httpclient.jar and junit.jar
This jar file can be deleted.
This jar file will install in ant/lib.
Add two variables junit and httpclient in cpath
In order to implementate junit, this jar file is needed.
In order to test MetacatServlet, we need use HttpMessage class, so add this jar file
Add two methods getHomeServer and getServerLocation. Given a docid, getHomeServer can get the information of its home host. Given a docid, getServerLocation can return server code for it.
In handleUpdateRequest method, if a metacat was configured to be hub super, it can provide any documents in its database. If the metacat is notsuper, it only provide the documents list which home host is itself.
Adding a hub control to data file in handleUpLoad method. Data file was changed can be replicate to all server or only home host.
Add a hashtable - server list as a class variable. So programmer have a control to the server list which will be forced to replicate.
Add a hub control in write and writeData method. If hub==super, metacat can replicate any document in its database to any server in server list. If it is not super, metacat only replicate local documents to any server in server list. If a document' home host is not itself, metacat only force replicate the document to the document's home host.
Adding a variable "hub". If hub=super, the metacat can replicate the documents and data file which's home host is not itself.
In update method, adding some code to handle replicate data file. Fixed the bug in deleting documents.
Making parser to handle datafile attribute in parsing updated doclist.
Add a new attribute in updated doc list: data file. So from this attribute, we can tell which document is a data file.
In writeDataFile method, using getDataFileLockGrant(docid) replace getDataFileLockGrant(docid, serverCode). The latter will cause a problem
Add a new variable datafileflag. This variable will indicate if a document is a data file in updated documents list in replication.
Add two controls for handle replication server list is empty and updated document list is empty
Using DocumentImpl.writeDataFile method in handleReplicateDataFileRequest. Make code simple.
Add a control to handle if the server list is empty.
Add a method named writeDataFile. This method will register data file into xml_documents table and save a input stream to a file.
Adding a new feature that in uploaddatafile that the datafile can be replicated.
Adding a control which can turn on or off replcation data file.
Add method getDataFileLockGrant(). This method will check if xml-document of data file can be store into database.
Add some new format.
changed .highlight style so font-size attribute is 1em instead of -1. Original -1 setting was not NN4 compatible
Add two method: handleGetDataFileRequest and handleForceReplicateDataFile. The two methods will handle data file replication.
Adding handle force replication data file part.
Add a new method named unRegisterDocument. This method will delete the record in xml_document table which is for a data file
Figure out the configuration issue about replication. If metacat was configured to set replication off in build.xml, it will reject replication.
Adding a method named handleGetDataFileRequest. User can download data file from replcication now.
Change replication and replicationdata to be tokens
Adding two properties: replication and replicationdata. Administor can config build.xml instead of metacat.properties file.
Add two variable: replication and replicationdata.If administrator set replication on, replication will work. Set it off, it stop.If administrator set both replication and replicationdata on, metacat will replicate both meta data and data. If replication is set on and replciationdata set off, metacat only replicate meta data.
Currently, some document in xml_document table doesn't have entries inxml_access table. This is okay during the old access policy.But we changed the access policy( see bug 437 ) and if there is no entry inxml_access table, except owner, other person can not access it....
Fixed the bug that handle force replication
Fixed the bug that to handle forceReplication action
Add a method named getLocalReplicationServerName
Fixed the bug metacat will set server location to 1, no matter it is.
Fixed the getall didn't work. Now local host can insert or update documents from remote host.But still there some problem on force replcation.
Adding a variable "context " here.
Adding a new token "context" in it.
Token for the server is changed to correct one.
Fixed getGroup method return a exception and cause authenticate failed.
Fixed the getIdentifyingName() sub so that it properly looks up someonesDN if passed in a DN that is an alias. This is mainly important forsites like PISCO that use a different root to their tree than theecoinformatics.org tree. Now we can successfully authenticate againast...
Some changes for pisco.
updated some spelling and grammar errors
turned debug off for the release
hopefully fixed the connection closed error.
fixed groups error, I hope.
Removed obsoleted marine files. See the new "marine" module forrelevant copies of these files.
New stylesheet that is specific to the KNB website.
replaced dev.nceas.ucsb.edu with server in the marine index file
server
changed some values for the release
updated data directory note
When Metacat installed, it can automatically create data directory for data file.
updated build file. fixed the dist target so it doesn't copy the build directory into the distro.
fixed auth bug
Adding a note for user. The user should make a directory under 'webapps/context/'.The user should have write permission for this directory.
updated for 1.1.0
Update the install instruction.
changed version number from 1.1 to 1.1.0
fixed some things for release 1.1
Change description for access control in readme file from "aplly" to "not aplly".
changed some minor points in the readme.
Update README for 1.1 release.
updated authldap to get the groups to work (king of)
Change every "http://server to "systemidserver". It will look like:INSERT INTO xml_catalog (entry_type, public_id, system_id) VALUES ('DTD', '-//ecoinformatics.org//eml-software-eml-version//EN', 'systemidserver@html-path@/dtd/eml-software-eml-version.dtd')
systemidserver
eml-version
Change every "http://server" in target to "systemidserver". It will looklike that:<targetpublicid="-//W3C//HTML//EN">systemidserver@style-path@/resultset.xsl</target>
Add a property named systemidserver, its value="http://host.domainname:8080" Add a token named systemidserver too.
Method getGourps was revised. Attributes variables were set there. Other wise, when it caught a referral exception and started a thread, this will caused a exception problem. When string array groups were returned by method getGroups in getPrincipals method, we should check if the groups is null or not. Otherwise it will cause a exception problem. This revise is for bug 445.
In hasPermission method, a situation was considered: if no user and group, the permssion will be true. This is for the command line invocation.
This is sample JUnit test file for MetacatURL class. In this file, getProtocol, toString and getParam methods are tested.
This script file can run serials queries and print out the running time.
In order to test query performance. We need add lots of documents to database. This script file can add couple documents to database by for loop.
Add a target - test in the file. Now user can type "ant test" to run the test class extends from JUnit.
Method endElement in AccessControList was revised. A feature that put access document itset into xml_access was added.
In hasPermission method, a rule for access document is implements. If user want to write a access document, it should hhave "all" permission.The permission for access document now is looking up in xml_access table directly, rather get same permission to data set document.
In order to increase data file docid, method registerDocument was revised. Now it not only insert a new data file record to xml_documents table, but also can update the data file documents. Moreover, it can archieve the old version to xml_revisions table. Two other private methods were added to handl these futures: deleteXMLDocuments and getLatestRevisionNumber.
fixed my tagging error
some small changes I had to make to get the QAENGINE demo to work right. this should be committing in a branch
We decided that the permission for a user to an access documents is as same as to the data set document(which contains the access document). In order to do this, we need to look-up xml-relation table. If we could find the data set document id, just check the id. If we couldn't find one, we need check if the user is owner. If it is, has permission. Otherwise, doesn't have.
Add a new method getDataSetId to the class. The permission policy for access documents is: the user will have the same permission as data set file. (There is no entry in xml_access table for access document.
Add a throwing exception in hasPermission and hasReadPermission methods.
Add a throwing exception in haspermission method.
A constructor for this class was added. In the new constructor, user can specify the revision number he want to update. In method writeDocumentToDB, when a update action happend, the rev number would not automatictlly to add one, but it can go to specified number. This is for bug 417.
A constructor was added to this class. In this constructor, user can specify the revision number he want to update. And the number can be passed into a DocumentImpl object constructor in startElement method. But the number should be greater than current number in database.
A method named getLastRevisionNumber was added. And condition for checking accession number was revised too. Now metacat wouldn't refuse a revsion number which is 2 or more greater than current revision number in the database. This is for bug 417.
Access document was added to exported data package too.
The method - hasAllowRule was revised. If a action -read or update was approved, all ticket count of allow rule entries for this action will minus one if the entries have ticket count number (not null).
The two hasPermission methods were rewritten. Some logic bugs were fixed. Now user, public and group will not be checked speratedly, but they will be check together as string array. In order to do this, private methods isAccessDocument, containDocumentOwner, isAllowFirst, hasAllowRule, hasExplicitDenyRule, hasImplicitDenyRule, and createUsersPackage were added.