|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectfedora.server.access.dissemination.DisseminationService
public class DisseminationService
Title: DisseminationService.java
Description: A service for executing a dissemination given its binding information.
| Field Summary | |
|---|---|
protected static java.util.Hashtable |
beSecurityHash
|
protected static java.util.Hashtable |
dsRegistry
The hashtable containing information required for datastream mediation. |
| Constructor Summary | |
|---|---|
DisseminationService()
Constructs an instance of DisseminationService. |
|
| Method Summary | |
|---|---|
MIMETypedStream |
assembleDissemination(Context context,
java.lang.String PID,
java.util.Hashtable h_userParms,
DisseminationBindingInfo[] dissBindInfoArray,
java.lang.String bMechPid,
java.lang.String methodName)
Assembles a dissemination given an instance of
DisseminationBindingInfo which has the dissemination-related
information from the digital object and its associated Behavior
Mechanism object. |
java.lang.String |
extractTimestamp(java.lang.String tempID)
The tempID that is used for datastream mediation consists of a
Timestamp plus a counter appended to the end to insure uniqueness. |
MIMETypedStream |
getDisseminationContent(java.lang.String url,
Context context,
java.lang.String user,
java.lang.String pass)
A method that reads the contents of the specified URL and returns the result as a MIMETypedStream |
static void |
printBindingInfo(DisseminationBindingInfo[] info)
|
java.lang.String |
registerDatastreamLocation(java.lang.String dsLocation,
java.lang.String dsControlGroupType,
java.lang.String beServiceCallbackRole,
java.lang.String methodName)
Datastream locations are considered privileged information by the Fedora repository. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static java.util.Hashtable dsRegistry
protected static java.util.Hashtable beSecurityHash
| Constructor Detail |
|---|
public DisseminationService()
Constructs an instance of DisseminationService. Initializes two class variables that contain the IP address and port number of the Fedora server. The port number is obtained from the Fedora server config file and the IP address of the server is obtained dynamically. These variables are needed to perform the datastream proxy service for datastream requests.
| Method Detail |
|---|
public MIMETypedStream assembleDissemination(Context context,
java.lang.String PID,
java.util.Hashtable h_userParms,
DisseminationBindingInfo[] dissBindInfoArray,
java.lang.String bMechPid,
java.lang.String methodName)
throws ServerException
Assembles a dissemination given an instance of
DisseminationBindingInfo which has the dissemination-related
information from the digital object and its associated Behavior
Mechanism object.
context - The current context.PID - The persistent identifier of the digital object.h_userParms - A hashtable of user-supplied method parameters.dissBindInfoArray - The associated dissemination binding information.
ServerException - If unable to assemble the dissemination for any
reason.
public java.lang.String registerDatastreamLocation(java.lang.String dsLocation,
java.lang.String dsControlGroupType,
java.lang.String beServiceCallbackRole,
java.lang.String methodName)
throws ServerException
Datastream locations are considered privileged information by the
Fedora repository. To prevent disclosing physical datastream locations
to external mechanism services, a proxy is used to disguise the datastream
locations. This method generates a temporary ID that maps to the
physical datastream location and registers this information in a
memory resident hashtable for subsequent resolution of the physical
datastream location. The servlet DatastreamResolverServlet
provides the proxy resolution service for datastreams.
The format of the tempID is derived from java.sql.Timestamp
with an arbitrary counter appended to the end to insure uniqueness. The
syntax is of the form:
YYYY-MM-DD HH:mm:ss.mmm:dddddd where
dsLocation - The physical location of the datastream.dsControlGroupType - The type of the datastream.
ServerException - If an error occurs in registering a datastream
location.public java.lang.String extractTimestamp(java.lang.String tempID)
The tempID that is used for datastream mediation consists of a
Timestamp plus a counter appended to the end to insure uniqueness.
This method is a utility method used to extract the Timestamp portion
from the tempID by stripping off the arbitrary counter at the end of
the string.
tempID - The tempID to be extracted.
public static void printBindingInfo(DisseminationBindingInfo[] info)
public MIMETypedStream getDisseminationContent(java.lang.String url,
Context context,
java.lang.String user,
java.lang.String pass)
throws GeneralException,
HttpServiceNotFoundException
url - The URL of the external content.
HttpServiceNotFoundException - If the URL connection could not
be established.
GeneralException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||