|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.basedb.clients.web.extensions.ExtensionsControl
public class ExtensionsControl
Controller class for the extension system in the web client. This is the main class to use when working with extensions from the JSP code.
To get all registered extensions for an extension point call
useExtensions(JspContext, String...)
.
Use get(DbControl)
to access the management API wich allows
you to enable/disable extensions and change settings for the extension
system.
Nested Class Summary | |
---|---|
(package private) static class |
ExtensionsControl.AutoInstallTask
Task for starting an automatic check for new/updated/deleted extensions. |
Field Summary | |
---|---|
static EventType |
AFTER_ENABLE
This event is sent after an extension or extension point is enabled by enableExtensionPoint(String, boolean) ,
enableExtension(String, boolean) , or
enableAllInFile(String, boolean) . |
private static TimerTask |
autoInstallTask
|
static EventType |
BEFORE_DISABLE
This event is sent before an extension or extension point is disabled by enableExtensionPoint(String, boolean) ,
enableExtension(String, boolean) , or
enableAllInFile(String, boolean) . |
static String |
EXTENSIONS_URL
The location where the extension system is looking for extensions. |
private static ExtensionsDirectory |
extensionsDir
|
private static boolean |
initialised
|
private static ScanResults |
lastScanResults
|
private static Logger |
log
|
private static long |
nextAutoScan
|
private Set<Permission> |
permissions
|
private static Registry |
registry
|
static String |
RESOURCES_URL
The location where the extensions resources are extracted. |
static String |
SERVLET_URL
The location where extension servlets are registered. |
private static ServletContext |
servletContext
|
private static Settings |
settings
|
Constructor Summary | |
---|---|
private |
ExtensionsControl(Set<Permission> permissions)
|
Method Summary | |
---|---|
void |
checkPermission(Permission permission)
Check if the logged in user has the desired permission on the item, otherwise throw an exception. |
private void |
checkPermission(Permission permission,
String what)
For checking the permission and adding a custom message to the PermissionDeniedException if the required permission is missing. |
static void |
close()
Shut down the extensions system. |
static JspContext |
createContext(DbControl dc,
PageContext pageContext)
Create a new JspContext object with an active DbControl. |
static JspContext |
createContext(DbControl dc,
PageContext pageContext,
GuiContext guiContext,
Object currentItem)
Create a new JspContext object with an active DbControl
and a current GuiContext and item. |
static JspContext |
createContext(SessionControl sc,
PageContext pageContext)
Create a new JspContext object without an active DbControl. |
void |
enableAllInFile(String filename,
boolean enable)
Enable or disable all extensions and extension points in a file. |
void |
enableExtension(String extensionId,
boolean enable)
Enable/disable an extension. |
void |
enableExtensionPoint(String extensionPointId,
boolean enable)
Enable/disable an extension point. |
static ExtensionsControl |
get(DbControl dc)
Get an extension control object for managing the installed extensions. |
int |
getAutoInstall()
Get the auto-installation setting. |
ErrorHandlerFactory<Action> |
getDefaultErrorHandlerFactory()
Get the default error handling factory. |
Extension<?> |
getExtension(String id)
Get the extension with a given ID. |
ExtensionPoint<?> |
getExtensionPoint(String id)
Get the extension point with a given ID. |
Iterator<ExtensionPoint<?>> |
getExtensionPoints()
Get an iterator returning all registered extension points. |
Iterator<Extension<?>> |
getExtensions()
Get an iterator returning all registered extensions. |
Iterator<Extension<?>> |
getExtensions(String id)
Get an iterator returning all registered extensions for a specific extension point. |
ExtensionsFile |
getFile(String filename)
Get information about an installed extensions file. |
ExtensionsFile |
getFileByExtensionId(String extensionId)
Get information about the file a given extension or extension point is defined in. |
Iterator<ExtensionsFile> |
getFiles()
Get an iterator returning all XML/JAR files which contains installed extensions. |
static String |
getHomeUrl(String extensionId)
Get the URL to the home directory of extension with the given ID. |
Throwable |
getLastExtensionError(String id)
Get information about the last error that happened when rendering an extension. |
Throwable |
getLastExtensionPointError(String id)
Get information about the last error that happened when rendering an extension point. |
ScanResults |
getLastScanResults()
Get the results of the last scan (manual or automatic). |
long |
getNextAutoScanTime()
Get the next scheduled time for automatic scanning. |
Set<Permission> |
getPermissions()
Get the logged in user's permissions on the item. |
static String |
getServletUrl(String extensionId,
String servletName)
Get the base URL for servlets in the extension with the given ID. |
boolean |
hasPermission(Permission permission)
Check if the logged in user has the desired permission on the item. |
static void |
init(ExtensionsDirectory directory,
ServletContext context)
Initialise the extension system. |
private static void |
initAutoInstaller()
Initialise the automatic installation task. |
ScanResults |
installAndUpdateExtensions(boolean forceUpdate)
Perform a manual scan for new/updated/deleted extensions. |
boolean |
isEnabled(Extension extension)
Check if an extension is enabled of disabled. |
boolean |
isEnabled(ExtensionPoint extensionPoint)
Check if an extension point is enabled of disabled. |
void |
saveSettings()
Save the settings. |
void |
setAutoInstall(int autoInstall)
Change the auto-installation setting. |
private static void |
setLastScanResults(ScanResults scanResults)
|
static ExtensionsInvoker<?> |
useExtensions(JspContext context,
ExtensionsFilter filter,
String... extensionPoints)
|
static ExtensionsInvoker<?> |
useExtensions(JspContext context,
String... extensionPoints)
Use extensions from one or more extension points. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Logger log
public static final String EXTENSIONS_URL
public static final String RESOURCES_URL
public static final String SERVLET_URL
public static final EventType BEFORE_DISABLE
enableExtensionPoint(String, boolean)
,
enableExtension(String, boolean)
, or
enableAllInFile(String, boolean)
.
public static final EventType AFTER_ENABLE
enableExtensionPoint(String, boolean)
,
enableExtension(String, boolean)
, or
enableAllInFile(String, boolean)
.
private static boolean initialised
private static Registry registry
private static ExtensionsDirectory extensionsDir
private static Settings settings
private static ServletContext servletContext
private static TimerTask autoInstallTask
private static ScanResults lastScanResults
private static long nextAutoScan
private final Set<Permission> permissions
Constructor Detail |
---|
private ExtensionsControl(Set<Permission> permissions)
Method Detail |
---|
public static void init(ExtensionsDirectory directory, ServletContext context)
ExtensionsServlet
when the web server starts up.
public static void close()
private static void setLastScanResults(ScanResults scanResults)
private static void initAutoInstaller()
getAutoInstall()
settings has changed.
public static ExtensionsControl get(DbControl dc)
dc
- The DbControl to use for database access and
permission checks, or null to only get read permission
public static ExtensionsInvoker<?> useExtensions(JspContext context, String... extensionPoints)
context
- The current contextextensionPoints
- An array with the ID values of the extension points.
Extension points that are not found are ignored.
Registry.useExtensions(net.sf.basedb.util.extensions.ClientContext, net.sf.basedb.util.extensions.ExtensionsFilter, String...)
public static ExtensionsInvoker<?> useExtensions(JspContext context, ExtensionsFilter filter, String... extensionPoints)
public static JspContext createContext(SessionControl sc, PageContext pageContext)
JspContext
object without an active DbControl.
NOTE! Unless there is a very good reason we recommend that an
active DbControl is always supplied. Use the
createContext(DbControl, PageContext)
method instead.
sc
- The current session controlpageContext
- Page context for the executing JSP pagecreateContext(DbControl, PageContext)
public static JspContext createContext(DbControl dc, PageContext pageContext)
JspContext
object with an active DbControl.
dc
- An open DbControlpageContext
- Page context for the executing JSP pagepublic static JspContext createContext(DbControl dc, PageContext pageContext, GuiContext guiContext, Object currentItem)
JspContext
object with an active DbControl
and a current GuiContext
and item.
dc
- An open DbControlpageContext
- Page context for the executing JSP pagepublic static String getHomeUrl(String extensionId)
extensionId
- The ID of a registered extension
public static String getServletUrl(String extensionId, String servletName)
/extensions/servlet/[jar-file-name]/[servlet-name]
NOTE! Servlets can also be invoked by using the alternate path:
/extensions/[jar-file-name]/[servlet-name].servlet
extensionId
- The ID of a registered extensionservletName
- The name of the servlet
public void checkPermission(Permission permission) throws PermissionDeniedException
AccessControlled
checkPermission
in interface AccessControlled
permission
- Permission the user should have.
PermissionDeniedException
- If the user doesn't have the
requested permissionpublic Set<Permission> getPermissions()
AccessControlled
getPermissions
in interface AccessControlled
public boolean hasPermission(Permission permission)
AccessControlled
hasPermission
in interface AccessControlled
permission
- The permission to check if the user has.
private void checkPermission(Permission permission, String what) throws PermissionDeniedException
PermissionDeniedException
public ScanResults installAndUpdateExtensions(boolean forceUpdate)
forceUpdate
is TRUE all extensions are updated,
which means that the definitions are re-loaded and resource
files are extracted even if nothing has changed.
forceUpdate
- TRUE to force an update for unmodified
extensions, FALSE otherwise
PermissionDeniedException
- If the logged in user doesn't
have WRITE permissionpublic int getAutoInstall()
public void setAutoInstall(int autoInstall)
autoInstall
- Number of seconds between automatic checks,
or 0 or negative to disable
PermissionDeniedException
- If the logged in user doesn't
have WRITE permissiongetAutoInstall()
public ScanResults getLastScanResults()
ScanResults
object, or null if no scan
has taken placepublic long getNextAutoScanTime()
System.currentTimeMillis()
public ErrorHandlerFactory<Action> getDefaultErrorHandlerFactory()
public Iterator<ExtensionPoint<?>> getExtensionPoints()
Registry.getExtensionPoints()
public ExtensionPoint<?> getExtensionPoint(String id)
id
- The ID of the extension point
ExtensionPoint
object or null if that
extension point doesn't existsRegistry.getExtensionPoint(String)
public boolean isEnabled(ExtensionPoint extensionPoint)
extensionPoint
- The extension point
Settings.isEnabled(ExtensionPoint)
public Throwable getLastExtensionPointError(String id)
id
- The id of the extension point
public void enableExtensionPoint(String extensionPointId, boolean enable)
extensionPointId
- The ID of the extension point to enable/disableenable
- TRUE to enable the extension point, FALSE to disable it
PermissionDeniedException
- If the logged in user doesn't have
WRITE permissionpublic Iterator<Extension<?>> getExtensions()
Registry.getExtensions()
public Iterator<Extension<?>> getExtensions(String id)
id
- The ID of the extension pointRegistry.getExtensions(String)
public Extension<?> getExtension(String id)
id
- The ID of the extension point
Extension
object or null if that
extension doesn't existsRegistry.getExtension(String)
public Throwable getLastExtensionError(String id)
id
- The id of the extension
public boolean isEnabled(Extension extension)
extension
- The extension
Settings.isEnabled(Extension)
public void enableExtension(String extensionId, boolean enable)
extensionId
- The ID of the extension to enable/disableenable
- TRUE to enable the extension, FALSE to disable it
PermissionDeniedException
- If the logged in user doesn't have
WRITE permissionpublic Iterator<ExtensionsFile> getFiles()
public ExtensionsFile getFile(String filename)
filename
- The filename of the file
ExtensionsFile
object or null if
the given file doesn't exists or isn't an extensions filepublic ExtensionsFile getFileByExtensionId(String extensionId)
extensionId
- The ID of an extension or extension point
public void enableAllInFile(String filename, boolean enable)
filename
- The filename which contains the extensionsenable
- TRUE to enable, FALSE to disablepublic void saveSettings()
PermissionDeniedException
- If the logged in user doesn't have
WRITE permissionSettings.save()
|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |