- java.lang.Object
-
- jdk.management.resource.ResourceContextFactory
-
public final class ResourceContextFactory extends Object
The ResourceContextFactory provides access to ResourceContext functions. The factory provides methods to:- Return the
ResourceContextFactory
instance and checks if the API is accessible to the caller - Check if ResourceContexts are
enabled
- Return a
new ResourceContext
- Return a
ResourceContext by name
- Return the
ResourceContext bound to the current thread
- Return the
UnassignedContext used for all unbound threads
- Return the
TotalsContext that tracks totals of all contexts
- Return a
Stream of the ResourceContexts
- Return the
supported ResourceTypes
getInstance
method checks if there is a SecurityManager installed and theRuntimePermission("jdk.management.resource.getResourceContextFactory")
is allowed. The reference to the ResourceContextFactory is a capability and should not be shared.Threads that exist when the ResourceContextFactory is initialized are bound to the
unassignedContext
if they are not system threads. System threads ( with(thread.getThreadGroup().getParent() == null
) are not bound to theunassignedContext
. The resources used by system threads are not recorded.- Since:
- 8u40
- Return the
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Stream<ResourceContext>
contexts()
Returns a Stream of the existing ResourceContexts.ResourceContext
create(String name)
Create a new ResourceContext.static ResourceContextFactory
getInstance()
Returns the factory for ResourceContexts if enabled in the runtime.ResourceRequest
getResourceRequest(ResourceType type)
Returns the ResourceRequest for the current ResourceContext and ResourceType.ResourceContext
getThreadContext()
Returns the ResourceContext associated with the current thread.ResourceContext
getThreadContext(Thread thread)
Returns the ResourceContext associated with the thread.ResourceContext
getTotalsContext()
Returns a ResourceContext that provides the totals for all ResourceContexts.ResourceContext
getUnassignedContext()
Returns the ResourceContext that is the default when a thread is not associated with a ResourceContext.static boolean
isEnabled()
Returnstrue
if and only if ResourceManagement is enabled.ResourceContext
lookup(String name)
Returns the ResourceContext given by name.Set<ResourceType>
supportedResourceTypes()
Returns a read-only Set of the builtin ResourceTypes available in the current runtime.
-
-
-
Method Detail
-
isEnabled
public static boolean isEnabled()
Returnstrue
if and only if ResourceManagement is enabled. Refer tosupportedResourceTypes()
for the set of resources available.- Returns:
true
if and only if ResourceManagement is enabled; otherwisefalse
- Throws:
SecurityException
- if a SecurityManager is installed and theRuntimePermission("jdk.management.resource.getResourceContextFactory)
is denied
-
getInstance
public static ResourceContextFactory getInstance()
Returns the factory for ResourceContexts if enabled in the runtime.- Returns:
- the factory for ResourceContexts
- Throws:
SecurityException
- if a SecurityManager is installed and theRuntimePermission("jdk.management.resource.getResourceContextFactory)
is denied
-
create
public ResourceContext create(String name)
Create a new ResourceContext. A new empty ResourceContext with the specified name is created. The names of ResourceContexts must be unique. Useclose
to dispose of a ResourceContext.- Parameters:
name
- a name for the ResourceContext- Returns:
- a new ResourceContext
- Throws:
IllegalArgumentException
- if a ResourceContext with the name already exists.UnsupportedOperationException
- if the number of ResourceContexts exceeds implementation limits
-
lookup
public ResourceContext lookup(String name)
Returns the ResourceContext given by name.- Parameters:
name
- the name- Returns:
- the ResourceContext given by name;
null
if there is no ResourceContext with the name
-
getThreadContext
public ResourceContext getThreadContext()
Returns the ResourceContext associated with the current thread.- Returns:
- the ResourceContext associated with the current thread;
the
unassigned context
if the thread is not associated with any context
-
getThreadContext
public ResourceContext getThreadContext(Thread thread)
Returns the ResourceContext associated with the thread.- Parameters:
thread
- the thread to query- Returns:
- the ResourceContext associated with the current thread;
the
unassigned context
if the thread is not associated with any context
-
getResourceRequest
public ResourceRequest getResourceRequest(ResourceType type)
Returns the ResourceRequest for the current ResourceContext and ResourceType. If there is no ResourceContext associated with the current thread, theunassigned context
is used.- Parameters:
type
- the ResourceType of the resource making the request- Returns:
- a ResourceRequest;
null
if there is no ResourceMeter with the type in the ResourceContext
-
getUnassignedContext
public ResourceContext getUnassignedContext()
Returns the ResourceContext that is the default when a thread is not associated with a ResourceContext.- Returns:
- the unassigned ResourceContext
-
getTotalsContext
public ResourceContext getTotalsContext()
Returns a ResourceContext that provides the totals for all ResourceContexts. The meters reflect the sum of all other ResourceContexts plus the final counts of removed ResourceContexts. These meters are read only and are only updated by changes to active ResourceContexts.- Returns:
- the totals ResourceContext
-
contexts
public Stream<ResourceContext> contexts()
Returns a Stream of the existing ResourceContexts.- Returns:
- a Stream of the existing ResourceContexts
-
supportedResourceTypes
public Set<ResourceType> supportedResourceTypes()
Returns a read-only Set of the builtin ResourceTypes available in the current runtime.- Returns:
- a read-only Set of the builtin ResourceTypes available in the current runtime; non-null
-
-