Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2013-08-19 19:36:18 +0000
committerThomas Watson2013-08-19 19:36:18 +0000
commitf48da5275ec3112c07f84e38efddd3765240adc5 (patch)
tree89b5018b5ffa45cbc7d49a8af17836e976e84a56 /bundles/org.eclipse.equinox.cm
parentfe4710104535d10c0a28a7e8ae6154bcf770c69e (diff)
downloadrt.equinox.bundles-f48da5275ec3112c07f84e38efddd3765240adc5.tar.gz
rt.equinox.bundles-f48da5275ec3112c07f84e38efddd3765240adc5.tar.xz
rt.equinox.bundles-f48da5275ec3112c07f84e38efddd3765240adc5.zip
No longer use wrapped configuration objects
- OSGi CT no longer requires this for permissions
Diffstat (limited to 'bundles/org.eclipse.equinox.cm')
-rw-r--r--bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminFactory.java2
-rw-r--r--bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminImpl.java4
-rw-r--r--bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationImpl.java78
3 files changed, 9 insertions, 75 deletions
diff --git a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminFactory.java b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminFactory.java
index 98ba90258..05fd73743 100644
--- a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminFactory.java
+++ b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminFactory.java
@@ -73,7 +73,7 @@ public class ConfigurationAdminFactory implements ServiceFactory<ConfigurationAd
public void checkConfigurePermission(String location, String forBundleLocation) throws SecurityException {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
- if (!forBundleLocation.equals(location)) {
+ if (forBundleLocation == null || !forBundleLocation.equals(location)) {
if (location == null) {
sm.checkPermission(allConfigurationPermission);
} else {
diff --git a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminImpl.java b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminImpl.java
index 20b7a92a9..5c3ddf04c 100644
--- a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminImpl.java
+++ b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationAdminImpl.java
@@ -72,7 +72,7 @@ class ConfigurationAdminImpl implements ConfigurationAdmin {
} else {
this.configurationAdminFactory.checkConfigurePermission(configLocation, bundleLocation);
}
- return config.getConfiguration(bundleLocation);
+ return config;
}
public Configuration[] listConfigurations(String filterString) throws InvalidSyntaxException {
@@ -91,7 +91,7 @@ class ConfigurationAdminImpl implements ConfigurationAdmin {
if (sm != null) {
this.configurationAdminFactory.checkConfigurePermission(configs[i].getLocation(), bundleLocation);
}
- result.add(configs[i].getConfiguration(bundleLocation));
+ result.add(configs[i]);
} catch (SecurityException e) {
// ignore;
}
diff --git a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationImpl.java b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationImpl.java
index e15ba7a42..fcda0a717 100644
--- a/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationImpl.java
+++ b/bundles/org.eclipse.equinox.cm/src/org/eclipse/equinox/internal/cm/ConfigurationImpl.java
@@ -23,7 +23,7 @@ import org.osgi.service.cm.*;
* The lock and unlock methods are used for synchronization. Operations outside of
* ConfigurationImpl that expect to have control of the lock should call checkLocked
*/
-class ConfigurationImpl {
+class ConfigurationImpl implements Configuration {
final static String LOCATION_BOUND = "org.eclipse.equinox.cm.location.bound"; //$NON-NLS-1$
final static String PROPERTIES_NULL = "org.eclipse.equinox.cm.properties.null"; //$NON-NLS-1$
final static String CHANGE_COUNT = "org.eclipse.equinox.cm.change.count"; //$NON-NLS-1$
@@ -193,12 +193,11 @@ class ConfigurationImpl {
}
}
- public String getBundleLocation(String forBundleLocation) {
+ public String getBundleLocation() {
try {
lock();
checkDeleted();
- if (forBundleLocation != null && !forBundleLocation.equals(bundleLocation))
- configurationAdminFactory.checkConfigurePermission(bundleLocation, forBundleLocation);
+ configurationAdminFactory.checkConfigurePermission(bundleLocation, null);
if (bundleLocation != null)
return bundleLocation;
return null;
@@ -294,12 +293,12 @@ class ConfigurationImpl {
}
}
- public void setBundleLocation(String bundleLocation, String forBundleLocation) {
+ public void setBundleLocation(String bundleLocation) {
try {
lock();
checkDeleted();
- configurationAdminFactory.checkConfigurePermission(this.bundleLocation, forBundleLocation);
- configurationAdminFactory.checkConfigurePermission(bundleLocation, forBundleLocation);
+ configurationAdminFactory.checkConfigurePermission(this.bundleLocation, null);
+ configurationAdminFactory.checkConfigurePermission(bundleLocation, null);
String oldLocation = this.bundleLocation;
this.bundleLocation = bundleLocation;
this.bound = false;
@@ -401,69 +400,4 @@ class ConfigurationImpl {
unlock();
}
}
-
- Configuration getConfiguration(String forBundleLocation) {
- return new ConfigurationForBundle(forBundleLocation);
- }
-
- class ConfigurationForBundle implements Configuration {
- private final String forBundleLocation;
-
- ConfigurationForBundle(String forBundleLocation) {
- this.forBundleLocation = forBundleLocation;
- }
-
- public String getPid() {
- return getImpl().getPid();
- }
-
- public Dictionary<String, Object> getProperties() {
- return getImpl().getProperties();
- }
-
- public void update(Dictionary<String, ?> properties) throws IOException {
- getImpl().update(properties);
- }
-
- public void delete() {
- getImpl().delete();
- }
-
- public String getFactoryPid() {
- return getImpl().getFactoryPid();
- }
-
- public void update() throws IOException {
- getImpl().update();
- }
-
- public void setBundleLocation(String location) {
- getImpl().setBundleLocation(location, forBundleLocation);
- }
-
- public String getBundleLocation() {
- return getImpl().getBundleLocation(forBundleLocation);
- }
-
- public long getChangeCount() {
- return getImpl().getChangeCount();
- }
-
- @Override
- public boolean equals(Object other) {
- if (!(other instanceof ConfigurationForBundle)) {
- return false;
- }
- return getImpl().equals(((ConfigurationForBundle) other).getImpl());
- }
-
- @Override
- public int hashCode() {
- return getImpl().hashCode();
- }
-
- private ConfigurationImpl getImpl() {
- return ConfigurationImpl.this;
- }
- }
} \ No newline at end of file

Back to the top