diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox')
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); |