evict the HazelCast SystemMetadata entry if we update the access control rules via Metacat's legacy API, otherwise stale SystemMetadata stays in memory instead of being looked up from the backing table store.
optionally include ORE generation/insertion into Metacat when generating SystemMetadatahttps://redmine.dataone.org/issues/2056
Set a default HazelcastInstance after init() is called, and use this instance in getLock() to acquire a lock in the cluster.
no need to cast docInfo entries to String -- they are all strings
set revision history, the create/update dates and the owner/submitter (correctly)
use shared method for looking up "docInfo" map -- both in Metacat replication and in D1 system metadata generation
make default formatting a little bit easier to read
reformat code -- no changes
refactor SystemMetadata creation into separate class from the MetacatHandler -- this will be shared by upgrade code and normal metacat api.
include all document revisions when generating "missing" system metadataTODO: revision graph captured in obsoletes/obsoletedBy
When using ILock.lock(), get a lock on the string value of the Identifier, not the Identifier object itself. Hazelcast locking won't work otherwise.
Use the Hazelcast ILock mechanism to lock the system metadata identifier rather than using IMap.lock(pid).
simplify SystemMetadata generation -- will be done during Metacat upgrade for D1 features/support.
clean up populator; use IOUtils library to do string<->stream conversions
utilities jar should not be committed to Metacat otherwise we will not retrieve the tagged version during Metacat build process.
catch all possible exceptions
act as a registered CN when calling CN methods -- create(), for example, is restricted to only be callable by a node of type CN.
Set sessionid for clientVeiwBean when it handle a request.Always set the order type to "allowFirst".
use IOUtils for testing read/write of XML strings. This goes along with the utilities project change to use the same apache commons IO library. Be sure to clean the utilities checkout in order to catch the right utilities svn tag when building!
remove the D1 configuration group (header)
verify checksum when retrieving replica from another member node.https://redmine.dataone.org/issues/1794
make sure to get/put system metadata to the HZ map instead of using IdentifierManager directlyverified changes for: https://redmine.dataone.org/issues/1999
match documentation for the MN.describe() headerhttps://redmine.dataone.org/issues/1904
configure synch schedule in the admin screenhttps://redmine.dataone.org/issues/1933
look-up sych schedule from metacat properties instead of hardcoding themhttps://redmine.dataone.org/issues/1933
when comparing D1 Subject objects, use the equals() method not direct string comparisonhttps://redmine.dataone.org/issues/2050
access nodeList list correctlyhttps://redmine.dataone.org/issues/2049
When read a FGDC document, Metacat will add a new parameter enableFGDCediting params for the xml transforming.
New d1 common jar. Fixing my overwritten jar.
set the uploade file size -1.
New d1 jars with changes to SubjectBase in the types classes.
remove D1 configuration -- it has its own admin screen now
updated cos.jar -- cos-26Dec2008.zipFile upload improvements:
Added support for Servlets 2.4 and Java 5.Added an ExceededSizeException type to make catching easier.Added support for EBCDIC machines.Added a workaround for browsers that send Content-Length of -1....
allow unknown content sizeshttp://bugzilla.ecoinformatics.org/show_bug.cgi?id=5543
run replicate() in a separate thread so that we don't wait for potentially large data objects to be moved around the system.
Call replicate() asynchronously.
Use status.toLowerCase() to deal with ReplicationStatus conversion issues. This needs to be reviewed.
Use Subject.equals() when comparing DNs rather than CertificateManager.equalsDN(). Don't lock the pid in isNodeAuthorized() to debug for timeout issues. Minor debugging changes.
give the Metacat admin users FULL permissions on all data/docshttp://bugzilla.ecoinformatics.org/show_bug.cgi?id=4728
correct path for question mark icon -- though the documentation link is broken
remove replication control panel from dev skin -- now in admin interfacehttp://bugzilla.ecoinformatics.org/show_bug.cgi?id=5528
replication control panel now fully implemented as an admin configuration screenhttp://bugzilla.ecoinformatics.org/show_bug.cgi?id=5528
change the footer to be regwhitetext style.
make regtext style black and add new style regwhitetext.
move replication configuration actions to the admin servlet and out of the replication servlethttp://bugzilla.ecoinformatics.org/show_bug.cgi?id=5528
Using the method sending form parameters rather than form object.The reason is IE will invalidate the form object after putting a login message on the div which contains the form.
Add methods to send form parameters to the server.
save SystemMetadata when replicating data and metadata -- this way if/when the node decides to be a DataONE MN it already has the information needed for each object
Minor logging for isNodeAuthorized(), and compare subjects properly. Change this to Subject.compareTo() when it is vetted.
check for authenticated and verified user permissions
throw NotAuthorized when there is no session
Catch RuntimeExceptions thrown by Hazelcast as opposed to general Exceptions to we don't catch exceptions we're trying to throw.
include Subject comparator changes
get params from multipart params for systemMetadataChanged call
generalize exception handling -- add cause detail
remove DataONE schema reference in xml_catalog
Changes to setReplicationStatus and isNodeAuthorized(), working out minor bugs in replication.
include exception cause when throwing new exception (combine RuntimeException in Exception handling -- they are almst identical)
use /cn/xslt/ for the standard cn deployment
new jars with (at least) xslt updates for the D1 CN
throw InvalidToken when session is null
correct typo
Send the correct node id (the target node) when calling setReplicationStatus()
get pid from normal params, not the URL -- the client should include them in the params -- and not as a serialized "object" since it is just a string value
check obsoletes and obsoletedBy PIDs when updating objects
delete system metadata when MN.delete() is called.
Using the method which reloads the page after sending login. This will fix an issue that the search function couldn't get the session id after login.
Add a new method which will reload the page after submitting a form.
throw InvalidToken when there is no session (certificate) provided in update() and delete() methods.
Calls to setReplicationStatus() can only be made by a CN or the MN that is the target replica node. Implement this service restriction in CNodeService using CertificateManager's equalsDN() method.
The ReplicationStatus parameter is 'status', not 'replicationStatus', in the architecture documentation.
Although parameters for setReplicationStatus() are expected as multipart/form-data fields, they seem to be added to the HttpServletRequest as URL parameters during the proxy forwarding in d1_cn_rest_proxy. Test for their existence as multipart fields, but fall back to request params, otherwise, throw an InvalidRequest exception.
updated d1_libclient jar from trunk
updated d1_common jar from trunk
lookup stylesheet from metacat.properties for CN list objects and list formats. This is used in conjunction with the CN rest service deployment where the xslt is actually kept.
actually persist the MN id value to the properties file
set the newly assigned MN id after we call CN.register().
Added stack trace debugging for CNodeService.isNodeAuthorized() for tracking down replication issues.
DataONE MN registration/configuration is now its own configuration page in the admin interface.http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5531
Since we're using a multipart form to encode parameters, extract the params out of the multipart form prior to doing a get() from the multipartparams map in setReplicationStatus(). Likewise, do the same in updateReplicationMetadata() and setReplicationPolicy().
New libclient jar with changes to CNode.setReplicationStatus() (r5824).
Use a session object that is set to null when calling CNode.setReplicationStatus()
Add debugging code to MNodeService.getReplica().
Set a new Session object to null, to be overwritten by the CertificateManager session information from the X.509 certificate.
more changes for http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5527
get server param only when it is expected
check replication table (not keystore) for trusted server host name match
Adding new D1 jars (r5818) with changes to libclient's CNode.setReplicationStatus(). It now sends multipart params rather than files since there's no XML structure to ReplicationStatus.
added note about PermGen space + Geoserver
Fix cast to List<Node> in isNodeAuthorized().
List the correct REST endpoints for replication in the documentation.
upgrade to 1.0.1-SNAPSHOT DataONE jars
check for blank key passwords
started replication unit test
Keep /dirtySystemMetadata as the REST endpoint for systemMetadataChanged() for now.
New D1 libraries, fix for MNode.isNodeAuthorized() and other exception handling.
MockCNode.getSystemMetadata() no longer throws InvalidRequest.
add note about alternative methods for getting cert/key
use prepared statement place holder (?)