Bug 263838 [rfc 120] conditional permission admin API changes
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeSecurityTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeSecurityTests.java
index 6f1eaf4..88f3254 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeSecurityTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeSecurityTests.java
@@ -116,8 +116,8 @@
assertEquals("Wrong exception type", BundleException.RESOLVE_ERROR, e.getType()); //$NON-NLS-1$
}
- ConditionalPermissionsUpdate update = childCondAdmin.createConditionalPermissionsUpdate();
- List infos = update.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update = childCondAdmin.newConditionalPermissionUpdate();
+ List infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
@@ -125,7 +125,7 @@
PermissionInfo servicePerm = new PermissionInfo(ServicePermission.class.getName(), "*", ServicePermission.GET + ',' + ServicePermission.REGISTER); //$NON-NLS-1$
PermissionInfo allPerm = new PermissionInfo(AllPermission.class.getName(), "*", "*"); //$NON-NLS-1$ //$NON-NLS-2$
PermissionInfo[] permissions = new PermissionInfo[] {packagePerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
@@ -136,12 +136,12 @@
assertEquals("Unexpected exception message", "Missing Service Permission", e.getCause().getMessage()); //$NON-NLS-1$//$NON-NLS-2$
}
- update = childCondAdmin.createConditionalPermissionsUpdate();
- infos = update.getConditionalPermissionInfoBases();
+ update = childCondAdmin.newConditionalPermissionUpdate();
+ infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
permissions = new PermissionInfo[] {packagePerm, servicePerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
@@ -152,12 +152,12 @@
assertEquals("Unexpected exception message", "Missing AllPermissions", e.getCause().getMessage()); //$NON-NLS-1$//$NON-NLS-2$
}
- update = childCondAdmin.createConditionalPermissionsUpdate();
- infos = update.getConditionalPermissionInfoBases();
+ update = childCondAdmin.newConditionalPermissionUpdate();
+ infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
permissions = new PermissionInfo[] {allPerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
@@ -191,8 +191,8 @@
assertEquals("Wrong exception type", BundleException.RESOLVE_ERROR, e.getType()); //$NON-NLS-1$
}
- ConditionalPermissionsUpdate update = childCondAdmin.createConditionalPermissionsUpdate();
- List infos = update.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update = childCondAdmin.newConditionalPermissionUpdate();
+ List infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
@@ -200,7 +200,7 @@
PermissionInfo servicePerm = new PermissionInfo(ServicePermission.class.getName(), "*", ServicePermission.GET + ',' + ServicePermission.REGISTER); //$NON-NLS-1$
PermissionInfo allPerm = new PermissionInfo(AllPermission.class.getName(), "*", "*"); //$NON-NLS-1$ //$NON-NLS-2$
PermissionInfo[] permissions = new PermissionInfo[] {packagePerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
@@ -211,12 +211,12 @@
assertEquals("Unexpected exception message", "Missing Service Permission", e.getCause().getMessage()); //$NON-NLS-1$//$NON-NLS-2$
}
- update = childCondAdmin.createConditionalPermissionsUpdate();
- infos = update.getConditionalPermissionInfoBases();
+ update = childCondAdmin.newConditionalPermissionUpdate();
+ infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
permissions = new PermissionInfo[] {packagePerm, servicePerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
@@ -227,12 +227,12 @@
assertEquals("Unexpected exception message", "Missing AllPermissions", e.getCause().getMessage()); //$NON-NLS-1$//$NON-NLS-2$
}
- update = childCondAdmin.createConditionalPermissionsUpdate();
- infos = update.getConditionalPermissionInfoBases();
+ update = childCondAdmin.newConditionalPermissionUpdate();
+ infos = update.getConditionalPermissionInfos();
assertEquals("Wrong number of infos", 1, infos.size()); //$NON-NLS-1$
infos.clear();
permissions = new PermissionInfo[] {allPerm};
- infos.add(childCondAdmin.createConditionalPermissionInfoBase("test.link.d", conditions, permissions, ConditionalPermissionInfoBase.ALLOW)); //$NON-NLS-1$
+ infos.add(childCondAdmin.newConditionalPermissionInfo("test.link.d", conditions, permissions, ConditionalPermissionInfo.ALLOW)); //$NON-NLS-1$
update.commit();
try {
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
index 1dab969..e39864c 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
@@ -274,17 +274,17 @@
public void testUpdate01() {
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
assertTrue("table is not empty", rows.isEmpty()); //$NON-NLS-1$
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
}
public void testUpdate02() {
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- ConditionalPermissionInfoBase info = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW);
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ ConditionalPermissionInfo info = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW);
rows.add(info);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
@@ -294,8 +294,8 @@
testPermission(pd, new FilePermission("test", "read"), true); //$NON-NLS-1$ //$NON-NLS-2$
testPermission(pd, new AllPermission(), false);
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.clear();
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
testPermission(pd, new FilePermission("test", "write"), true); //$NON-NLS-1$ //$NON-NLS-2$
@@ -305,10 +305,10 @@
public void testUpdate03() {
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- ConditionalPermissionInfoBase info1 = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READWRITE_INFOS, ConditionalPermissionInfoBase.DENY);
- ConditionalPermissionInfoBase info2 = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW);
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ ConditionalPermissionInfo info1 = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READWRITE_INFOS, ConditionalPermissionInfo.DENY);
+ ConditionalPermissionInfo info2 = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW);
rows.add(info1);
rows.add(info2);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
@@ -319,16 +319,16 @@
testPermission(pd, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
testPermission(pd, new AllPermission(), false);
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.remove(0);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
testPermission(pd, new FilePermission("test", "write"), false); //$NON-NLS-1$ //$NON-NLS-2$
testPermission(pd, new FilePermission("test", "read"), true); //$NON-NLS-1$ //$NON-NLS-2$
testPermission(pd, new AllPermission(), false);
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.remove(0);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
testPermission(pd, new FilePermission("test", "write"), true); //$NON-NLS-1$ //$NON-NLS-2$
@@ -338,20 +338,20 @@
public void testUpdate04() {
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- ConditionalPermissionInfoBase info1 = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READWRITE_INFOS, ConditionalPermissionInfoBase.DENY);
- ConditionalPermissionInfoBase info2 = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW);
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ ConditionalPermissionInfo info1 = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READWRITE_INFOS, ConditionalPermissionInfo.DENY);
+ ConditionalPermissionInfo info2 = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW);
rows.add(info1);
rows.add(info2);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
- ConditionalPermissionsUpdate update1 = securityAdmin.createConditionalPermissionsUpdate();
- List rows1 = update1.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update1 = securityAdmin.newConditionalPermissionUpdate();
+ List rows1 = update1.getConditionalPermissionInfos();
rows1.remove(0);
- ConditionalPermissionsUpdate update2 = securityAdmin.createConditionalPermissionsUpdate();
- List rows2 = update2.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update2 = securityAdmin.newConditionalPermissionUpdate();
+ List rows2 = update2.getConditionalPermissionInfos();
rows2.remove(0);
assertTrue("failed to commit", update2.commit()); //$NON-NLS-1$
@@ -363,8 +363,8 @@
assertFalse("succeeded commit", update1.commit()); //$NON-NLS-1$
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.remove(0);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
@@ -375,9 +375,9 @@
public void testSecurityManager01() {
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- ConditionalPermissionInfoBase info = securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW);
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ ConditionalPermissionInfo info = securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW);
rows.add(info);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
@@ -389,8 +389,8 @@
testSMPermission(sm, pds, new FilePermission("test", "read"), true); //$NON-NLS-1$ //$NON-NLS-2$
testSMPermission(sm, pds, new AllPermission(), false);
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.clear();
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
testSMPermission(sm, pds, new FilePermission("test", "write"), true); //$NON-NLS-1$ //$NON-NLS-2$
@@ -409,11 +409,11 @@
ProtectionDomain pd2 = securityAdmin.createProtectionDomain((AbstractBundle) test2);
ProtectionDomain[] pds = new ProtectionDomain[] {pd1, pd2};
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.DENY));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
@@ -436,8 +436,8 @@
tc1sat.setSatisfied(true);
tc2sat.setSatisfied(true);
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.remove(0);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), true); //$NON-NLS-1$ //$NON-NLS-2$
@@ -446,8 +446,8 @@
tc2unsat.setSatisfied(false);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
rows.remove(0);
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
@@ -464,12 +464,12 @@
ProtectionDomain pd2 = securityAdmin.createProtectionDomain((AbstractBundle) test2);
ProtectionDomain[] pds = new ProtectionDomain[] {pd1, pd2};
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.DENY));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
@@ -500,12 +500,12 @@
ProtectionDomain pd2 = securityAdmin.createProtectionDomain((AbstractBundle) test2);
ProtectionDomain[] pds = new ProtectionDomain[] {pd1, pd2};
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), true); //$NON-NLS-1$ //$NON-NLS-2$
@@ -538,11 +538,11 @@
ProtectionDomain pd2 = securityAdmin.createProtectionDomain((AbstractBundle) test2);
ProtectionDomain[] pds = new ProtectionDomain[] {pd1, pd2};
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
@@ -573,13 +573,13 @@
ProtectionDomain pd2 = securityAdmin.createProtectionDomain((AbstractBundle) test2);
ProtectionDomain[] pds = new ProtectionDomain[] {pd1, pd2};
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_SAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {POST_MUT_UNSAT}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, ALLLOCATION_CONDS, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$);
testSMPermission(sm, pds, new FilePermission("test", "read"), false); //$NON-NLS-1$ //$NON-NLS-2$
@@ -602,9 +602,9 @@
public void testAccessControlContext01() {
// test single row with signer condition
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test1,c=US"}); //$NON-NLS-1$
@@ -624,11 +624,11 @@
public void testAccessControlContext02() {
// test with DENY row
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfoBase.DENY));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfo.DENY));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test1,c=US"}); //$NON-NLS-1$
@@ -648,9 +648,9 @@
public void testAccessControlContext03() {
// test multiple signer conditions
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test2,c=US"}); //$NON-NLS-1$
@@ -667,9 +667,9 @@
// expected
}
- update = securityAdmin.createConditionalPermissionsUpdate();
- rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION2}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ update = securityAdmin.newConditionalPermissionUpdate();
+ rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION2}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test2,c=US"}); //$NON-NLS-1$
try {
@@ -688,10 +688,10 @@
public void testAccessControlContext04() {
// test multiple signer conditions
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1, SIGNER_CONDITION2}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1, SIGNER_CONDITION2}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test2,c=US"}); //$NON-NLS-1$
@@ -753,10 +753,10 @@
public void testAccessControlContext06() {
// test with empty condition rows
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {SIGNER_CONDITION1}, READWRITE_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test2,c=US"}); //$NON-NLS-1$
@@ -776,9 +776,9 @@
public void testAccessControlContext07() {
// test ! signer condition
SecurityAdmin securityAdmin = createSecurityAdmin(null);
- ConditionalPermissionsUpdate update = securityAdmin.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(securityAdmin.createConditionalPermissionInfoBase(null, new ConditionInfo[] {NOT_SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = securityAdmin.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(securityAdmin.newConditionalPermissionInfo(null, new ConditionInfo[] {NOT_SIGNER_CONDITION1}, READONLY_INFOS, ConditionalPermissionInfo.ALLOW));
assertTrue("failed to commit", update.commit()); //$NON-NLS-1$
AccessControlContext acc = securityAdmin.getAccessControlContext(new String[] {"cn=t1,cn=FR;cn=test1,c=US"}); //$NON-NLS-1$
try {
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
index 0c4a8a5..4cfe6fa 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
@@ -148,9 +148,9 @@
String locationSecurityAFragA = installer.getBundleLocation("security.a.frag.a"); //$NON-NLS-1$
// set the security for the host and fragment
ConditionalPermissionAdmin ca = (ConditionalPermissionAdmin) systemContext.getService(systemContext.getServiceReference(ConditionalPermissionAdmin.class.getName()));
- ConditionalPermissionsUpdate update = ca.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(ca.createConditionalPermissionInfoBase(null, null, new PermissionInfo[] {hostFragmentPermission, allPackagePermission}, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = ca.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(ca.newConditionalPermissionInfo(null, null, new PermissionInfo[] {hostFragmentPermission, allPackagePermission}, ConditionalPermissionInfo.ALLOW));
assertTrue("Cannot commit rows", update.commit()); //$NON-NLS-1$
Bundle securityA = systemContext.installBundle(locationSecurityA);
@@ -199,9 +199,9 @@
String locationSecurityAFragA = installer.getBundleLocation("security.a.frag.a"); //$NON-NLS-1$
// set the security for the host and fragment
ConditionalPermissionAdmin ca = (ConditionalPermissionAdmin) systemContext.getService(systemContext.getServiceReference(ConditionalPermissionAdmin.class.getName()));
- ConditionalPermissionsUpdate update = ca.createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- rows.add(ca.createConditionalPermissionInfoBase(null, null, new PermissionInfo[] {hostFragmentPermission, allPackagePermission}, ConditionalPermissionInfoBase.ALLOW));
+ ConditionalPermissionUpdate update = ca.newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ rows.add(ca.newConditionalPermissionInfo(null, null, new PermissionInfo[] {hostFragmentPermission, allPackagePermission}, ConditionalPermissionInfo.ALLOW));
assertTrue("Cannot commit rows", update.commit()); //$NON-NLS-1$
Bundle securityA = systemContext.installBundle(locationSecurityA);
diff --git a/bundles/org.eclipse.osgi/.settings/.api_filters b/bundles/org.eclipse.osgi/.settings/.api_filters
index c3a2e61..d68291b 100644
--- a/bundles/org.eclipse.osgi/.settings/.api_filters
+++ b/bundles/org.eclipse.osgi/.settings/.api_filters
@@ -1,56 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<component id="org.eclipse.osgi" version="2">
-<resource path="osgi/src/org/osgi/framework/Bundle.java" type="org.osgi.framework.Bundle">
-<filter id="403767336">
+<resource path="osgi/src/org/osgi/service/framework/CompositeBundle.java" type="org.osgi.service.framework.CompositeBundle">
+<filter id="1110441988">
<message_arguments>
-<message_argument value="org.osgi.framework.Bundle"/>
-<message_argument value="SIGNERS_TRUSTED"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.5"/>
-<message_argument value="3.5"/>
-<message_argument value="getSignerCertificates(int)"/>
-</message_arguments>
-</filter>
-<filter id="403767336">
-<message_arguments>
-<message_argument value="org.osgi.framework.Bundle"/>
-<message_argument value="SIGNERS_ALL"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.5"/>
-<message_argument value="3.5"/>
-<message_argument value="SIGNERS_TRUSTED"/>
-</message_arguments>
-</filter>
-<filter id="403804204">
-<message_arguments>
-<message_argument value="org.osgi.framework.Bundle"/>
-<message_argument value="getVersion()"/>
-</message_arguments>
-</filter>
-<filter id="403804204">
-<message_arguments>
-<message_argument value="org.osgi.framework.Bundle"/>
-<message_argument value="getSignerCertificates(int)"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.5"/>
-<message_argument value="3.5"/>
-<message_argument value="SIGNERS_ALL"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.5"/>
-<message_argument value="3.5"/>
-<message_argument value="getVersion()"/>
+<message_argument value="org.osgi.service.framework.CompositeBundle"/>
</message_arguments>
</filter>
</resource>
@@ -63,10 +16,57 @@
</message_arguments>
</filter>
</resource>
-<resource path="osgi/src/org/osgi/service/framework/CompositeBundle.java" type="org.osgi.service.framework.CompositeBundle">
-<filter id="1110441988">
+<resource path="osgi/src/org/osgi/framework/Bundle.java" type="org.osgi.framework.Bundle">
+<filter id="1209008130">
<message_arguments>
-<message_argument value="org.osgi.service.framework.CompositeBundle"/>
+<message_argument value="1.5"/>
+<message_argument value="3.5"/>
+<message_argument value="getSignerCertificates(int)"/>
+</message_arguments>
+</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.framework.Bundle"/>
+<message_argument value="SIGNERS_TRUSTED"/>
+</message_arguments>
+</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.framework.Bundle"/>
+<message_argument value="SIGNERS_ALL"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.5"/>
+<message_argument value="3.5"/>
+<message_argument value="SIGNERS_TRUSTED"/>
+</message_arguments>
+</filter>
+<filter id="403804204">
+<message_arguments>
+<message_argument value="org.osgi.framework.Bundle"/>
+<message_argument value="getSignerCertificates(int)"/>
+</message_arguments>
+</filter>
+<filter id="403804204">
+<message_arguments>
+<message_argument value="org.osgi.framework.Bundle"/>
+<message_argument value="getVersion()"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.5"/>
+<message_argument value="3.5"/>
+<message_argument value="SIGNERS_ALL"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.5"/>
+<message_argument value="3.5"/>
+<message_argument value="getVersion()"/>
</message_arguments>
</filter>
</resource>
@@ -79,15 +79,6 @@
</message_arguments>
</filter>
</resource>
-<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionsUpdate.java" type="org.osgi.service.condpermadmin.ConditionalPermissionsUpdate">
-<filter id="1108344834">
-<message_arguments>
-<message_argument value="1.1"/>
-<message_argument value="3.5"/>
-<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionsUpdate"/>
-</message_arguments>
-</filter>
-</resource>
<resource path="osgi/src/org/osgi/framework/ServiceEvent.java" type="org.osgi.framework.ServiceEvent">
<filter id="1141899266">
<message_arguments>
@@ -97,31 +88,12 @@
</message_arguments>
</filter>
</resource>
-<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java" type="org.osgi.service.condpermadmin.ConditionalPermissionAdmin">
-<filter id="1209008130">
+<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java" type="org.osgi.service.condpermadmin.ConditionalPermissionUpdate">
+<filter id="1108344834">
<message_arguments>
<message_argument value="1.1"/>
<message_argument value="3.5"/>
-<message_argument value="createConditionalPermissionInfoBase(String, ConditionInfo[], PermissionInfo[], String)"/>
-</message_arguments>
-</filter>
-<filter id="403804204">
-<message_arguments>
-<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
-<message_argument value="createConditionalPermissionInfoBase(String, ConditionInfo[], PermissionInfo[], String)"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.1"/>
-<message_argument value="3.5"/>
-<message_argument value="createConditionalPermissionsUpdate()"/>
-</message_arguments>
-</filter>
-<filter id="403804204">
-<message_arguments>
-<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
-<message_argument value="createConditionalPermissionsUpdate()"/>
+<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionUpdate"/>
</message_arguments>
</filter>
</resource>
@@ -132,6 +104,34 @@
</message_arguments>
</filter>
</resource>
+<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java" type="org.osgi.service.condpermadmin.ConditionalPermissionAdmin">
+<filter id="403804204">
+<message_arguments>
+<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
+<message_argument value="newConditionalPermissionUpdate()"/>
+</message_arguments>
+</filter>
+<filter id="403804204">
+<message_arguments>
+<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
+<message_argument value="newConditionalPermissionInfo(String, ConditionInfo[], PermissionInfo[], String)"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.1"/>
+<message_argument value="3.5"/>
+<message_argument value="newConditionalPermissionUpdate()"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.1"/>
+<message_argument value="3.5"/>
+<message_argument value="newConditionalPermissionInfo(String, ConditionInfo[], PermissionInfo[], String)"/>
+</message_arguments>
+</filter>
+</resource>
<resource path="osgi/src/org/osgi/framework/BundleReference.java" type="org.osgi.framework.BundleReference">
<filter id="1108344834">
<message_arguments>
@@ -231,26 +231,14 @@
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="SERVICE_TYPE"/>
+<message_argument value="FRAMEWORK_SYSTEMPACKAGES_EXTRA"/>
</message_arguments>
</filter>
<filter id="1209008130">
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="FRAMEWORK_SYSTEMPACKAGES_EXTRA"/>
-</message_arguments>
-</filter>
-<filter id="403767336">
-<message_arguments>
-<message_argument value="org.osgi.framework.Constants"/>
-<message_argument value="FRAMEWORK_STORAGE_CLEAN"/>
-</message_arguments>
-</filter>
-<filter id="403767336">
-<message_arguments>
-<message_argument value="org.osgi.framework.Constants"/>
-<message_argument value="FRAMEWORK_EXECPERMISSION"/>
+<message_argument value="SERVICE_TYPE"/>
</message_arguments>
</filter>
<filter id="1209008130">
@@ -263,20 +251,13 @@
<filter id="403767336">
<message_arguments>
<message_argument value="org.osgi.framework.Constants"/>
-<message_argument value="SERVICE_TYPE"/>
+<message_argument value="FRAMEWORK_EXECPERMISSION"/>
</message_arguments>
</filter>
<filter id="403767336">
<message_arguments>
<message_argument value="org.osgi.framework.Constants"/>
-<message_argument value="FRAMEWORK_STORAGE"/>
-</message_arguments>
-</filter>
-<filter id="1209008130">
-<message_arguments>
-<message_argument value="1.5"/>
-<message_argument value="3.5"/>
-<message_argument value="FRAMEWORK_SECURITY"/>
+<message_argument value="FRAMEWORK_STORAGE_CLEAN"/>
</message_arguments>
</filter>
<filter id="1209008130">
@@ -286,10 +267,23 @@
<message_argument value="FRAMEWORK_TRUST_REPOSITORIES"/>
</message_arguments>
</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.5"/>
+<message_argument value="3.5"/>
+<message_argument value="FRAMEWORK_SECURITY"/>
+</message_arguments>
+</filter>
<filter id="403767336">
<message_arguments>
<message_argument value="org.osgi.framework.Constants"/>
-<message_argument value="FRAMEWORK_WINDOWSYSTEM"/>
+<message_argument value="FRAMEWORK_STORAGE"/>
+</message_arguments>
+</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.framework.Constants"/>
+<message_argument value="SERVICE_TYPE"/>
</message_arguments>
</filter>
<filter id="403767336">
@@ -298,6 +292,12 @@
<message_argument value="FRAMEWORK_BEGINNING_STARTLEVEL"/>
</message_arguments>
</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.framework.Constants"/>
+<message_argument value="FRAMEWORK_WINDOWSYSTEM"/>
+</message_arguments>
+</filter>
</resource>
<resource path="osgi/src/org/osgi/util/tracker/BundleTracker.java" type="org.osgi.util.tracker.BundleTracker">
<filter id="1108344834">
@@ -320,14 +320,14 @@
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="STOPPED_UPDATE"/>
+<message_argument value="STOPPED_BOOTCLASSPATH_MODIFIED"/>
</message_arguments>
</filter>
<filter id="1141899266">
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="STOPPED_BOOTCLASSPATH_MODIFIED"/>
+<message_argument value="STOPPED_UPDATE"/>
</message_arguments>
</filter>
</resource>
@@ -346,13 +346,45 @@
</filter>
</resource>
<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java" type="org.osgi.service.condpermadmin.ConditionalPermissionInfo">
-<filter id="403984517">
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.1"/>
+<message_argument value="3.5"/>
+<message_argument value="getGrantDecision()"/>
+</message_arguments>
+</filter>
+<filter id="403804204">
<message_arguments>
<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfo"/>
-<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfoBase"/>
<message_argument value="getGrantDecision()"/>
</message_arguments>
</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.1"/>
+<message_argument value="3.5"/>
+<message_argument value="ALLOW"/>
+</message_arguments>
+</filter>
+<filter id="1209008130">
+<message_arguments>
+<message_argument value="1.1"/>
+<message_argument value="3.5"/>
+<message_argument value="DENY"/>
+</message_arguments>
+</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfo"/>
+<message_argument value="DENY"/>
+</message_arguments>
+</filter>
+<filter id="403767336">
+<message_arguments>
+<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfo"/>
+<message_argument value="ALLOW"/>
+</message_arguments>
+</filter>
</resource>
<resource path="osgi/src/org/osgi/framework/BundleException.java" type="org.osgi.framework.BundleException">
<filter id="1141899266">
@@ -461,13 +493,6 @@
</message_arguments>
</filter>
</resource>
-<resource path="osgi/src/org/osgi/framework/launch/Framework.java" type="org.osgi.framework.launch.Framework">
-<filter id="1110441988">
-<message_arguments>
-<message_argument value="org.osgi.framework.launch.Framework"/>
-</message_arguments>
-</filter>
-</resource>
<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfoBase.java" type="org.osgi.service.condpermadmin.ConditionalPermissionInfoBase">
<filter id="1108344834">
<message_arguments>
@@ -477,19 +502,26 @@
</message_arguments>
</filter>
</resource>
+<resource path="osgi/src/org/osgi/framework/launch/Framework.java" type="org.osgi.framework.launch.Framework">
+<filter id="1110441988">
+<message_arguments>
+<message_argument value="org.osgi.framework.launch.Framework"/>
+</message_arguments>
+</filter>
+</resource>
<resource path="osgi/src/org/osgi/framework/FrameworkUtil.java" type="org.osgi.framework.FrameworkUtil">
<filter id="1141899266">
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="getBundleReference(Class)"/>
+<message_argument value="matchDistinguishedNameChain(String, List)"/>
</message_arguments>
</filter>
<filter id="1141899266">
<message_arguments>
<message_argument value="1.5"/>
<message_argument value="3.5"/>
-<message_argument value="matchDistinguishedNameChain(String, List)"/>
+<message_argument value="getBundleReference(Class)"/>
</message_arguments>
</filter>
</resource>
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/PermissionInfoCollection.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/PermissionInfoCollection.java
index 7c251fa..35ce8bd 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/PermissionInfoCollection.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/PermissionInfoCollection.java
@@ -72,7 +72,7 @@
return collection.implies(perm);
}
- public PermissionInfo[] getPermissionInfos() {
+ PermissionInfo[] getPermissionInfos() {
return permInfos;
}
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityAdmin.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityAdmin.java
index ee00c1d..1126e03 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityAdmin.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityAdmin.java
@@ -184,10 +184,10 @@
}
void delete(SecurityRow securityRow, boolean firstTry) {
- ConditionalPermissionsUpdate update = createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
+ ConditionalPermissionUpdate update = newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
for (Iterator iRows = rows.iterator(); iRows.hasNext();) {
- ConditionalPermissionInfoBase info = (ConditionalPermissionInfoBase) iRows.next();
+ ConditionalPermissionInfo info = (ConditionalPermissionInfo) iRows.next();
if (securityRow.getName().equals(info.getName())) {
iRows.remove();
synchronized (lock) {
@@ -202,15 +202,18 @@
}
}
+ /**
+ * @deprecated
+ */
public ConditionalPermissionInfo addConditionalPermissionInfo(ConditionInfo[] conds, PermissionInfo[] perms) {
return setConditionalPermissionInfo(null, conds, perms, true);
}
- public ConditionalPermissionInfoBase createConditionalPermissionInfoBase(String name, ConditionInfo[] conditions, PermissionInfo[] permissions, String decision) {
- return new SecurityInfoBase(name, conditions, permissions, decision);
+ public ConditionalPermissionInfo newConditionalPermissionInfo(String name, ConditionInfo[] conditions, PermissionInfo[] permissions, String decision) {
+ return new SecurityRowSnapShot(name, conditions, permissions, decision);
}
- public ConditionalPermissionsUpdate createConditionalPermissionsUpdate() {
+ public ConditionalPermissionUpdate newConditionalPermissionUpdate() {
synchronized (lock) {
return new SecurityTableUpdate(this, condAdminTable.getRows(), timeStamp);
}
@@ -223,7 +226,7 @@
// enumerate through all the rows
while (infos.hasMoreElements()) {
SecurityRow condPermInfo = (SecurityRow) infos.nextElement();
- ConditionInfo[] condInfo = condPermInfo.getConditionInfos();
+ ConditionInfo[] condInfo = condPermInfo.internalGetConditionInfos();
boolean match = true;
// check that each condition is a signer condition
for (int i = 0; match && i < condInfo.length; i++) {
@@ -258,12 +261,18 @@
return new AccessControlContext(new ProtectionDomain[] {new ProtectionDomain(null, table)});
}
+ /**
+ * @deprecated
+ */
public ConditionalPermissionInfo getConditionalPermissionInfo(String name) {
synchronized (lock) {
return condAdminTable.getRow(name);
}
}
+ /**
+ * @deprecated
+ */
public Enumeration getConditionalPermissionInfos() {
// could implement our own Enumeration, but we don't care about performance here. Just do something simple:
synchronized (lock) {
@@ -275,21 +284,24 @@
}
}
+ /**
+ * @deprecated
+ */
public ConditionalPermissionInfo setConditionalPermissionInfo(String name, ConditionInfo[] conds, PermissionInfo[] perms) {
return setConditionalPermissionInfo(name, conds, perms, true);
}
private ConditionalPermissionInfo setConditionalPermissionInfo(String name, ConditionInfo[] conds, PermissionInfo[] perms, boolean firstTry) {
- ConditionalPermissionsUpdate update = createConditionalPermissionsUpdate();
- List rows = update.getConditionalPermissionInfoBases();
- ConditionalPermissionInfoBase infoBase = createConditionalPermissionInfoBase(name, conds, perms, ConditionalPermissionInfoBase.ALLOW);
+ ConditionalPermissionUpdate update = newConditionalPermissionUpdate();
+ List rows = update.getConditionalPermissionInfos();
+ ConditionalPermissionInfo infoBase = newConditionalPermissionInfo(name, conds, perms, ConditionalPermissionInfo.ALLOW);
int index = -1;
if (name == null) {
rows.add(infoBase);
index = rows.size() - 1;
} else {
for (int i = 0; i < rows.size() && index < 0; i++) {
- ConditionalPermissionInfoBase info = (ConditionalPermissionInfoBase) rows.get(i);
+ ConditionalPermissionInfo info = (ConditionalPermissionInfo) rows.get(i);
if (name.equals(info.getName())) {
rows.set(i, infoBase);
index = i;
@@ -319,9 +331,9 @@
Collection names = new ArrayList();
for (int i = 0; i < newRows.length; i++) {
Object rowObj = rows.get(i);
- if (!(rowObj instanceof ConditionalPermissionInfoBase))
+ if (!(rowObj instanceof ConditionalPermissionInfo))
throw new IllegalStateException("Invalid type \"" + rowObj.getClass().getName() + "\" at row: " + i); //$NON-NLS-1$//$NON-NLS-2$
- ConditionalPermissionInfoBase infoBaseRow = (ConditionalPermissionInfoBase) rowObj;
+ ConditionalPermissionInfo infoBaseRow = (ConditionalPermissionInfo) rowObj;
String name = infoBaseRow.getName();
if (name == null)
name = generateName();
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRow.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRow.java
index f2e15e9..bb29eb3 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRow.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRow.java
@@ -37,7 +37,7 @@
public SecurityRow(SecurityAdmin securityAdmin, String name, ConditionInfo[] conditionInfos, PermissionInfo[] permissionInfos, String decision) {
this.securityAdmin = securityAdmin;
this.conditionInfos = conditionInfos;
- this.deny = ConditionalPermissionInfoBase.DENY.equals(decision);
+ this.deny = ConditionalPermissionInfo.DENY.equals(decision);
this.name = name;
this.permissionInfoCollection = new PermissionInfoCollection(permissionInfos);
if (conditionInfos == null || conditionInfos.length == 0)
@@ -53,7 +53,7 @@
throw new IllegalArgumentException(encoded);
String decision = null;
if (encoded.charAt(encoded.length() - 1) == '!')
- decision = ConditionalPermissionInfoBase.DENY;
+ decision = ConditionalPermissionInfo.DENY;
String encodedName = null;
if (start != 0)
encodedName = encoded.substring(0, start);
@@ -92,22 +92,43 @@
return new SecurityRow(securityAdmin, encodedName, conds, perms, decision);
}
+ static Object cloneArray(Object[] array) {
+ if (array == null)
+ return null;
+ Object result = Array.newInstance(array.getClass().getComponentType(), array.length);
+ System.arraycopy(array, 0, result, 0, array.length);
+ return result;
+ }
+
public String getName() {
return name;
}
public ConditionInfo[] getConditionInfos() {
+ // must make a copy for the public API method to prevent modification
+ return (ConditionInfo[]) cloneArray(conditionInfos);
+ }
+
+ ConditionInfo[] internalGetConditionInfos() {
return conditionInfos;
}
public String getGrantDecision() {
- return deny ? ConditionalPermissionInfoBase.DENY : ConditionalPermissionInfoBase.ALLOW;
+ return deny ? ConditionalPermissionInfo.DENY : ConditionalPermissionInfo.ALLOW;
}
public PermissionInfo[] getPermissionInfos() {
+ // must make a copy for the public API method to prevent modification
+ return (PermissionInfo[]) cloneArray(permissionInfoCollection.getPermissionInfos());
+ }
+
+ PermissionInfo[] internalGetPermissionInfos() {
return permissionInfoCollection.getPermissionInfos();
}
+ /**
+ * @deprecated
+ */
public void delete() {
securityAdmin.delete(this, true);
}
@@ -228,12 +249,11 @@
StringBuffer result = new StringBuffer();
if (name != null)
result.append(name);
- ConditionInfo[] curConds = getConditionInfos();
- PermissionInfo[] curPerms = getPermissionInfos();
result.append('{').append(' ');
- if (curConds != null)
- for (int i = 0; i < curConds.length; i++)
- result.append(curConds[i].getEncoded()).append(' ');
+ if (conditionInfos != null)
+ for (int i = 0; i < conditionInfos.length; i++)
+ result.append(conditionInfos[i].getEncoded()).append(' ');
+ PermissionInfo[] curPerms = internalGetPermissionInfos();
if (curPerms != null)
for (int i = 0; i < curPerms.length; i++)
result.append(curPerms[i].getEncoded()).append(' ');
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityInfoBase.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRowSnapShot.java
similarity index 60%
rename from bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityInfoBase.java
rename to bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRowSnapShot.java
index 9ce45b1..4d5a7a1 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityInfoBase.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityRowSnapShot.java
@@ -11,25 +11,26 @@
package org.eclipse.osgi.internal.permadmin;
import org.osgi.service.condpermadmin.ConditionInfo;
-import org.osgi.service.condpermadmin.ConditionalPermissionInfoBase;
+import org.osgi.service.condpermadmin.ConditionalPermissionInfo;
import org.osgi.service.permissionadmin.PermissionInfo;
-public class SecurityInfoBase implements ConditionalPermissionInfoBase {
+public class SecurityRowSnapShot implements ConditionalPermissionInfo {
private final String name;
private final ConditionInfo[] conditionInfos;
private final PermissionInfo[] permissionInfos;
private final String decision;
- public SecurityInfoBase(String name, ConditionInfo[] conditionInfos, PermissionInfo[] permissionInfos, String decision) {
+ public SecurityRowSnapShot(String name, ConditionInfo[] conditionInfos, PermissionInfo[] permissionInfos, String decision) {
this.name = name;
- this.conditionInfos = conditionInfos;
- this.permissionInfos = permissionInfos;
+ // must create copies of the passed in arrays to prevent changes
+ this.conditionInfos = (ConditionInfo[]) SecurityRow.cloneArray(conditionInfos);
+ this.permissionInfos = (PermissionInfo[]) SecurityRow.cloneArray(permissionInfos);
this.decision = decision;
}
public ConditionInfo[] getConditionInfos() {
- return conditionInfos;
+ return (ConditionInfo[]) SecurityRow.cloneArray(conditionInfos);
}
public String getGrantDecision() {
@@ -41,7 +42,14 @@
}
public PermissionInfo[] getPermissionInfos() {
- return permissionInfos;
+ return (PermissionInfo[]) SecurityRow.cloneArray(permissionInfos);
+ }
+
+ /**
+ * @deprecated
+ */
+ public void delete() {
+ throw new UnsupportedOperationException();
}
}
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityTableUpdate.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityTableUpdate.java
index 56b8b0e..9e08108 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityTableUpdate.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/permadmin/SecurityTableUpdate.java
@@ -12,9 +12,9 @@
import java.util.ArrayList;
import java.util.List;
-import org.osgi.service.condpermadmin.ConditionalPermissionsUpdate;
+import org.osgi.service.condpermadmin.ConditionalPermissionUpdate;
-public class SecurityTableUpdate implements ConditionalPermissionsUpdate {
+public class SecurityTableUpdate implements ConditionalPermissionUpdate {
private final SecurityAdmin securityAdmin;
private final List rows;
@@ -23,16 +23,20 @@
public SecurityTableUpdate(SecurityAdmin securityAdmin, SecurityRow[] rows, long timeStamp) {
this.securityAdmin = securityAdmin;
this.timeStamp = timeStamp;
+ // must make a snap shot of the security rows.
this.rows = new ArrayList(rows.length);
for (int i = 0; i < rows.length; i++)
- this.rows.add(new SecurityInfoBase(rows[i].getName(), rows[i].getConditionInfos(), rows[i].getPermissionInfos(), rows[i].getGrantDecision()));
+ // Use SecurityRowSnapShot to prevent modification before commit
+ // and to throw exceptions from delete
+ this.rows.add(new SecurityRowSnapShot(rows[i].getName(), rows[i].internalGetConditionInfos(), rows[i].internalGetPermissionInfos(), rows[i].getGrantDecision()));
}
public boolean commit() {
return securityAdmin.commit(rows, timeStamp);
}
- public List getConditionalPermissionInfoBases() {
+ public List getConditionalPermissionInfos() {
+ // it is fine to return the internal list; it is a snap shot and we allow clients to modify it.
return rows;
}
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/Condition.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/Condition.java
index be836a0..f3c1a92 100644
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/Condition.java
+++ b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/Condition.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2004, 2008). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2009). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,20 +24,20 @@
* Info can only be used if the associated Conditions are satisfied.
*
* @ThreadSafe
- * @version $Revision: 6000 $
+ * @version $Revision: 6279 $
*/
public interface Condition {
/**
* A Condition object that will always evaluate to true and that is never
* postponed.
*/
- public final static Condition TRUE = new BooleanCondition(true);
+ public final static Condition TRUE = new BooleanCondition(true);
/**
* A Condition object that will always evaluate to false and that is never
* postponed.
*/
- public final static Condition FALSE = new BooleanCondition(false);
+ public final static Condition FALSE = new BooleanCondition(false);
/**
* Returns whether the evaluation must be postponed until the end of the
@@ -45,13 +45,13 @@
* Condition is immutable), then this Condition must be able to directly
* answer the {@link #isSatisfied()} method. In other words, isSatisfied()
* will return very quickly since no external sources, such as for example
- * users or networks, need to be consulted. <br/> This method must always
- * return the same value whenever it is called so that the Conditional
- * Permission Admin can cache its result.
+ * users or networks, need to be consulted. <br/>
+ * This method must always return the same value whenever it is called so
+ * that the Conditional Permission Admin can cache its result.
*
* @return <code>true</code> to indicate the evaluation must be postponed.
- * Otherwise, <code>false</code> if the evaluation can be
- * performed immediately.
+ * Otherwise, <code>false</code> if the evaluation can be performed
+ * immediately.
*/
boolean isPostponed();
@@ -64,15 +64,14 @@
* check.
*
* @return <code>true</code> to indicate the Conditions is satisfied.
- * Otherwise, <code>false</code> if the Condition is not
- * satisfied.
+ * Otherwise, <code>false</code> if the Condition is not satisfied.
*/
boolean isSatisfied();
/**
- * Returns whether the Condition is mutable. A Condition can go from mutable (<code>true</code>)
- * to immutable (<code>false</code>) over time but never from immutable (<code>false</code>)
- * to mutable (<code>true</code>).
+ * Returns whether the Condition is mutable. A Condition can go from mutable
+ * (<code>true</code>) to immutable (<code>false</code>) over time but never
+ * from immutable (<code>false</code>) to mutable (<code>true</code>).
*
* @return <code>true</code> {@link #isSatisfied()} can change. Otherwise,
* <code>false</code> if the value returned by
@@ -87,20 +86,18 @@
* correspond to the class type of the object on which this method is
* invoked.This method must be called inside a permission check only.
*
- * @param conditions
- * The array of Condition objects, which must all be of the same
- * class and mutable. The receiver must be one of those Condition
- * objects.
- * @param context
- * A Dictionary object that implementors can use to track state.
- * If this method is invoked multiple times in the same
- * permission check, the same Dictionary will be passed multiple
- * times. The SecurityManager treats this Dictionary as an opaque
- * object and simply creates an empty dictionary and passes it to
- * subsequent invocations if multiple invocations are needed.
+ * @param conditions The array of Condition objects, which must all be of
+ * the same class and mutable. The receiver must be one of those
+ * Condition objects.
+ * @param context A Dictionary object that implementors can use to track
+ * state. If this method is invoked multiple times in the same
+ * permission check, the same Dictionary will be passed multiple
+ * times. The SecurityManager treats this Dictionary as an opaque
+ * object and simply creates an empty dictionary and passes it to
+ * subsequent invocations if multiple invocations are needed.
* @return <code>true</code> if all the Condition objects are satisfied.
- * Otherwise, <code>false</code> if one of the Condition objects
- * is not satisfied.
+ * Otherwise, <code>false</code> if one of the Condition objects is
+ * not satisfied.
*/
boolean isSatisfied(Condition conditions[], Dictionary context);
@@ -111,7 +108,7 @@
* {@link Condition#TRUE} constants.
*/
final class BooleanCondition implements Condition {
- private final boolean satisfied;
+ private final boolean satisfied;
BooleanCondition(boolean satisfied) {
this.satisfied = satisfied;
@@ -130,11 +127,10 @@
}
public boolean isSatisfied(Condition[] conds, Dictionary context) {
- for (int i = 0; i < conds.length; i++) {
+ for (int i = 0, length = conds.length; i < length; i++) {
if (!conds[i].isSatisfied())
return false;
}
return true;
}
-
}
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java
index 53ab8ec..2489060 100644
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java
+++ b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2005, 2008). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2005, 2009). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@
* the Conditional Permission Table.
*
* @ThreadSafe
- * @version $Revision: 5654 $
+ * @version $Revision: 6279 $
*/
public interface ConditionalPermissionAdmin {
/**
@@ -38,11 +38,11 @@
* The Conditional Permission Info will be given a unique, never reused
* name. This entry will be added at the beginning of the Conditional
* Permission Table with a grant decision of
- * {@link ConditionalPermissionInfoBase#ALLOW ALLOW}.
+ * {@link ConditionalPermissionInfo#ALLOW ALLOW}.
* <p>
* Since this method changes the Conditional Permission Table any
- * {@link ConditionalPermissionsUpdate}s that were created prior to
- * calling this method can no longer be committed.
+ * {@link ConditionalPermissionUpdate}s that were created prior to calling
+ * this method can no longer be committed.
*
* @param conds The Conditions that need to be satisfied to enable the
* corresponding Permissions.
@@ -52,10 +52,10 @@
* Permissions.
* @throws SecurityException If the caller does not have
* <code>AllPermission</code>.
- * @deprecated Since 1.1. Use {@link ConditionalPermissionsUpdate}
+ * @deprecated Since 1.1. Use {@link #newConditionalPermissionUpdate()}
* instead.
*/
- public ConditionalPermissionInfo addConditionalPermissionInfo(
+ ConditionalPermissionInfo addConditionalPermissionInfo(
ConditionInfo conds[], PermissionInfo perms[]);
/**
@@ -70,11 +70,11 @@
* specified name must be updated with the specified Conditions and
* Permissions. If a new entry was created in the Conditional Permission
* Table it will be added at the beginning of the table with a grant
- * decision of {@link ConditionalPermissionInfoBase#ALLOW ALLOW}.
+ * decision of {@link ConditionalPermissionInfo#ALLOW ALLOW}.
* <p>
* Since this method changes the underlying permission table any
- * {@link ConditionalPermissionsUpdate}s that were created prior to
- * calling this method can no longer be committed.
+ * {@link ConditionalPermissionUpdate}s that were created prior to calling
+ * this method can no longer be committed.
*
* @param name The name of the Conditional Permission Info, or
* <code>null</code>.
@@ -86,10 +86,10 @@
* Conditions and Permissions.
* @throws SecurityException If the caller does not have
* <code>AllPermission</code>.
- * @deprecated Since 1.1. Use {@link ConditionalPermissionsUpdate}
+ * @deprecated Since 1.1. Use {@link #newConditionalPermissionUpdate()}
* instead.
*/
- public ConditionalPermissionInfo setConditionalPermissionInfo(String name,
+ ConditionalPermissionInfo setConditionalPermissionInfo(String name,
ConditionInfo conds[], PermissionInfo perms[]);
/**
@@ -105,16 +105,20 @@
*
* @return An enumeration of the Conditional Permission Infos that are
* currently in the Conditional Permission Table.
+ * @deprecated Since 1.1. Use {@link #newConditionalPermissionUpdate()}
+ * instead.
*/
- public Enumeration getConditionalPermissionInfos();
+ Enumeration/* <ConditionalPermissionInfo> */getConditionalPermissionInfos();
/**
* Return the Conditional Permission Info with the specified name.
*
* @param name The name of the Conditional Permission Info to be returned.
* @return The Conditional Permission Info with the specified name.
+ * @deprecated Since 1.1. Use {@link #newConditionalPermissionUpdate()}
+ * instead.
*/
- public ConditionalPermissionInfo getConditionalPermissionInfo(String name);
+ ConditionalPermissionInfo getConditionalPermissionInfo(String name);
/**
* Returns the Access Control Context that corresponds to the specified
@@ -124,28 +128,32 @@
* @return An <code>AccessControlContext</code> that has the Permissions
* associated with the signer.
*/
- public AccessControlContext getAccessControlContext(String[] signers);
+ AccessControlContext getAccessControlContext(String[] signers);
/**
- * Creates an update for the Conditional Permission Table. The update is a
- * working copy of the current Conditional Permission Table. If the running
- * Conditional Permission Table is modified before commit is called on the
- * returned update, then the call to commit will fail. That is, the commit
- * method will return false and no change will be made to the running
- * Conditional Permission Table. There is no requirement that commit is
- * eventually called on the returned update.
+ * Creates a new update for the Conditional Permission Table. The update is
+ * a working copy of the current Conditional Permission Table. If the
+ * running Conditional Permission Table is modified before commit is called
+ * on the returned update, then the call to commit on the returned update
+ * will fail. That is, the commit method will return false and no change
+ * will be made to the running Conditional Permission Table. There is no
+ * requirement that commit is eventually called on the returned update.
*
- * @return An update for the Conditional Permission Table.
+ * @return A new update for the Conditional Permission Table.
* @since 1.1
*/
- public ConditionalPermissionsUpdate createConditionalPermissionsUpdate();
+ ConditionalPermissionUpdate newConditionalPermissionUpdate();
/**
- * Creates a ConditionalPermissionInfoBase with the specified fields.
+ * Creates a new ConditionalPermissionInfo with the specified fields
+ * suitable for insertion into a {@link ConditionalPermissionUpdate}. The
+ * {@link ConditionalPermissionInfo#delete() delete} method on
+ * ConditionalPermissionInfo objects created with this method must throw
+ * UnsupportedOperationException.
*
- * @param name The name of the created ConditionalPermissionInfoBase or
+ * @param name The name of the created ConditionalPermissionInfo or
* <code>null</code> to have a unique name generated when the created
- * ConditionalPermissionInfoBase is committed in an update to the
+ * ConditionalPermissionInfo is committed in an update to the
* Conditional Permission Table.
* @param conditions The Conditions that need to be satisfied to enable the
* corresponding Permissions.
@@ -153,17 +161,16 @@
* corresponding Conditions are satisfied.
* @param decision One of the following values:
* <ul>
- * <li>{@link ConditionalPermissionInfoBase#ALLOW allow}</li>
+ * <li>{@link ConditionalPermissionInfo#ALLOW allow}</li>
*
- * <li>{@link ConditionalPermissionInfoBase#DENY deny}</li>
+ * <li>{@link ConditionalPermissionInfo#DENY deny}</li>
* </ul>
- * @return A ConditionalPermissionInfoBase object suitable for insertion in
- * a {@link ConditionalPermissionsUpdate}.
+ * @return A ConditionalPermissionInfo object suitable for insertion into a
+ * {@link ConditionalPermissionUpdate}.
* @throws IllegalArgumentException If the decision string is invalid.
* @since 1.1
*/
- public ConditionalPermissionInfoBase createConditionalPermissionInfoBase(
- String name,
+ ConditionalPermissionInfo newConditionalPermissionInfo(String name,
ConditionInfo conditions[], PermissionInfo permissions[],
String decision);
}
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java
index f12b72a..ebf89af 100644
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java
+++ b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2004, 2008). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2009). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,24 +16,93 @@
package org.osgi.service.condpermadmin;
+import org.osgi.service.permissionadmin.PermissionInfo;
+
/**
* A binding of a set of Conditions to a set of Permissions. Instances of this
* interface are obtained from the Conditional Permission Admin service.
*
- * @ThreadSafe
- * @version $Revision: 5654 $
+ * @Immutable
+ * @version $Revision: 6279 $
*/
-public interface ConditionalPermissionInfo extends ConditionalPermissionInfoBase {
+public interface ConditionalPermissionInfo {
+ /**
+ * This string is used to indicate that a row in the Conditional Permission
+ * Table should return a grant decision of "allow" if the
+ * conditions are all satisfied and at least one of the permissions is
+ * implied.
+ *
+ * @since 1.1
+ */
+ public final static String ALLOW = "allow";
+
+ /**
+ * This string is used to indicate that a row in the Conditional Permission
+ * Table should return a grant decision of "deny" if the
+ * conditions are all satisfied and at least one of the permissions is
+ * implied.
+ *
+ * @since 1.1
+ */
+ public final static String DENY = "deny";
+
+ /**
+ * Returns the Condition Infos for the Conditions that must be satisfied to
+ * enable the Permissions.
+ *
+ * @return The Condition Infos for the Conditions in this Conditional
+ * Permission Info.
+ */
+ ConditionInfo[] getConditionInfos();
+
+ /**
+ * Returns the Permission Infos for the Permission in this Conditional
+ * Permission Info.
+ *
+ * @return The Permission Infos for the Permission in this Conditional
+ * Permission Info.
+ */
+ PermissionInfo[] getPermissionInfos();
+
/**
* Removes this Conditional Permission Info from the Conditional Permission
* Table.
* <p>
* Since this method changes the underlying permission table any
- * {@link ConditionalPermissionsUpdate}s that were created prior to calling
+ * {@link ConditionalPermissionUpdate}s that were created prior to calling
* this method can no longer be committed.
*
+ * @throws UnsupportedOperationException If this object was created by
+ * {@link ConditionalPermissionAdmin#newConditionalPermissionInfo}
+ * or obtained from a {@link ConditionalPermissionUpdate}. This
+ * method only functions if this object was obtained from one of the
+ * {@link ConditionalPermissionAdmin} methods deprecated in version
+ * 1.1.
* @throws SecurityException If the caller does not have
* <code>AllPermission</code>.
+ * @deprecated Since 1.1. Use
+ * {@link ConditionalPermissionAdmin#newConditionalPermissionUpdate()}
+ * instead to manage the Conditional Permissions.
*/
- public void delete();
+ void delete();
+
+ /**
+ * Returns the name of this Conditional Permission Info.
+ *
+ * @return The name of this Conditional Permission Info.
+ */
+ String getName();
+
+ /**
+ * Returns the grant decision for this Conditional Permission Info.
+ *
+ * @return One of the following values:
+ * <ul>
+ * <li>{@link #ALLOW allow} - The grant decision is
+ * "allow".</li>
+ * <li>{@link #DENY deny} - The grant decision is "deny".</li>
+ * </ul>
+ * @since 1.1
+ */
+ String getGrantDecision();
}
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfoBase.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfoBase.java
deleted file mode 100644
index ffaf1ea..0000000
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfoBase.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) OSGi Alliance (2008). All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.osgi.service.condpermadmin;
-
-import org.osgi.service.permissionadmin.PermissionInfo;
-
-/**
- * A binding of a set of Conditions to a set of Permissions. Instances of this
- * interface are obtained from the Conditional Permission Admin service.
- *
- * @Immutable
- * @since 1.1
- * @version $Revision: 5654 $
- */
-public interface ConditionalPermissionInfoBase {
- /**
- * This string is used to indicate that a row in the conditional permission
- * admin table should return a grant decision of ALLOW if the conditions are
- * all satisfied and at least one of the permissions is implied.
- */
- public final static String ALLOW = "allow";
-
- /**
- * This string is used to indicate that a row in the conditional permission
- * admin table should return a grant decision of DENY if the conditions are
- * all satisfied and at least one of the permissions is implied.
- */
- public final static String DENY = "deny";
-
- /**
- * Returns the Condition Infos for the Conditions that must be satisfied to
- * enable the Permissions.
- *
- * @return The Condition Infos for the Conditions in this Conditional
- * Permission Info.
- */
- public ConditionInfo[] getConditionInfos();
-
- /**
- * Returns the Permission Infos for the Permission in this Conditional
- * Permission Info.
- *
- * @return The Permission Infos for the Permission in this Conditional
- * Permission Info.
- */
- public PermissionInfo[] getPermissionInfos();
-
- /**
- * Returns the grant decision for this Conditional Permission Info.
- *
- * @return One of the following values:
- * <ul>
- * <li>{@link #ALLOW allow} - The grant decision is allow.</li>
- *
- * <li>{@link #DENY deny} - The grant decision is DENY.</li>
- * </ul>
- */
- public String getGrantDecision();
-
- /**
- * Returns the name of this Conditional Permission Info.
- *
- * @return The name of this Conditional Permission Info.
- */
- public String getName();
-}
diff --git a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionsUpdate.java b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java
similarity index 67%
rename from bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionsUpdate.java
rename to bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java
index 329ff80..b4a44b5 100644
--- a/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionsUpdate.java
+++ b/bundles/org.eclipse.osgi/osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2008). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,36 +24,33 @@
* Table has been modified since this update was created, then the call to
* commit will fail and this object should be discarded.
*
- * @version $Revision: 5654 $
+ * @ThreadSafe
+ * @version $Revision: 6279 $
* @since 1.1
*/
-public interface ConditionalPermissionsUpdate {
+public interface ConditionalPermissionUpdate {
/**
- * This method returns the list of {@link ConditionalPermissionInfoBase}s
- * for this update. This list is originally based on the Conditional
- * Permission Table at the time this update was created. The list returned
- * by this method will be replace the Conditional Permission Table if commit
- * is called and is successful.
+ * This method returns the list of {@link ConditionalPermissionInfo}s for
+ * this update. This list is originally based on the Conditional Permission
+ * Table at the time this update was created. The list returned by this
+ * method will be replace the Conditional Permission Table if commit is
+ * called and is successful.
* <p>
- * The elements of the list must NOT be instances of type
- * {@link ConditionalPermissionInfo}, but must rather be of type
- * {@link ConditionalPermissionInfoBase}. This is to ensure the
- * {@link ConditionalPermissionInfo#delete delete} method cannot be
- * mistakenly used.
+ * The {@link ConditionalPermissionInfo#delete delete} method of the
+ * ConditionalPermissionInfos in the list must throw
+ * UnsupportedOperationException.
* <p>
* The list returned by this method is ordered and the most significant
* table entry is the first entry in the list.
*
- * @return A <code>List</code> of the Conditional Permission Info Bases
+ * @return A <code>List</code> of the {@link ConditionalPermissionInfo}s
* which represent the Conditional Permissions maintained by this
* update. Modifications to this list will not affect the
* Conditional Permission Table until successfully committed. The
- * elements in this list must be of type
- * {@link ConditionalPermissionInfoBase}. The list may be empty if
- * the Conditional Permission Table was empty when this update was
- * created.
+ * list may be empty if the Conditional Permission Table was empty
+ * when this update was created.
*/
- public List getConditionalPermissionInfoBases();
+ List /* <ConditionalPermissionInfo> */getConditionalPermissionInfos();
/**
* Commit the update. If no changes have been made to the Conditional
@@ -62,10 +59,10 @@
* Permissions. This method may only be successfully called once on this
* object.
* <p>
- * If any of the {@link ConditionalPermissionInfoBase} objects in the update
- * list has <code>null</code> as a name it will be replaced with a
- * {@link ConditionalPermissionInfoBase} object that has a generated name
- * which is unique within the list.
+ * If any of the {@link ConditionalPermissionInfo}s in the update list has
+ * <code>null</code> as a name it will be replaced with a
+ * {@link ConditionalPermissionInfo} object that has a generated name which
+ * is unique within the list.
* <p>
* No two entries in this update's Conditional Permissions may have the same
* name. Other consistency checks may also be performed. If the update's
@@ -84,7 +81,6 @@
* not valid or inconsistent. For example, if this update has two
* Conditional Permissions in it with the same name, then this
* exception will be thrown.
- *
*/
- public boolean commit();
+ boolean commit();
}