OSGi™ Service Platform
Core Specification

Release 4 Version 4.3

org.osgi.framework
Class PackagePermission

java.lang.Object
  extended by java.security.Permission
      extended by java.security.BasicPermission
          extended by org.osgi.framework.PackagePermission
All Implemented Interfaces:
java.io.Serializable, java.security.Guard

public final class PackagePermission
extends java.security.BasicPermission

A bundle's authority to import or export a package.

A package is a dot-separated string that defines a fully qualified Java package.

For example:

 org.osgi.service.http
 

PackagePermission has three actions: exportonly, import and export. The export action, which is deprecated, implies the import action.

See Also:
Serialized Form
ThreadSafe

Field Summary
static java.lang.String EXPORT
          Deprecated. Since 1.5. Use exportonly instead.
static java.lang.String EXPORTONLY
          The action string exportonly.
static java.lang.String IMPORT
          The action string import.
 
Constructor Summary
PackagePermission(java.lang.String name, Bundle exportingBundle, java.lang.String actions)
          Creates a new requested PackagePermission object to be used by code that must perform checkPermission for the import action.
PackagePermission(java.lang.String name, java.lang.String actions)
          Creates a new PackagePermission object.
 
Method Summary
 boolean equals(java.lang.Object obj)
          Determines the equality of two PackagePermission objects.
 java.lang.String getActions()
          Returns the canonical string representation of the PackagePermission actions.
 int hashCode()
          Returns the hash code value for this object.
 boolean implies(java.security.Permission p)
          Determines if the specified permission is implied by this object.
 java.security.PermissionCollection newPermissionCollection()
          Returns a new PermissionCollection object suitable for storing PackagePermission objects.
 
Methods inherited from class java.security.Permission
checkGuard, getName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXPORT

public static final java.lang.String EXPORT
Deprecated. Since 1.5. Use exportonly instead.
The action string export. The export action implies the import action.

See Also:
Constant Field Values

EXPORTONLY

public static final java.lang.String EXPORTONLY
The action string exportonly. The exportonly action does not imply the import action.

Since:
1.5
See Also:
Constant Field Values

IMPORT

public static final java.lang.String IMPORT
The action string import.

See Also:
Constant Field Values
Constructor Detail

PackagePermission

public PackagePermission(java.lang.String name,
                         java.lang.String actions)
Creates a new PackagePermission object.

The name is specified as a normal Java package name: a dot-separated string. Wildcards may be used.

 name ::= <package name> | <package name ending in ".*"> | *
 
Examples:
 org.osgi.service.http
 javax.servlet.*
 *
 
For the import action, the name can also be a filter expression. The filter gives access to the following attributes: Filter attribute names are processed in a case sensitive manner.

Package Permissions are granted over all possible versions of a package. A bundle that needs to export a package must have the appropriate PackagePermission for that package; similarly, a bundle that needs to import a package must have the appropriate PackagePermssion for that package.

Permission is granted for both classes and resources.

Parameters:
name - Package name or filter expression. A filter expression can only be specified if the specified action is import.
actions - exportonly,import (canonical order).
Throws:
java.lang.IllegalArgumentException - If the specified name is a filter expression and either the specified action is not import or the filter has an invalid syntax.

PackagePermission

public PackagePermission(java.lang.String name,
                         Bundle exportingBundle,
                         java.lang.String actions)
Creates a new requested PackagePermission object to be used by code that must perform checkPermission for the import action. PackagePermission objects created with this constructor cannot be added to a PackagePermission permission collection.

Parameters:
name - The name of the requested package to import.
exportingBundle - The bundle exporting the requested package.
actions - The action import.
Throws:
java.lang.IllegalArgumentException - If the specified action is not import or the name is a filter expression.
Since:
1.5
Method Detail

implies

public boolean implies(java.security.Permission p)
Determines if the specified permission is implied by this object.

This method checks that the package name of the target is implied by the package name of this object. The list of PackagePermission actions must either match or allow for the list of the target object to imply the target PackagePermission action.

The permission to export a package implies the permission to import the named package.

 x.y.*,"export" -> x.y.z,"export" is true
 *,"import" -> x.y, "import"      is true
 *,"export" -> x.y, "import"      is true
 x.y,"export" -> x.y.z, "export"  is false
 

Overrides:
implies in class java.security.BasicPermission
Parameters:
p - The requested permission.
Returns:
true if the specified permission is implied by this object; false otherwise.

getActions

public java.lang.String getActions()
Returns the canonical string representation of the PackagePermission actions.

Always returns present PackagePermission actions in the following order: EXPORTONLY,IMPORT.

Overrides:
getActions in class java.security.BasicPermission
Returns:
Canonical string representation of the PackagePermission actions.

newPermissionCollection

public java.security.PermissionCollection newPermissionCollection()
Returns a new PermissionCollection object suitable for storing PackagePermission objects.

Overrides:
newPermissionCollection in class java.security.Permission
Returns:
A new PermissionCollection object.

equals

public boolean equals(java.lang.Object obj)
Determines the equality of two PackagePermission objects. This method checks that specified package has the same package name and PackagePermission actions as this PackagePermission object.

Overrides:
equals in class java.security.BasicPermission
Parameters:
obj - The object to test for equality with this PackagePermission object.
Returns:
true if obj is a PackagePermission, and has the same package name and actions as this PackagePermission object; false otherwise.

hashCode

public int hashCode()
Returns the hash code value for this object.

Overrides:
hashCode in class java.security.BasicPermission
Returns:
A hash code value for this object.

OSGi™ Service Platform
Core Specification

Release 4 Version 4.3

Copyright © OSGi Alliance (2000, 2012). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0