Ongoing work to add client profile and run browser inside it.
diff --git a/browser-module/src/main/root/browser.config b/browser-module/src/main/root/browser.config
index 105a29b..b5fea76 100644
--- a/browser-module/src/main/root/browser.config
+++ b/browser-module/src/main/root/browser.config
@@ -17,6 +17,10 @@
serviceInvocationConstraints=InvocationConstraints.EMPTY;
servicePreparer =
- new BasicProxyPreparer(true, new BasicMethodConstraints(serviceInvocationConstraints),
+ new BasicProxyPreparer(false, new BasicMethodConstraints(serviceInvocationConstraints),
+ new Permission[] { new RuntimePermission("accessClassInPackage.com.sun.proxy") } );
+
+ leasePreparer =
+ new BasicProxyPreparer(false, new BasicMethodConstraints(serviceInvocationConstraints),
new Permission[] { new RuntimePermission("accessClassInPackage.com.sun.proxy") } );
}
diff --git a/river-container-core/src/main/java/org/apache/river/container/deployer/StarterServiceLifeCycleSM.java b/river-container-core/src/main/java/org/apache/river/container/deployer/StarterServiceLifeCycleSM.java
index 6eb4ed9..355074a 100644
--- a/river-container-core/src/main/java/org/apache/river/container/deployer/StarterServiceLifeCycleSM.java
+++ b/river-container-core/src/main/java/org/apache/river/container/deployer/StarterServiceLifeCycleSM.java
@@ -87,6 +87,10 @@
new String[]{ getStatus() });
}
+ public void exception(Throwable ex) {
+ logger.log(Level.SEVERE, MessageNames.EXCEPTION_THROWN, ex);
+ }
+
public class Idle {
/*
* To start from idle means to prepare, and then start.
diff --git a/river-container-core/src/main/java/org/apache/river/container/deployer/StatusEvents.java b/river-container-core/src/main/java/org/apache/river/container/deployer/StatusEvents.java
index d9e0269..4d71092 100644
--- a/river-container-core/src/main/java/org/apache/river/container/deployer/StatusEvents.java
+++ b/river-container-core/src/main/java/org/apache/river/container/deployer/StatusEvents.java
@@ -30,7 +30,7 @@
public void stopFailed();
- public void exception(Exception ex);
+ public void exception(Throwable ex);
public void timeout();
}
diff --git a/test-container/src/main/root/profile/client/service-starter.cfg b/test-container/src/main/root/profile/client/service-starter.cfg
index 4df90b2..b53cc07 100644
--- a/test-container/src/main/root/profile/client/service-starter.cfg
+++ b/test-container/src/main/root/profile/client/service-starter.cfg
@@ -41,6 +41,13 @@
java.security.SecurityPermission "getDomainCombiner";
java.security.SecurityPermission "createAccessControlContext";
java.security.SecurityPermission "getPolicy";
+
+ // BasicProxyPreparer requirements:
+ javax.security.auth.AuthPermission "getSubject";
+ // Should not be required once UmbrellaGrantPolicy is implemented.
+ // TODO: Config file parser doesn't recognize \"
+ net.jini.security.GrantPermission "delim=| java.lang.RuntimePermission |accessClassInPackage.com.sun.proxy|";
+
net.jini.security.policy.UmbrellaGrantPermission;
com.sun.jini.thread.ThreadPoolPermission "getSystemThreadPool";
com.sun.jini.thread.ThreadPoolPermission "getUserThreadPool";
@@ -53,6 +60,9 @@
java.util.PropertyPermission "*" "read";
java.lang.RuntimePermission "accessClassInPackage.com.sun.proxy";
+
+ // Only in client configuration - apps can call System.exit()
+ java.lang.RuntimePermission "exitVM.*";
}
classloader {