public abstract class ManagedResource extends Object
| Modifier and Type | Class and Description | 
|---|---|
| static interface  | ManagedResource.ChildResourceSupportMarker interface to indicate a ManagedResource implementation class also supports
 managing child resources at path: /<resource>/{child} | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | INIT_ARGS_JSON_FIELD | 
| static String | INITIALIZED_ON_JSON_FIELD | 
| protected Date | initializedOn | 
| protected Date | lastUpdateSinceInitialization | 
| static String | MANAGED_JSON_LIST_FIELD | 
| static String | MANAGED_JSON_MAP_FIELD | 
| protected NamedList<Object> | managedInitArgs | 
| protected SolrResourceLoader | solrResourceLoader | 
| protected ManagedResourceStorage | storage | 
| static String | UPDATED_SINCE_INIT_JSON_FIELD | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | ManagedResource(String resourceId,
               SolrResourceLoader loader,
               ManagedResourceStorage.StorageIO storageIO)Initializes this managed resource, including setting up JSON-based storage using
 the provided storageIO implementation, such as ZK. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected abstract Object | applyUpdatesToManagedData(Object updates)Called during PUT/POST processing to apply updates to the managed data passed from the client. | 
| protected Map<String,Object> | buildMapToStore(Object managedData)Builds the JSON object to be stored, containing initArgs and managed data fields. | 
| protected Map<String,Object> | convertNamedListToMap(NamedList<?> args)Converts a NamedList<?> into an ordered Map for returning as JSON. | 
| protected ManagedResourceStorage | createStorage(ManagedResourceStorage.StorageIO storageIO,
             SolrResourceLoader loader)Potential extension point allowing concrete implementations to supply their own storage
 implementation. | 
| abstract void | doDeleteChild(BaseSolrResource endpoint,
             String childId)Called by  RestManager.ManagedEndpoint.delete()to delete a named part (the given childId) of the
 resource at the given endpoint | 
| abstract void | doGet(BaseSolrResource endpoint,
     String childId)Called by  RestManager.ManagedEndpoint.get()to retrieve a named part (the given childId) of the
 resource at the given endpoint | 
| void | doPost(BaseSolrResource endpoint,
      org.restlet.representation.Representation entity,
      Object json)Just calls  doPut(BaseSolrResource,Representation,Object);
 override to change the behavior of POST handling. | 
| void | doPut(BaseSolrResource endpoint,
     org.restlet.representation.Representation entity,
     Object json)Applies changes to initArgs or managed data. | 
| String | getInitializedOn()Returns this resource's initialization timestamp. | 
| String | getResourceId()Gets the resource ID for this managed resource. | 
| SolrResourceLoader | getResourceLoader()Returns the resource loader used by this resource. | 
| Class<? extends BaseSolrResource> | getServerResourceClass()Gets the ServerResource class to register this endpoint with the Rest API router;
 in most cases, the default RestManager.ManagedEndpoint class is sufficient but
 ManagedResource implementations can override this method if a different ServerResource
 class is needed. | 
| String | getUpdatedSinceInitialization()Returns the timestamp of the most recent update,
 or null if this resource has not been updated since initialization. | 
| boolean | hasChangesSinceInitialization()Returns true if this resource has been changed since initialization. | 
| void | loadManagedDataAndNotify(List<ManagedResourceObserver> observers)Called once during core initialization to get the managed
 data loaded from storage and notify observers. | 
| protected void | notifyObserversDuringInit(NamedList<?> args,
                         List<ManagedResourceObserver> observers)Notifies all registered observers that the ManagedResource is initialized. | 
| protected abstract void | onManagedDataLoadedFromStorage(NamedList<?> managedInitArgs,
                              Object managedData)Method called after data has been loaded from storage to give the concrete
 implementation a chance to post-process the data. | 
| void | onResourceDeleted()Called by the RestManager framework after this resource has been deleted
 to allow this resource to close and clean-up any resources used by this. | 
| protected Object | processStoredData(Object data)Processes the stored data. | 
| protected void | reloadFromStorage()Invoked when this object determines it needs to reload the stored data. | 
| void | storeManagedData(Object managedData)Persists managed data to the configured storage IO as a JSON object. | 
| protected boolean | updateInitArgs(NamedList<?> updatedArgs)Called from  doPut(BaseSolrResource,Representation,Object)to update this resource's init args using the given updatedArgs | 
public static final String INIT_ARGS_JSON_FIELD
public static final String MANAGED_JSON_LIST_FIELD
public static final String MANAGED_JSON_MAP_FIELD
public static final String INITIALIZED_ON_JSON_FIELD
public static final String UPDATED_SINCE_INIT_JSON_FIELD
protected final SolrResourceLoader solrResourceLoader
protected final ManagedResourceStorage storage
protected Date initializedOn
protected Date lastUpdateSinceInitialization
protected ManagedResource(String resourceId, SolrResourceLoader loader, ManagedResourceStorage.StorageIO storageIO) throws SolrException
SolrExceptionpublic void loadManagedDataAndNotify(List<ManagedResourceObserver> observers) throws SolrException
SolrExceptionprotected void notifyObserversDuringInit(NamedList<?> args, List<ManagedResourceObserver> observers) throws SolrException
SolrExceptionprotected ManagedResourceStorage createStorage(ManagedResourceStorage.StorageIO storageIO, SolrResourceLoader loader) throws SolrException
SolrExceptionpublic SolrResourceLoader getResourceLoader()
public String getResourceId()
public Class<? extends BaseSolrResource> getServerResourceClass()
protected boolean updateInitArgs(NamedList<?> updatedArgs)
doPut(BaseSolrResource,Representation,Object)
 to update this resource's init args using the given updatedArgsprotected void reloadFromStorage()
                          throws SolrException
SolrExceptionprotected Object processStoredData(Object data) throws SolrException
SolrExceptionprotected abstract void onManagedDataLoadedFromStorage(NamedList<?> managedInitArgs, Object managedData) throws SolrException
SolrExceptionpublic void storeManagedData(Object managedData)
public String getInitializedOn()
public String getUpdatedSinceInitialization()
public boolean hasChangesSinceInitialization()
protected Map<String,Object> buildMapToStore(Object managedData)
protected Map<String,Object> convertNamedListToMap(NamedList<?> args)
public void doPost(BaseSolrResource endpoint, org.restlet.representation.Representation entity, Object json)
doPut(BaseSolrResource,Representation,Object);
 override to change the behavior of POST handling.public void doPut(BaseSolrResource endpoint, org.restlet.representation.Representation entity, Object json)
public void onResourceDeleted()
                       throws IOException
IOException - if an error occurs in the underlying storage when
 trying to deleteprotected abstract Object applyUpdatesToManagedData(Object updates)
public abstract void doDeleteChild(BaseSolrResource endpoint, String childId)
RestManager.ManagedEndpoint.delete()
 to delete a named part (the given childId) of the
 resource at the given endpointpublic abstract void doGet(BaseSolrResource endpoint, String childId)
RestManager.ManagedEndpoint.get()
 to retrieve a named part (the given childId) of the
 resource at the given endpointCopyright © 2000-2017 Apache Software Foundation. All Rights Reserved.