|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--one.world.core.Domain
|
+--one.world.core.ProtectionDomain
Implementation of a protection domain.
Applications running on top of one.world are limited in what resources provided by the Java platform they can access. For example, applications are generally expected to rely on structured I/O for their storage and communication needs instead of accessing files and networking sockets directly.
In general, one.world relies on Java's platform security to limit applications' access to "forbidden" resources. This ensures that applications do not have access to such resources in the common case. At the same time, relying on Java's platform security also makes it possible to grant special access rights to applications that have a legitimate need to access such resources. For example, a web server can be granted the right to listen for and to accept TCP connections on port 80.
To ensure complete safety and security, one.world does impose the following additional restrictions on applications:
java.lang package
cannot be accessed by application code: Compiler,
InheritableThreadLocal, Runtime,
System, Thread, ThreadGroup,
and ThreadLocal. Note that some of the functionality
of System is available through SystemUtilities.Timer and TimerTask in the
java.util package and Timer in the
javax.swing package cannot be accessed by application
code. Note that one.world provides its own timed notification service.Throwable,
Error, or ThreadDeath exceptions.validate() must invoke the superclass's
validate() before performing any other
computation.Each protection domain has its own class
loader to load the application's classes. However, system classes,
that is, classes in the one.world.*,
one.util, and one.net packages, are
loaded by the core class loader and shared between all protection
domains.
When an application is unloaded, the class loader for the protection domain is recreated.
As a result, when an application is reloaded into the same
protection domain, the application's classes are loaded again.
When sending an event to an event handler in a different protection domain, the event is "projected" into that protection domain by using the corresponding classes of the targeted protection domain and by copying mutable data, even if the class is loaded by the core class loader.
| Method Summary | |
protected void |
finalize()
Finalize this protection domain. |
String |
toString()
Return a string representation of this protection domain. |
| Methods inherited from class one.world.core.Domain |
equals, getConcurrencyDomain, getId, getProtectionDomain, hashCode, isActive, isWrapped, unwrap |
| Methods inherited from class java.lang.Object |
clone, getClass, notify, notifyAll, wait, wait, wait |
| Method Detail |
protected void finalize()
finalize in class Objectpublic String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||