Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox')
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Activator.java9
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Authorization.java13
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Group.java28
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Role.java17
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/User.java10
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdmin.java28
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventAdapter.java18
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventProducer.java16
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminHashtable.java18
-rw-r--r--bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminStore.java187
10 files changed, 177 insertions, 167 deletions
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Activator.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Activator.java
index 9db29b001..836918e58 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Activator.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Activator.java
@@ -44,6 +44,7 @@ public class Activator implements BundleActivator, ServiceFactory, ServiceTracke
/**
* Required by BundleActivator Interface.
*/
+ @Override
public void start(BundleContext context_) throws Exception {
this.context = context_;
prefsTracker = new ServiceTracker(context, PreferencesService.class.getName(), this);
@@ -68,6 +69,7 @@ public class Activator implements BundleActivator, ServiceFactory, ServiceTracke
/**
* Required by BundleActivator Interface.
*/
+ @Override
public void stop(BundleContext context_) throws Exception {
if (eventAdapter != null) {
eventAdapter.stop();
@@ -78,15 +80,18 @@ public class Activator implements BundleActivator, ServiceFactory, ServiceTracke
unregisterUserAdminService();
}
+ @Override
public Object getService(Bundle bundle, ServiceRegistration registration_) {
userAdmin.setServiceReference(registration_.getReference());
return userAdmin;
}
+ @Override
public void ungetService(Bundle bundle, ServiceRegistration registration_, Object service) {
//do nothing
}
+ @Override
public Object addingService(ServiceReference reference) {
if (prefs == null) {
prefs = (PreferencesService) context.getService(reference);
@@ -100,10 +105,12 @@ public class Activator implements BundleActivator, ServiceFactory, ServiceTracke
return null; //we don't want to track a service we are not using
}
+ @Override
public void modifiedService(ServiceReference reference, Object service) {
// do nothing
}
+ @Override
public void removedService(ServiceReference reference, Object service) {
if (service == prefs) {
prefs = null;
@@ -116,7 +123,7 @@ public class Activator implements BundleActivator, ServiceFactory, ServiceTracke
* Register the UserAdmin service.
*/
protected void registerUserAdminService() throws Exception {
- Hashtable properties = new Hashtable(7);
+ Hashtable<String, String> properties = new Hashtable<>(7);
properties.put(Constants.SERVICE_VENDOR, UserAdminMsg.Service_Vendor);
properties.put(Constants.SERVICE_DESCRIPTION, UserAdminMsg.OSGi_User_Admin_service_IBM_Implementation_3);
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Authorization.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Authorization.java
index adcdb9416..32eaf2d7a 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Authorization.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Authorization.java
@@ -82,6 +82,7 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
* context was created for, or <code>null</code> if no user was specified
* when this Authorization context was created.
*/
+ @Override
public String getName() {
useradmin.checkAlive();
return (name);
@@ -102,6 +103,7 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
* @return <code>true</code> if this Authorization context implies the
* specified role, otherwise <code>false</code>.
*/
+ @Override
public boolean hasRole(String name_) {
useradmin.checkAlive();
synchronized (useradmin) {
@@ -109,7 +111,7 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
if (checkRole == null) {
return (false);
}
- return (checkRole.isImpliedBy(user, new Vector()));
+ return checkRole.isImpliedBy(user, new Vector<>());
}
}
@@ -119,6 +121,7 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
* @return The names of all roles encapsulated by this Authorization
* context, or <code>null</code> if no roles are in the context.
*/
+ @Override
public String[] getRoles() {
useradmin.checkAlive();
@@ -127,10 +130,10 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
synchronized (useradmin) //we don't want anything changing while we get the list
{
int length = useradmin.roles.size();
- Vector result = new Vector(length);
+ Vector<String> result = new Vector<>(length);
for (int i = 0; i < length; i++) {
- Role role = (Role) useradmin.roles.elementAt(i);
- if (role.isImpliedBy(user, new Vector())) {
+ Role role = useradmin.roles.elementAt(i);
+ if (role.isImpliedBy(user, new Vector<>())) {
String roleName = role.getName();
//exclude user.anyone from the list
if (!roleName.equals(Role.anyoneString)) {
@@ -144,7 +147,7 @@ public class Authorization implements org.osgi.service.useradmin.Authorization {
}
String[] copyrole = new String[size];
result.copyInto(copyrole);
- return (copyrole);
+ return copyrole;
}
}
}
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Group.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Group.java
index 41aedd2a2..2d10698a8 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Group.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Group.java
@@ -87,14 +87,14 @@ import org.osgi.service.prefs.BackingStoreException;
public class Group extends User implements org.osgi.service.useradmin.Group {
- protected Vector requiredMembers;
- protected Vector basicMembers;
+ protected Vector<org.osgi.service.useradmin.Role> requiredMembers;
+ protected Vector<org.osgi.service.useradmin.Role> basicMembers;
protected Group(String name, UserAdmin useradmin) {
super(name, useradmin);
this.useradmin = useradmin;
- basicMembers = new Vector();
- requiredMembers = new Vector();
+ basicMembers = new Vector<>();
+ requiredMembers = new Vector<>();
}
/**
@@ -110,6 +110,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
* @throws SecurityException If a security manager exists and the caller
* does not have the <tt>UserAdminPermission</tt> with name <tt>admin</tt>.
*/
+ @Override
public boolean addMember(org.osgi.service.useradmin.Role role) {
useradmin.checkAlive();
useradmin.checkAdminPermission();
@@ -152,6 +153,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
* @throws SecurityException If a security manager exists and the caller
* does not have the <tt>UserAdminPermission</tt> with name <tt>admin</tt>.
*/
+ @Override
public boolean addRequiredMember(org.osgi.service.useradmin.Role role) {
useradmin.checkAlive();
useradmin.checkAdminPermission();
@@ -190,6 +192,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
* @throws SecurityException If a security manager exists and the caller
* does not have the <tt>UserAdminPermission</tt> with name <tt>admin</tt>.
*/
+ @Override
public boolean removeMember(org.osgi.service.useradmin.Role role) {
useradmin.checkAlive();
useradmin.checkAdminPermission();
@@ -221,6 +224,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
* @return The basic members of this Group, or <code>null</code> if this
* Group does not contain any basic members.
*/
+ @Override
public org.osgi.service.useradmin.Role[] getMembers() {
useradmin.checkAlive();
synchronized (useradmin) {
@@ -239,6 +243,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
* @return The required members of this Group, or <code>null</code> if this
* Group does not contain any required members.
*/
+ @Override
public org.osgi.service.useradmin.Role[] getRequiredMembers() {
useradmin.checkAlive();
synchronized (useradmin) {
@@ -256,12 +261,15 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
*
* @return The role's type.
*/
+ @Override
public int getType() {
useradmin.checkAlive();
- return (org.osgi.service.useradmin.Role.GROUP);
+ return org.osgi.service.useradmin.Role.GROUP;
}
- protected boolean isImpliedBy(Role role, Vector checkLoop) {
+ @Override
+ @SuppressWarnings("unchecked")
+ protected boolean isImpliedBy(Role role, Vector<String> checkLoop) {
if (checkLoop.contains(name)) {
//we have a circular dependency
return (false);
@@ -271,9 +279,9 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
return (true);
}
checkLoop.addElement(name);
- Vector requiredCheckLoop = (Vector) checkLoop.clone();
- Vector basicCheckLoop = (Vector) checkLoop.clone();
- Enumeration e = requiredMembers.elements();
+ Vector<String> requiredCheckLoop = (Vector<String>) checkLoop.clone();
+ Vector<String> basicCheckLoop = (Vector<String>) checkLoop.clone();
+ Enumeration<org.osgi.service.useradmin.Role> e = requiredMembers.elements();
//check to see if we imply all of the 0 or more required roles
Role requiredRole;
@@ -292,7 +300,7 @@ public class Group extends User implements org.osgi.service.useradmin.Group {
return (true);
}
}
- return (false);
+ return false;
}
}
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Role.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Role.java
index 051d3f9b1..bdd7d47d8 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Role.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/Role.java
@@ -43,7 +43,7 @@ public class Role implements org.osgi.service.useradmin.Role {
protected String name;
protected UserAdminHashtable properties;
- protected Vector impliedRoles;
+ protected Vector<Group> impliedRoles;
protected UserAdmin useradmin;
protected static final String anyoneString = "user.anyone"; //$NON-NLS-1$
protected boolean exists = true;
@@ -56,7 +56,7 @@ public class Role implements org.osgi.service.useradmin.Role {
// This is used only to track which Groups this role is directly a member of.
// This info is needed so when we delete a Role, we know which groups to remove
// it from.
- impliedRoles = new Vector();
+ impliedRoles = new Vector<>();
}
/**
@@ -65,6 +65,7 @@ public class Role implements org.osgi.service.useradmin.Role {
* @return The role's name.
*/
+ @Override
public String getName() {
useradmin.checkAlive();
return (name);
@@ -75,6 +76,7 @@ public class Role implements org.osgi.service.useradmin.Role {
*
* @return The role's type.
*/
+ @Override
public int getType() {
useradmin.checkAlive();
return (org.osgi.service.useradmin.Role.ROLE);
@@ -98,9 +100,10 @@ public class Role implements org.osgi.service.useradmin.Role {
*
* @return Dictionary containing the properties of this Role.
*/
- public Dictionary getProperties() {
+ @Override
+ public Dictionary<String, Object> getProperties() {
useradmin.checkAlive();
- return (properties);
+ return properties;
}
protected void addImpliedRole(Group group) {
@@ -117,9 +120,9 @@ public class Role implements org.osgi.service.useradmin.Role {
//we are being deleted so delete ourselves from all of the groups
protected synchronized void destroy() {
exists = false;
- Enumeration e = impliedRoles.elements();
+ Enumeration<Group> e = impliedRoles.elements();
while (e.hasMoreElements()) {
- Group group = (Group) e.nextElement();
+ Group group = e.nextElement();
if (group.exists) //so we don't try to remove any groups twice from storage
{
group.removeMember(this);
@@ -129,7 +132,7 @@ public class Role implements org.osgi.service.useradmin.Role {
impliedRoles = null;
}
- protected boolean isImpliedBy(Role role, Vector checkLoop) { //Roles do not imply themselves
+ protected boolean isImpliedBy(Role role, Vector<String> checkLoop) { //Roles do not imply themselves
//The user.anyone role is always implied
if (checkLoop.contains(name)) {
//we have a circular dependency
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/User.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/User.java
index ca8651445..76d36a7a4 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/User.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/User.java
@@ -71,9 +71,10 @@ public class User extends Role implements org.osgi.service.useradmin.User {
* @return Dictionary containing the credentials of this User.
*/
- public Dictionary getCredentials() {
+ @Override
+ public Dictionary<String, Object> getCredentials() {
useradmin.checkAlive();
- return (credentials);
+ return credentials;
}
/**
@@ -94,6 +95,7 @@ public class User extends Role implements org.osgi.service.useradmin.User {
* does not have the <tt>UserAdminPermission</tt> named after the credential
* key (or a prefix of it) with action <code>getCredential</code>.
*/
+ @Override
public boolean hasCredential(String key, Object value) {
useradmin.checkAlive();
Object checkValue = credentials.get(key);
@@ -127,13 +129,15 @@ public class User extends Role implements org.osgi.service.useradmin.User {
*
* @return The role's type.
*/
+ @Override
public int getType() {
useradmin.checkAlive();
return org.osgi.service.useradmin.Role.USER;
}
//A user always implies itself
- protected boolean isImpliedBy(Role role, Vector checkLoop) {
+ @Override
+ protected boolean isImpliedBy(Role role, Vector<String> checkLoop) {
if (checkLoop.contains(name)) {
//we have a circular dependency
return (false);
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdmin.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdmin.java
index 495835070..24e4c23af 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdmin.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdmin.java
@@ -46,8 +46,8 @@ import org.osgi.service.useradmin.UserAdminPermission;
public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
- protected Vector users;
- protected Vector roles;
+ protected Vector<Role> users;
+ protected Vector<Role> roles;
protected BundleContext context;
protected UserAdminEventProducer eventProducer;
protected boolean alive;
@@ -57,8 +57,8 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
protected LogTracker log;
protected UserAdmin(PreferencesService preferencesService, BundleContext context) throws Exception {
- roles = new Vector();
- users = new Vector();
+ roles = new Vector<>();
+ users = new Vector<>();
this.context = context;
log = new LogTracker(context, System.out);
@@ -100,6 +100,7 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
* @throws SecurityException If a security manager exists and the caller
* does not have the <tt>UserAdminPermission</tt> with name <tt>admin</tt>.
*/
+ @Override
public org.osgi.service.useradmin.Role createRole(String name, int type) {
checkAlive();
checkAdminPermission();
@@ -163,6 +164,7 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
* @throws SecurityException If a security manager exists and the caller
* does not have the <tt>UserAdminPermission</tt> with name <tt>admin</tt>.
*/
+ @Override
public boolean removeRole(String name) {
checkAlive();
checkAdminPermission();
@@ -197,15 +199,16 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
* @return The requested role, or <code>null</code> if this UserAdmin does
* not have a role with the given name.
*/
+ @Override
public org.osgi.service.useradmin.Role getRole(String name) {
checkAlive();
if (name == null) {
return (null);
}
synchronized (this) {
- Enumeration e = roles.elements();
+ Enumeration<Role> e = roles.elements();
while (e.hasMoreElements()) {
- Role role = (Role) e.nextElement();
+ Role role = e.nextElement();
if (role.getName().equals(name)) {
return (role);
}
@@ -228,9 +231,10 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
* <code>null</code> filter is specified.
*
*/
+ @Override
public org.osgi.service.useradmin.Role[] getRoles(String filterString) throws InvalidSyntaxException {
checkAlive();
- Vector returnedRoles;
+ Vector<Role> returnedRoles;
synchronized (this) {
if (filterString == null) {
returnedRoles = roles;
@@ -239,9 +243,9 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
//InvalidSyntaxException will be
//thrown even if there are no roles
//present.
- returnedRoles = new Vector();
+ returnedRoles = new Vector<>();
for (int i = 0; i < roles.size(); i++) {
- Role role = (Role) roles.elementAt(i);
+ Role role = roles.elementAt(i);
if (filter.match(role.getProperties())) {
returnedRoles.addElement(role);
}
@@ -270,6 +274,7 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
* @return A matching user, if <em>exactly</em> one is found. If zero or
* more than one matching users are found, <code>null</code> is returned.
*/
+ @Override
public org.osgi.service.useradmin.User getUser(String key, String value) {
checkAlive();
if (key == null) {
@@ -277,10 +282,10 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
}
User user;
User foundUser = null;
- Dictionary props;
+ Dictionary<String, Object> props;
String keyValue;
synchronized (this) {
- Enumeration e = users.elements();
+ Enumeration<Role> e = users.elements();
while (e.hasMoreElements()) {
user = (User) e.nextElement();
props = user.getProperties();
@@ -306,6 +311,7 @@ public class UserAdmin implements org.osgi.service.useradmin.UserAdmin {
*
* @return the Authorization object for the specified user.
*/
+ @Override
public org.osgi.service.useradmin.Authorization getAuthorization(org.osgi.service.useradmin.User user) {
checkAlive();
return (new Authorization((User) user, this));
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventAdapter.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventAdapter.java
index 894b0e37e..d7a6240db 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventAdapter.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventAdapter.java
@@ -19,8 +19,9 @@ import java.util.Hashtable;
import org.osgi.framework.*;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
-import org.osgi.service.useradmin.*;
import org.osgi.service.useradmin.Role;
+import org.osgi.service.useradmin.UserAdminEvent;
+import org.osgi.service.useradmin.UserAdminListener;
import org.osgi.util.tracker.ServiceTracker;
public class UserAdminEventAdapter implements UserAdminListener {
@@ -51,10 +52,10 @@ public class UserAdminEventAdapter implements UserAdminListener {
}
public void start() throws Exception {
- Hashtable props = new Hashtable(3);
- userAdminRegistration = context.registerService(UserAdminListener.class.getName(), this, props);
+ Hashtable<String, ?> props = new Hashtable<>(3);
+ userAdminRegistration = context.registerService(UserAdminListener.class, this, props);
- eventAdminTracker = new ServiceTracker(context, EventAdmin.class.getName(), null);
+ eventAdminTracker = new ServiceTracker<>(context, EventAdmin.class, null);
eventAdminTracker.open();
}
@@ -71,6 +72,7 @@ public class UserAdminEventAdapter implements UserAdminListener {
this.context = null;
}
+ @Override
public void roleChanged(UserAdminEvent event) {
ServiceTracker currentTracker = eventAdminTracker;
EventAdmin eventAdmin = currentTracker == null ? null : ((EventAdmin) currentTracker.getService());
@@ -90,7 +92,7 @@ public class UserAdminEventAdapter implements UserAdminListener {
return;
}
String topic = TOPIC + TOPIC_SEPARATOR + typename;
- Hashtable properties = new Hashtable();
+ Hashtable<String, Object> properties = new Hashtable<>();
ServiceReference ref = event.getServiceReference();
if (ref == null) {
throw new RuntimeException("UserAdminEvent's getServiceReference() returns null."); //$NON-NLS-1$
@@ -103,15 +105,15 @@ public class UserAdminEventAdapter implements UserAdminListener {
if (role != null) {
properties.put(ROLE, role);
properties.put(ROLE_NAME, role.getName());
- properties.put(ROLE_TYPE, new Integer(role.getType()));
+ properties.put(ROLE_TYPE, Integer.valueOf(role.getType()));
}
properties.put(EVENT, event);
- Event convertedEvent = new Event(topic, (Dictionary) properties);
+ Event convertedEvent = new Event(topic, (Dictionary<String, ?>) properties);
eventAdmin.postEvent(convertedEvent);
}
}
- public void putServiceReferenceProperties(Hashtable properties, ServiceReference ref) {
+ public void putServiceReferenceProperties(Hashtable<String, Object> properties, ServiceReference ref) {
properties.put(SERVICE, ref);
properties.put(SERVICE_ID, ref.getProperty(org.osgi.framework.Constants.SERVICE_ID));
Object o = ref.getProperty(org.osgi.framework.Constants.SERVICE_PID);
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventProducer.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventProducer.java
index 8fc74b0b0..40b8f0307 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventProducer.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminEventProducer.java
@@ -32,7 +32,7 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
static protected final String userAdminListenerClass = "org.osgi.service.useradmin.UserAdminListener"; //$NON-NLS-1$
protected LogTracker log;
/** List of UserAdminListeners */
- protected EventListeners listeners;
+ protected CopyOnWriteIdentityMap listeners;
/** EventManager for event delivery. */
protected EventManager eventManager;
@@ -43,14 +43,15 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
ThreadGroup eventGroup = new ThreadGroup("Equinox User Admin"); //$NON-NLS-1$
eventGroup.setDaemon(true);
eventManager = new EventManager("UserAdmin Event Dispatcher", eventGroup); //$NON-NLS-1$
- listeners = new EventListeners();
+ listeners = new CopyOnWriteIdentityMap<>();
open();
}
+ @Override
public void close() {
super.close();
- listeners.removeAllListeners();
+ listeners.clear();
eventManager.close();
userAdmin = null;
}
@@ -63,7 +64,7 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
ListenerQueue queue = new ListenerQueue(eventManager);
/* add set of UserAdminListeners to queue */
- queue.queueListeners(listeners, this);
+ queue.queueListeners(listeners.entrySet(), this);
/* dispatch event to set of listeners */
queue.dispatchEventAsynchronous(0, event);
@@ -86,10 +87,11 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
* <tt>ServiceReference</tt> object or <tt>null</tt> if the <tt>ServiceReference</tt> object should not
* be tracked.
*/
+ @Override
public Object addingService(ServiceReference reference) {
Object service = super.addingService(reference);
- listeners.addListener(service, service);
+ listeners.put(service, service);
return service;
}
@@ -103,8 +105,9 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
* @param reference Reference to service that has been removed.
* @param service The service object for the removed service.
*/
+ @Override
public void removedService(ServiceReference reference, Object service) {
- listeners.removeListener(service);
+ listeners.remove(service);
super.removedService(reference, service);
}
@@ -129,6 +132,7 @@ public class UserAdminEventProducer extends ServiceTracker implements EventDispa
* as what event object to pass) so that this method
* can complete the delivery of the event to the listener.
*/
+ @Override
public void dispatchEvent(Object listener, Object listenerObject, int eventAction, Object eventObject) {
if (userAdmin == null) {
return;
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminHashtable.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminHashtable.java
index dfc6d50f9..f8c819c7a 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminHashtable.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminHashtable.java
@@ -23,7 +23,7 @@ import org.osgi.service.useradmin.UserAdminEvent;
* and User credentials.
*/
-public class UserAdminHashtable extends Hashtable {
+public class UserAdminHashtable extends Hashtable<String, Object> {
/**
*
@@ -72,17 +72,12 @@ public class UserAdminHashtable extends Hashtable {
return retVal;
}
- public Object put(Object key, Object value) {
- if (!(key instanceof String)) {
- throw new IllegalArgumentException(UserAdminMsg.INVALID_KEY_EXCEPTION);
- }
-
+ @Override
+ public Object put(String name, Object value) {
if (!((value instanceof String) || (value instanceof byte[]))) {
throw new IllegalArgumentException(UserAdminMsg.INVALID_VALUE_EXCEPTION);
}
- String name = (String) key;
-
switch (propertyType) {
case PROPERTIES :
userAdmin.checkChangePropertyPermission(name);
@@ -95,6 +90,7 @@ public class UserAdminHashtable extends Hashtable {
return put(name, value, true);
}
+ @Override
public synchronized Object remove(Object key) {
if (!(key instanceof String)) {
throw new IllegalArgumentException(UserAdminMsg.INVALID_KEY_EXCEPTION);
@@ -126,11 +122,12 @@ public class UserAdminHashtable extends Hashtable {
return super.remove(name);
}
+ @Override
public synchronized void clear() {
- Enumeration e = keys();
+ Enumeration<String> e = keys();
while (e.hasMoreElements()) {
- String name = (String) e.nextElement();
+ String name = e.nextElement();
switch (propertyType) {
case PROPERTIES :
@@ -164,6 +161,7 @@ public class UserAdminHashtable extends Hashtable {
super.clear();
}
+ @Override
public Object get(Object key) {
if (!(key instanceof String)) {
throw new IllegalArgumentException(UserAdminMsg.INVALID_KEY_EXCEPTION);
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminStore.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminStore.java
index f660734fe..01a59dc38 100644
--- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminStore.java
+++ b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/internal/useradmin/UserAdminStore.java
@@ -51,13 +51,10 @@ public class UserAdminStore {
protected void init() throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
-
- public Object run() throws BackingStoreException {
- rootNode = preferencesService.getUserPreferences(persistenceUserName);
- loadRoles();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ rootNode = preferencesService.getUserPreferences(persistenceUserName);
+ loadRoles();
+ return (null);
});
} catch (PrivilegedActionException ex) {
@@ -67,13 +64,11 @@ public class UserAdminStore {
protected void addRole(final org.osgi.service.useradmin.Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences node = rootNode.node(role.getName());
- node.putInt(typeString, role.getType());
- node.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences node = rootNode.node(role.getName());
+ node.putInt(typeString, role.getType());
+ node.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -83,13 +78,11 @@ public class UserAdminStore {
protected void removeRole(final org.osgi.service.useradmin.Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences node = rootNode.node(role.getName());
- node.removeNode();
- rootNode.node("").flush(); //$NON-NLS-1$
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences node = rootNode.node(role.getName());
+ node.removeNode();
+ rootNode.node("").flush(); //$NON-NLS-1$
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -99,15 +92,13 @@ public class UserAdminStore {
protected void clearProperties(final org.osgi.service.useradmin.Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
- propertyNode.clear();
- if (propertyNode.nodeExists(typesNode))
- propertyNode.node(typesNode).removeNode();
- propertyNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
+ propertyNode.clear();
+ if (propertyNode.nodeExists(typesNode))
+ propertyNode.node(typesNode).removeNode();
+ propertyNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -117,21 +108,19 @@ public class UserAdminStore {
protected void addProperty(final org.osgi.service.useradmin.Role role, final String key, final Object value) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
- Preferences propertyTypesNode = propertyNode.node(typesNode);
- if (value instanceof String) {
- propertyNode.put(key, (String) value);
- propertyTypesNode.putBoolean(key, true);
- } else //must be a byte array, then
- {
- propertyNode.putByteArray(key, (byte[]) value);
- propertyTypesNode.putBoolean(key, false);
- }
- propertyNode.flush();
- return (null);
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
+ Preferences propertyTypesNode = propertyNode.node(typesNode);
+ if (value instanceof String) {
+ propertyNode.put(key, (String) value);
+ propertyTypesNode.putBoolean(key, true);
+ } else //must be a byte array, then
+ {
+ propertyNode.putByteArray(key, (byte[]) value);
+ propertyTypesNode.putBoolean(key, false);
}
+ propertyNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -141,15 +130,13 @@ public class UserAdminStore {
protected void removeProperty(final org.osgi.service.useradmin.Role role, final String key) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
- propertyNode.remove(key);
- if (propertyNode.nodeExists(typesNode))
- propertyNode.node(typesNode).remove(key);
- propertyNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences propertyNode = rootNode.node(role.getName() + "/" + propertiesNode); //$NON-NLS-1$
+ propertyNode.remove(key);
+ if (propertyNode.nodeExists(typesNode))
+ propertyNode.node(typesNode).remove(key);
+ propertyNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -159,15 +146,13 @@ public class UserAdminStore {
protected void clearCredentials(final org.osgi.service.useradmin.Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
- credentialNode.clear();
- if (credentialNode.nodeExists(typesNode))
- credentialNode.node(typesNode).removeNode();
- credentialNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
+ credentialNode.clear();
+ if (credentialNode.nodeExists(typesNode))
+ credentialNode.node(typesNode).removeNode();
+ credentialNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -178,21 +163,19 @@ public class UserAdminStore {
protected void addCredential(final org.osgi.service.useradmin.Role role, final String key, final Object value) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
- Preferences credentialTypesNode = credentialNode.node(typesNode);
- if (value instanceof String) {
- credentialNode.put(key, (String) value);
- credentialTypesNode.putBoolean(key, true);
- } else //assume it is a byte array
- {
- credentialNode.putByteArray(key, (byte[]) value);
- credentialTypesNode.putBoolean(key, false);
- }
- credentialNode.flush();
- return (null);
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
+ Preferences credentialTypesNode = credentialNode.node(typesNode);
+ if (value instanceof String) {
+ credentialNode.put(key, (String) value);
+ credentialTypesNode.putBoolean(key, true);
+ } else //assume it is a byte array
+ {
+ credentialNode.putByteArray(key, (byte[]) value);
+ credentialTypesNode.putBoolean(key, false);
}
+ credentialNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, NLS.bind(UserAdminMsg.Backing_Store_Write_Exception, new Object[] {NLS.bind(UserAdminMsg.adding_Credential_to__15, role.getName())}), ex);
@@ -203,15 +186,13 @@ public class UserAdminStore {
protected void removeCredential(final org.osgi.service.useradmin.Role role, final String key) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
- credentialNode.remove(key);
- if (credentialNode.nodeExists(typesNode))
- credentialNode.node(typesNode).remove(key);
- credentialNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences credentialNode = rootNode.node(role.getName() + "/" + credentialsNode); //$NON-NLS-1$
+ credentialNode.remove(key);
+ if (credentialNode.nodeExists(typesNode))
+ credentialNode.node(typesNode).remove(key);
+ credentialNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, UserAdminMsg.Backing_Store_Write_Exception, ex);
@@ -221,13 +202,11 @@ public class UserAdminStore {
protected void addMember(final Group group, final Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
- memberNode.put(role.getName(), basicString);
- memberNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
+ memberNode.put(role.getName(), basicString);
+ memberNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, NLS.bind(UserAdminMsg.Backing_Store_Write_Exception, new Object[] {NLS.bind(UserAdminMsg.adding_member__18, role.getName(), group.getName())}), ex);
@@ -237,13 +216,11 @@ public class UserAdminStore {
protected void addRequiredMember(final Group group, final Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
- memberNode.put(role.getName(), requiredString);
- memberNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
+ memberNode.put(role.getName(), requiredString);
+ memberNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, NLS.bind(UserAdminMsg.Backing_Store_Write_Exception, new Object[] {NLS.bind(UserAdminMsg.adding_required_member__21, role.getName(), group.getName())}), ex);
@@ -253,13 +230,11 @@ public class UserAdminStore {
protected void removeMember(final Group group, final Role role) throws BackingStoreException {
try {
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws BackingStoreException {
- Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
- memberNode.remove(role.getName());
- memberNode.flush();
- return (null);
- }
+ AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
+ Preferences memberNode = rootNode.node(group.getName() + "/" + membersNode); //$NON-NLS-1$
+ memberNode.remove(role.getName());
+ memberNode.flush();
+ return (null);
});
} catch (PrivilegedActionException ex) {
log.log(LogService.LOG_ERROR, NLS.bind(UserAdminMsg.Backing_Store_Write_Exception, new Object[] {NLS.bind(UserAdminMsg.removing_member__24, role.getName(), group.getName())}), ex);

Back to the top