Project

General

Profile

Actions

Bug #1217

closed

Extend Metacat Interface and Client

Added by Duane Costa about 21 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
metacat
Target version:
Start date:
11/21/2003
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
1217

Description

The Metacat interface, implemented by the MetacatClient class,
exposes a number of core actions of the MetacatServlet as HTTP
requests to the servlet. The current list of supported actions
includes:

login
logout
read
squery
insert
update
delete

A number of additional actions, most of which are not
critical but are convenient, are not supported by the interface:

query
export
readinlinedata
validate
setaccess
getaccesscontrol
getprincipals
getdoctypes
getdtdschema
getdataguide
getlastdocid
getrevisionanddoctype

(Note: some of the methods listed above are obsolete and
therefore should not be included in the extended interface.
The complete list of methods that should be added to the
interface is yet to be determined.)

Some of the methods in the extended set are useful to other
clients, such as Harvester. However, Harvester should interact
exclusively with the MetacatClient, rather than directly with the
Metacat servlet. Therefore, the current interface should be
extended with the additional convenience methods so that they
can be used by Harvester and potentially other clients.

There are two ways that the current interface could be extended:

(1) Add a new interface, 'MetacatExtendedInterface.java', to
hold the definitions for the convenience methods. The MetacatClient
class would implement both the current Metacat interface and the
MetacatExtendedInterface. The advantage of this approach is that
the current Metacat interface can be kept simple in that it will
only define the core methods.

(2) Add the new methods to the existing Metacat interface.
The advantage of just adding these methods to Metacat.java is
programmatically it's easier because you only have to cast to one
interface (not two) to make method calls.

We will determine in the next few days which of these two
approaches to use.

A secondary goal of this task is to improve the documentation for
the methods in the extended interface.

A future goal (outside the scope of this task) is to refactor
Morpho and other code to use the MetacatClient to interact with
MetacatServlet.

Actions

Also available in: Atom PDF