Commit fe5c66ce authored by Christian Schudt's avatar Christian Schudt

OF-343 Add @Override annotations

There were still ~1500 missing annotations! This time fixed with IntelliJ ;-)
parent 0412ffc1
...@@ -66,11 +66,13 @@ public class MINAStatCollector { ...@@ -66,11 +66,13 @@ public class MINAStatCollector {
private final IoServiceListener serviceListener = new IoServiceListener() private final IoServiceListener serviceListener = new IoServiceListener()
{ {
@Override
public void sessionCreated( IoSession session ) public void sessionCreated( IoSession session )
{ {
addSession( session ); addSession( session );
} }
@Override
public void sessionDestroyed( IoSession session ) public void sessionDestroyed( IoSession session )
{ {
removeSession( session ); removeSession( session );
......
...@@ -66,6 +66,7 @@ public class AdminConsole { ...@@ -66,6 +66,7 @@ public class AdminConsole {
// then rebuild the model to add the Clearspace tab // then rebuild the model to add the Clearspace tab
// This is to add the tab after Openfire setup // This is to add the tab after Openfire setup
PropertyEventListener propListener = new PropertyEventListener() { PropertyEventListener propListener = new PropertyEventListener() {
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
if ("provider.auth.className".equals(property)) { if ("provider.auth.className".equals(property)) {
String value = (String) params.get("value"); String value = (String) params.get("value");
...@@ -75,12 +76,15 @@ public class AdminConsole { ...@@ -75,12 +76,15 @@ public class AdminConsole {
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
......
...@@ -113,6 +113,7 @@ public class AuthCheckFilter implements Filter { ...@@ -113,6 +113,7 @@ public class AuthCheckFilter implements Filter {
return false; return false;
} }
@Override
public void init(FilterConfig config) throws ServletException { public void init(FilterConfig config) throws ServletException {
context = config.getServletContext(); context = config.getServletContext();
defaultLoginPage = config.getInitParameter("defaultLoginPage"); defaultLoginPage = config.getInitParameter("defaultLoginPage");
...@@ -126,6 +127,7 @@ public class AuthCheckFilter implements Filter { ...@@ -126,6 +127,7 @@ public class AuthCheckFilter implements Filter {
} }
} }
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException throws IOException, ServletException
{ {
...@@ -160,6 +162,7 @@ public class AuthCheckFilter implements Filter { ...@@ -160,6 +162,7 @@ public class AuthCheckFilter implements Filter {
chain.doFilter(req, res); chain.doFilter(req, res);
} }
@Override
public void destroy() { public void destroy() {
} }
......
...@@ -58,9 +58,11 @@ public class PluginFilter implements Filter { ...@@ -58,9 +58,11 @@ public class PluginFilter implements Filter {
pluginFilters.remove(filter); pluginFilters.remove(filter);
} }
@Override
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) throws ServletException {
} }
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException FilterChain filterChain) throws IOException, ServletException
{ {
...@@ -79,6 +81,7 @@ public class PluginFilter implements Filter { ...@@ -79,6 +81,7 @@ public class PluginFilter implements Filter {
} }
} }
@Override
public void destroy() { public void destroy() {
// If the destroy method is being called, the Openfire instance is being shutdown. // If the destroy method is being called, the Openfire instance is being shutdown.
// Therefore, clear out the list of plugin filters. // Therefore, clear out the list of plugin filters.
......
...@@ -76,10 +76,12 @@ public class DefaultConnectionProvider implements ConnectionProvider { ...@@ -76,10 +76,12 @@ public class DefaultConnectionProvider implements ConnectionProvider {
System.setProperty("org.apache.commons.logging.LogFactory", "org.jivesoftware.util.log.util.CommonsLogFactory"); System.setProperty("org.apache.commons.logging.LogFactory", "org.jivesoftware.util.log.util.CommonsLogFactory");
} }
@Override
public boolean isPooled() { public boolean isPooled() {
return true; return true;
} }
@Override
public Connection getConnection() throws SQLException { public Connection getConnection() throws SQLException {
try { try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver"); Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
...@@ -90,6 +92,7 @@ public class DefaultConnectionProvider implements ConnectionProvider { ...@@ -90,6 +92,7 @@ public class DefaultConnectionProvider implements ConnectionProvider {
} }
} }
@Override
public void start() { public void start() {
proxoolURL = "proxool.openfire:"+getDriver()+":"+getServerURL(); proxoolURL = "proxool.openfire:"+getDriver()+":"+getServerURL();
settings = new Properties(); settings = new Properties();
...@@ -104,9 +107,11 @@ public class DefaultConnectionProvider implements ConnectionProvider { ...@@ -104,9 +107,11 @@ public class DefaultConnectionProvider implements ConnectionProvider {
settings.setProperty("password", (getPassword() != null ? getPassword() : "")); settings.setProperty("password", (getPassword() != null ? getPassword() : ""));
} }
@Override
public void restart() { public void restart() {
} }
@Override
public void destroy() { public void destroy() {
settings = null; settings = null;
} }
......
...@@ -53,10 +53,12 @@ public class EmbeddedConnectionProvider implements ConnectionProvider { ...@@ -53,10 +53,12 @@ public class EmbeddedConnectionProvider implements ConnectionProvider {
System.setProperty("org.apache.commons.logging.LogFactory", "org.jivesoftware.util.log.util.CommonsLogFactory"); System.setProperty("org.apache.commons.logging.LogFactory", "org.jivesoftware.util.log.util.CommonsLogFactory");
} }
@Override
public boolean isPooled() { public boolean isPooled() {
return true; return true;
} }
@Override
public Connection getConnection() throws SQLException { public Connection getConnection() throws SQLException {
try { try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver"); Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
...@@ -67,6 +69,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider { ...@@ -67,6 +69,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider {
} }
} }
@Override
public void start() { public void start() {
File databaseDir = new File(JiveGlobals.getHomeDirectory(), File.separator + "embedded-db"); File databaseDir = new File(JiveGlobals.getHomeDirectory(), File.separator + "embedded-db");
// If the database doesn't exist, create it. // If the database doesn't exist, create it.
...@@ -89,6 +92,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider { ...@@ -89,6 +92,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider {
settings.setProperty("password", ""); settings.setProperty("password", "");
} }
@Override
public void restart() { public void restart() {
// Kill off pool. // Kill off pool.
destroy(); destroy();
...@@ -96,6 +100,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider { ...@@ -96,6 +100,7 @@ public class EmbeddedConnectionProvider implements ConnectionProvider {
start(); start();
} }
@Override
public void destroy() { public void destroy() {
// Shutdown the database. // Shutdown the database.
Connection con = null; Connection con = null;
......
...@@ -79,10 +79,12 @@ public class JNDIDataSourceProvider implements ConnectionProvider { ...@@ -79,10 +79,12 @@ public class JNDIDataSourceProvider implements ConnectionProvider {
dataSourceName = JiveGlobals.getXMLProperty("database.JNDIProvider.name"); dataSourceName = JiveGlobals.getXMLProperty("database.JNDIProvider.name");
} }
@Override
public boolean isPooled() { public boolean isPooled() {
return true; return true;
} }
@Override
public void start() { public void start() {
if (dataSourceName == null || dataSourceName.equals("")) { if (dataSourceName == null || dataSourceName.equals("")) {
Log.error("No name specified for DataSource. JNDI lookup will fail", new Throwable()); Log.error("No name specified for DataSource. JNDI lookup will fail", new Throwable());
...@@ -110,15 +112,18 @@ public class JNDIDataSourceProvider implements ConnectionProvider { ...@@ -110,15 +112,18 @@ public class JNDIDataSourceProvider implements ConnectionProvider {
} }
} }
@Override
public void restart() { public void restart() {
destroy(); destroy();
start(); start();
} }
@Override
public void destroy() { public void destroy() {
} }
@Override
public Connection getConnection() throws SQLException { public Connection getConnection() throws SQLException {
if (dataSource == null) { if (dataSource == null) {
throw new SQLException("DataSource has not been initialized."); throw new SQLException("DataSource has not been initialized.");
......
...@@ -89,6 +89,7 @@ public class Channel<T extends Packet> { ...@@ -89,6 +89,7 @@ public class Channel<T extends Packet> {
*/ */
public void add(final T packet) { public void add(final T packet) {
Runnable r = new Runnable() { Runnable r = new Runnable() {
@Override
public void run() { public void run() {
try { try {
channelHandler.process(packet); channelHandler.process(packet);
......
...@@ -53,6 +53,7 @@ public class FlashCrossDomainHandler extends BasicModule { ...@@ -53,6 +53,7 @@ public class FlashCrossDomainHandler extends BasicModule {
@Override @Override
public void start() { public void start() {
Thread thread = new Thread(new Runnable() { Thread thread = new Thread(new Runnable() {
@Override
public void run() { public void run() {
try { try {
startServer(); startServer();
......
...@@ -111,6 +111,7 @@ public class JMXManager { ...@@ -111,6 +111,7 @@ public class JMXManager {
Map<String, Object> env = new HashMap<String, Object>(); Map<String, Object> env = new HashMap<String, Object>();
if (JMXManager.isSecure()) { if (JMXManager.isSecure()) {
env.put("jmx.remote.authenticator", new JMXAuthenticator() { env.put("jmx.remote.authenticator", new JMXAuthenticator() {
@Override
public Subject authenticate(Object credentials) { public Subject authenticate(Object credentials) {
if (!(credentials instanceof String[])) { if (!(credentials instanceof String[])) {
if (credentials == null) { if (credentials == null) {
......
...@@ -286,6 +286,7 @@ public class MulticastRouter extends BasicModule implements ServerFeaturesProvid ...@@ -286,6 +286,7 @@ public class MulticastRouter extends BasicModule implements ServerFeaturesProvid
} }
} }
@Override
public void receivedAnswer(IQ packet) { public void receivedAnswer(IQ packet) {
// Look for the root node being discovered // Look for the root node being discovered
String domain = packet.getFrom().toString(); String domain = packet.getFrom().toString();
...@@ -392,10 +393,12 @@ public class MulticastRouter extends BasicModule implements ServerFeaturesProvid ...@@ -392,10 +393,12 @@ public class MulticastRouter extends BasicModule implements ServerFeaturesProvid
} }
} }
@Override
public void answerTimeout(String packetId) { public void answerTimeout(String packetId) {
Log.warn("An answer to a previously sent IQ stanza was never received. Packet id: " + packetId); Log.warn("An answer to a previously sent IQ stanza was never received. Packet id: " + packetId);
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton(NAMESPACE).iterator(); return Collections.singleton(NAMESPACE).iterator();
} }
......
...@@ -436,15 +436,18 @@ public class OfflineMessageStore extends BasicModule implements UserEventListene ...@@ -436,15 +436,18 @@ public class OfflineMessageStore extends BasicModule implements UserEventListene
return size; return size;
} }
@Override
public void userCreated(User user, Map params) { public void userCreated(User user, Map params) {
//Do nothing //Do nothing
} }
@Override
public void userDeleting(User user, Map params) { public void userDeleting(User user, Map params) {
// Delete all offline messages of the user // Delete all offline messages of the user
deleteMessages(user.getUsername()); deleteMessages(user.getUsername());
} }
@Override
public void userModified(User user, Map params) { public void userModified(User user, Map params) {
//Do nothing //Do nothing
} }
......
...@@ -196,10 +196,12 @@ public class PrivateStorage extends BasicModule implements UserEventListener { ...@@ -196,10 +196,12 @@ public class PrivateStorage extends BasicModule implements UserEventListener {
return data; return data;
} }
@Override
public void userCreated(User user, Map params) { public void userCreated(User user, Map params) {
//Do nothing //Do nothing
} }
@Override
public void userDeleting(User user, Map params) { public void userDeleting(User user, Map params) {
// Delete all private properties of the user // Delete all private properties of the user
Connection con = null; Connection con = null;
...@@ -218,6 +220,7 @@ public class PrivateStorage extends BasicModule implements UserEventListener { ...@@ -218,6 +220,7 @@ public class PrivateStorage extends BasicModule implements UserEventListener {
} }
} }
@Override
public void userModified(User user, Map params) { public void userModified(User user, Map params) {
//Do nothing //Do nothing
} }
......
...@@ -1232,6 +1232,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1232,6 +1232,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
* *
* @param handback The session that just closed * @param handback The session that just closed
*/ */
@Override
public void onConnectionClose(Object handback) { public void onConnectionClose(Object handback) {
try { try {
LocalClientSession session = (LocalClientSession) handback; LocalClientSession session = (LocalClientSession) handback;
...@@ -1285,6 +1286,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1285,6 +1286,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
* *
* @param handback The session that just closed * @param handback The session that just closed
*/ */
@Override
public void onConnectionClose(Object handback) { public void onConnectionClose(Object handback) {
LocalComponentSession session = (LocalComponentSession)handback; LocalComponentSession session = (LocalComponentSession)handback;
try { try {
...@@ -1317,6 +1319,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1317,6 +1319,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
* *
* @param handback The session that just closed * @param handback The session that just closed
*/ */
@Override
public void onConnectionClose(Object handback) { public void onConnectionClose(Object handback) {
IncomingServerSession session = (IncomingServerSession)handback; IncomingServerSession session = (IncomingServerSession)handback;
// Remove all the hostnames that were registered for this server session // Remove all the hostnames that were registered for this server session
...@@ -1332,6 +1335,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1332,6 +1335,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
* *
* @param handback The session that just closed * @param handback The session that just closed
*/ */
@Override
public void onConnectionClose(Object handback) { public void onConnectionClose(Object handback) {
OutgoingServerSession session = (OutgoingServerSession)handback; OutgoingServerSession session = (OutgoingServerSession)handback;
// Remove all the hostnames that were registered for this server session // Remove all the hostnames that were registered for this server session
...@@ -1348,6 +1352,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1348,6 +1352,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
* *
* @param handback The session that just closed * @param handback The session that just closed
*/ */
@Override
public void onConnectionClose(Object handback) { public void onConnectionClose(Object handback) {
ConnectionMultiplexerSession session = (ConnectionMultiplexerSession)handback; ConnectionMultiplexerSession session = (ConnectionMultiplexerSession)handback;
// Remove all the hostnames that were registered for this server session // Remove all the hostnames that were registered for this server session
...@@ -1557,6 +1562,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1557,6 +1562,7 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
return sessionInfoCache; return sessionInfoCache;
} }
@Override
public void joinedCluster() { public void joinedCluster() {
restoreCacheContent(); restoreCacheContent();
// Track information about local sessions and share it with other cluster nodes // Track information about local sessions and share it with other cluster nodes
...@@ -1565,10 +1571,12 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1565,10 +1571,12 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
} }
} }
@Override
public void joinedCluster(byte[] nodeID) { public void joinedCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void leftCluster() { public void leftCluster() {
if (!XMPPServer.getInstance().isShuttingDown()) { if (!XMPPServer.getInstance().isShuttingDown()) {
// Add local sessions to caches // Add local sessions to caches
...@@ -1576,10 +1584,12 @@ public class SessionManager extends BasicModule implements ClusterEventListener/ ...@@ -1576,10 +1584,12 @@ public class SessionManager extends BasicModule implements ClusterEventListener/
} }
} }
@Override
public void leftCluster(byte[] nodeID) { public void leftCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void markedAsSeniorClusterMember() { public void markedAsSeniorClusterMember() {
// Do nothing // Do nothing
} }
......
...@@ -87,6 +87,7 @@ public class SessionPacketRouter implements PacketRouter { ...@@ -87,6 +87,7 @@ public class SessionPacketRouter implements PacketRouter {
} }
} }
@Override
public void route(Packet packet) { public void route(Packet packet) {
// Security: Don't allow users to send packets on behalf of other users // Security: Don't allow users to send packets on behalf of other users
packet.setFrom(session.getAddress()); packet.setFrom(session.getAddress());
...@@ -101,18 +102,21 @@ public class SessionPacketRouter implements PacketRouter { ...@@ -101,18 +102,21 @@ public class SessionPacketRouter implements PacketRouter {
} }
} }
@Override
public void route(IQ packet) { public void route(IQ packet) {
packet.setFrom(session.getAddress()); packet.setFrom(session.getAddress());
router.route(packet); router.route(packet);
session.incrementClientPacketCount(); session.incrementClientPacketCount();
} }
@Override
public void route(Message packet) { public void route(Message packet) {
packet.setFrom(session.getAddress()); packet.setFrom(session.getAddress());
router.route(packet); router.route(packet);
session.incrementClientPacketCount(); session.incrementClientPacketCount();
} }
@Override
public void route(Presence packet) { public void route(Presence packet) {
packet.setFrom(session.getAddress()); packet.setFrom(session.getAddress());
router.route(packet); router.route(packet);
......
...@@ -216,6 +216,7 @@ public class SessionResultFilter { ...@@ -216,6 +216,7 @@ public class SessionResultFilter {
*/ */
private class SessionComparator implements Comparator<ClientSession> { private class SessionComparator implements Comparator<ClientSession> {
@Override
public int compare(ClientSession lhs, ClientSession rhs) { public int compare(ClientSession lhs, ClientSession rhs) {
int comparison; int comparison;
switch (sortField) { switch (sortField) {
......
...@@ -33,6 +33,7 @@ public class XMPPContextListener implements ServletContextListener { ...@@ -33,6 +33,7 @@ public class XMPPContextListener implements ServletContextListener {
protected String XMPP_KEY = "XMPP_SERVER"; protected String XMPP_KEY = "XMPP_SERVER";
@Override
public void contextInitialized(ServletContextEvent event) { public void contextInitialized(ServletContextEvent event) {
if (XMPPServer.getInstance() != null) { if (XMPPServer.getInstance() != null) {
// Running in standalone mode so do nothing // Running in standalone mode so do nothing
...@@ -42,6 +43,7 @@ public class XMPPContextListener implements ServletContextListener { ...@@ -42,6 +43,7 @@ public class XMPPContextListener implements ServletContextListener {
event.getServletContext().setAttribute(XMPP_KEY, server); event.getServletContext().setAttribute(XMPP_KEY, server);
} }
@Override
public void contextDestroyed(ServletContextEvent event) { public void contextDestroyed(ServletContextEvent event) {
XMPPServer server = (XMPPServer) event.getServletContext().getAttribute(XMPP_KEY); XMPPServer server = (XMPPServer) event.getServletContext().getAttribute(XMPP_KEY);
if (null != server) { if (null != server) {
......
...@@ -805,6 +805,7 @@ public class XMPPServer { ...@@ -805,6 +805,7 @@ public class XMPPServer {
*/ */
private class Terminator extends TimerTask { private class Terminator extends TimerTask {
private BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); private BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
@Override
public void run() { public void run() {
try { try {
if (stdin.ready()) { if (stdin.ready()) {
......
...@@ -87,20 +87,24 @@ public class AdminManager { ...@@ -87,20 +87,24 @@ public class AdminManager {
// Detect when a new admin provider class is set // Detect when a new admin provider class is set
PropertyEventListener propListener = new PropertyEventListener() { PropertyEventListener propListener = new PropertyEventListener() {
@Override
public void propertySet(String property, Map<String, Object> params) { public void propertySet(String property, Map<String, Object> params) {
if ("provider.admin.className".equals(property)) { if ("provider.admin.className".equals(property)) {
initProvider(); initProvider();
} }
} }
@Override
public void propertyDeleted(String property, Map<String, Object> params) { public void propertyDeleted(String property, Map<String, Object> params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertySet(String property, Map<String, Object> params) { public void xmlPropertySet(String property, Map<String, Object> params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertyDeleted(String property, Map<String, Object> params) { public void xmlPropertyDeleted(String property, Map<String, Object> params) {
//Ignore //Ignore
} }
......
...@@ -53,6 +53,7 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -53,6 +53,7 @@ public class DefaultAdminProvider implements AdminProvider {
// Detect when the list of admin users is changed. // Detect when the list of admin users is changed.
PropertyEventListener propListener = new PropertyEventListener() { PropertyEventListener propListener = new PropertyEventListener() {
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
Log.debug("DefaultAdminProvider: Property was set: "+property); Log.debug("DefaultAdminProvider: Property was set: "+property);
if ("admin.authorizedJIDs".equals(property)) { if ("admin.authorizedJIDs".equals(property)) {
...@@ -60,6 +61,7 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -60,6 +61,7 @@ public class DefaultAdminProvider implements AdminProvider {
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
Log.debug("DefaultAdminProvider: Property was deleted: "+property); Log.debug("DefaultAdminProvider: Property was deleted: "+property);
if ("admin.authorizedJIDs".equals(property)) { if ("admin.authorizedJIDs".equals(property)) {
...@@ -67,11 +69,13 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -67,11 +69,13 @@ public class DefaultAdminProvider implements AdminProvider {
} }
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
Log.debug("DefaultAdminProvider: XML Property was set: "+property); Log.debug("DefaultAdminProvider: XML Property was set: "+property);
//Ignore //Ignore
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
Log.debug("DefaultAdminProvider: XML Property was deleted: "+property); Log.debug("DefaultAdminProvider: XML Property was deleted: "+property);
//Ignore //Ignore
...@@ -86,6 +90,7 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -86,6 +90,7 @@ public class DefaultAdminProvider implements AdminProvider {
* <tt>admin.authorizedJIDs</tt> * <tt>admin.authorizedJIDs</tt>
* @see org.jivesoftware.openfire.admin.AdminProvider#getAdmins() * @see org.jivesoftware.openfire.admin.AdminProvider#getAdmins()
*/ */
@Override
public List<JID> getAdmins() { public List<JID> getAdmins() {
List<JID> adminList = new ArrayList<JID>(); List<JID> adminList = new ArrayList<JID>();
...@@ -116,6 +121,7 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -116,6 +121,7 @@ public class DefaultAdminProvider implements AdminProvider {
* <tt>admin.authorizedJIDs</tt> * <tt>admin.authorizedJIDs</tt>
* @see org.jivesoftware.openfire.admin.AdminProvider#setAdmins(java.util.List) * @see org.jivesoftware.openfire.admin.AdminProvider#setAdmins(java.util.List)
*/ */
@Override
public void setAdmins(List<JID> admins) { public void setAdmins(List<JID> admins) {
Collection<String> adminList = new ArrayList<String>(); Collection<String> adminList = new ArrayList<String>();
for (JID admin : admins) { for (JID admin : admins) {
...@@ -128,6 +134,7 @@ public class DefaultAdminProvider implements AdminProvider { ...@@ -128,6 +134,7 @@ public class DefaultAdminProvider implements AdminProvider {
* The default provider is not read only * The default provider is not read only
* @see org.jivesoftware.openfire.admin.AdminProvider#isReadOnly() * @see org.jivesoftware.openfire.admin.AdminProvider#isReadOnly()
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return false; return false;
} }
......
...@@ -38,6 +38,7 @@ public class AuditStreamIDFactory implements StreamIDFactory { ...@@ -38,6 +38,7 @@ public class AuditStreamIDFactory implements StreamIDFactory {
public AuditStreamIDFactory() { public AuditStreamIDFactory() {
} }
@Override
public StreamID createStreamID() { public StreamID createStreamID() {
return factory.createStreamID(); return factory.createStreamID();
} }
......
...@@ -74,10 +74,12 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -74,10 +74,12 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
super("Audit Manager"); super("Audit Manager");
} }
@Override
public boolean isEnabled() { public boolean isEnabled() {
return enabled; return enabled;
} }
@Override
public void setEnabled(boolean enabled) { public void setEnabled(boolean enabled) {
this.enabled = enabled; this.enabled = enabled;
JiveGlobals.setProperty("xmpp.audit.active", enabled ? "true" : "false"); JiveGlobals.setProperty("xmpp.audit.active", enabled ? "true" : "false");
...@@ -90,6 +92,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -90,6 +92,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
} }
} }
@Override
public Auditor getAuditor() { public Auditor getAuditor() {
if (auditor == null) { if (auditor == null) {
throw new IllegalStateException("Must initialize audit manager first"); throw new IllegalStateException("Must initialize audit manager first");
...@@ -97,30 +100,36 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -97,30 +100,36 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
return auditor; return auditor;
} }
@Override
public int getMaxTotalSize() { public int getMaxTotalSize() {
return maxTotalSize; return maxTotalSize;
} }
@Override
public void setMaxTotalSize(int size) { public void setMaxTotalSize(int size) {
maxTotalSize = size; maxTotalSize = size;
auditor.setMaxValues(maxTotalSize, maxFileSize, maxDays); auditor.setMaxValues(maxTotalSize, maxFileSize, maxDays);
JiveGlobals.setProperty("xmpp.audit.totalsize", Integer.toString(size)); JiveGlobals.setProperty("xmpp.audit.totalsize", Integer.toString(size));
} }
@Override
public int getMaxFileSize() { public int getMaxFileSize() {
return maxFileSize; return maxFileSize;
} }
@Override
public void setMaxFileSize(int size) { public void setMaxFileSize(int size) {
maxFileSize = size; maxFileSize = size;
auditor.setMaxValues(maxTotalSize, maxFileSize, maxDays); auditor.setMaxValues(maxTotalSize, maxFileSize, maxDays);
JiveGlobals.setProperty("xmpp.audit.filesize", Integer.toString(size)); JiveGlobals.setProperty("xmpp.audit.filesize", Integer.toString(size));
} }
@Override
public int getMaxDays() { public int getMaxDays() {
return maxDays; return maxDays;
} }
@Override
public void setMaxDays(int count) { public void setMaxDays(int count) {
if (count < -1) { if (count < -1) {
count = -1; count = -1;
...@@ -133,67 +142,81 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -133,67 +142,81 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
JiveGlobals.setProperty("xmpp.audit.days", Integer.toString(count)); JiveGlobals.setProperty("xmpp.audit.days", Integer.toString(count));
} }
@Override
public int getLogTimeout() { public int getLogTimeout() {
return logTimeout; return logTimeout;
} }
@Override
public void setLogTimeout(int logTimeout) { public void setLogTimeout(int logTimeout) {
this.logTimeout = logTimeout; this.logTimeout = logTimeout;
auditor.setLogTimeout(logTimeout); auditor.setLogTimeout(logTimeout);
JiveGlobals.setProperty("xmpp.audit.logtimeout", Integer.toString(logTimeout)); JiveGlobals.setProperty("xmpp.audit.logtimeout", Integer.toString(logTimeout));
} }
@Override
public String getLogDir() { public String getLogDir() {
return logDir; return logDir;
} }
@Override
public void setLogDir(String logDir) { public void setLogDir(String logDir) {
this.logDir = logDir; this.logDir = logDir;
auditor.setLogDir(logDir); auditor.setLogDir(logDir);
JiveGlobals.setProperty("xmpp.audit.logdir", logDir); JiveGlobals.setProperty("xmpp.audit.logdir", logDir);
} }
@Override
public boolean isAuditMessage() { public boolean isAuditMessage() {
return auditMessage; return auditMessage;
} }
@Override
public void setAuditMessage(boolean auditMessage) { public void setAuditMessage(boolean auditMessage) {
this.auditMessage = auditMessage; this.auditMessage = auditMessage;
JiveGlobals.setProperty("xmpp.audit.message", auditMessage ? "true" : "false"); JiveGlobals.setProperty("xmpp.audit.message", auditMessage ? "true" : "false");
} }
@Override
public boolean isAuditPresence() { public boolean isAuditPresence() {
return auditPresence; return auditPresence;
} }
@Override
public void setAuditPresence(boolean auditPresence) { public void setAuditPresence(boolean auditPresence) {
this.auditPresence = auditPresence; this.auditPresence = auditPresence;
JiveGlobals.setProperty("xmpp.audit.presence", auditPresence ? "true" : "false"); JiveGlobals.setProperty("xmpp.audit.presence", auditPresence ? "true" : "false");
} }
@Override
public boolean isAuditIQ() { public boolean isAuditIQ() {
return auditIQ; return auditIQ;
} }
@Override
public void setAuditIQ(boolean auditIQ) { public void setAuditIQ(boolean auditIQ) {
this.auditIQ = auditIQ; this.auditIQ = auditIQ;
JiveGlobals.setProperty("xmpp.audit.iq", Boolean.toString(auditIQ)); JiveGlobals.setProperty("xmpp.audit.iq", Boolean.toString(auditIQ));
} }
@Override
public boolean isAuditXPath() { public boolean isAuditXPath() {
return auditXPath; return auditXPath;
} }
@Override
public void setAuditXPath(boolean auditXPath) { public void setAuditXPath(boolean auditXPath) {
this.auditXPath = auditXPath; this.auditXPath = auditXPath;
JiveGlobals.setProperty("xmpp.audit.xpath", Boolean.toString(auditXPath)); JiveGlobals.setProperty("xmpp.audit.xpath", Boolean.toString(auditXPath));
} }
@Override
public void addXPath(String xpathExpression) { public void addXPath(String xpathExpression) {
xpath.add(xpathExpression); xpath.add(xpathExpression);
saveXPath(); saveXPath();
} }
@Override
public void removeXPath(String xpathExpression) { public void removeXPath(String xpathExpression) {
xpath.remove(xpathExpression); xpath.remove(xpathExpression);
saveXPath(); saveXPath();
...@@ -205,10 +228,12 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -205,10 +228,12 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
//filters = (String[]) xpath.toArray(filters); //filters = (String[]) xpath.toArray(filters);
} }
@Override
public Iterator getXPathFilters() { public Iterator getXPathFilters() {
return xpath.iterator(); return xpath.iterator();
} }
@Override
public void setIgnoreList(Collection<String> usernames) { public void setIgnoreList(Collection<String> usernames) {
if (ignoreList.equals(usernames)) { if (ignoreList.equals(usernames)) {
return; return;
...@@ -227,6 +252,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -227,6 +252,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
JiveGlobals.setProperty("xmpp.audit.ignore", ignoreString.toString()); JiveGlobals.setProperty("xmpp.audit.ignore", ignoreString.toString());
} }
@Override
public Collection<String> getIgnoreList() { public Collection<String> getIgnoreList() {
return Collections.unmodifiableCollection(ignoreList); return Collections.unmodifiableCollection(ignoreList);
} }
...@@ -282,6 +308,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager { ...@@ -282,6 +308,7 @@ public class AuditManagerImpl extends BasicModule implements AuditManager {
private class AuditorInterceptor implements PacketInterceptor { private class AuditorInterceptor implements PacketInterceptor {
@Override
public void interceptPacket(Packet packet, Session session, boolean read, boolean processed) { public void interceptPacket(Packet packet, Session session, boolean read, boolean processed) {
if (!processed) { if (!processed) {
// Ignore packets sent or received by users that are present in the ignore list // Ignore packets sent or received by users that are present in the ignore list
......
...@@ -151,10 +151,12 @@ public class AuditorImpl implements Auditor { ...@@ -151,10 +151,12 @@ public class AuditorImpl implements Auditor {
} }
} }
@Override
public int getQueuedPacketsNumber() { public int getQueuedPacketsNumber() {
return logQueue.size(); return logQueue.size();
} }
@Override
public void audit(Packet packet, Session session) { public void audit(Packet packet, Session session) {
if (auditManager.isEnabled()) { if (auditManager.isEnabled()) {
if (packet instanceof Message) { if (packet instanceof Message) {
...@@ -182,6 +184,7 @@ public class AuditorImpl implements Auditor { ...@@ -182,6 +184,7 @@ public class AuditorImpl implements Auditor {
} }
} }
@Override
public void stop() { public void stop() {
// Stop queuing packets since we are being stopped // Stop queuing packets since we are being stopped
closed = true; closed = true;
...@@ -224,6 +227,7 @@ public class AuditorImpl implements Auditor { ...@@ -224,6 +227,7 @@ public class AuditorImpl implements Auditor {
private void ensureMaxTotalSize() { private void ensureMaxTotalSize() {
// Get list of existing audit files // Get list of existing audit files
FilenameFilter filter = new FilenameFilter() { FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) { public boolean accept(File dir, String name) {
return name.startsWith("jive.audit-") && name.endsWith(".log"); return name.startsWith("jive.audit-") && name.endsWith(".log");
} }
...@@ -238,6 +242,7 @@ public class AuditorImpl implements Auditor { ...@@ -238,6 +242,7 @@ public class AuditorImpl implements Auditor {
// Sort files by name (chronological order) // Sort files by name (chronological order)
List<File> sortedFiles = new ArrayList<File>(Arrays.asList(files)); List<File> sortedFiles = new ArrayList<File>(Arrays.asList(files));
Collections.sort(sortedFiles, new Comparator<File>() { Collections.sort(sortedFiles, new Comparator<File>() {
@Override
public int compare(File o1, File o2) { public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName()); return o1.getName().compareTo(o2.getName());
} }
...@@ -274,6 +279,7 @@ public class AuditorImpl implements Auditor { ...@@ -274,6 +279,7 @@ public class AuditorImpl implements Auditor {
// Get list of audit files to delete // Get list of audit files to delete
FilenameFilter filter = new FilenameFilter() { FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) { public boolean accept(File dir, String name) {
return name.startsWith("jive.audit-") && name.endsWith(".log") && return name.startsWith("jive.audit-") && name.endsWith(".log") &&
name.compareTo(oldestFile) < 0; name.compareTo(oldestFile) < 0;
...@@ -320,6 +326,7 @@ public class AuditorImpl implements Auditor { ...@@ -320,6 +326,7 @@ public class AuditorImpl implements Auditor {
} }
// Get list of existing audit files // Get list of existing audit files
FilenameFilter filter = new FilenameFilter() { FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) { public boolean accept(File dir, String name) {
return name.startsWith(filePrefix) && name.endsWith(".log"); return name.startsWith(filePrefix) && name.endsWith(".log");
} }
......
...@@ -68,20 +68,24 @@ public class AuthFactory { ...@@ -68,20 +68,24 @@ public class AuthFactory {
// Detect when a new auth provider class is set // Detect when a new auth provider class is set
PropertyEventListener propListener = new PropertyEventListener() { PropertyEventListener propListener = new PropertyEventListener() {
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
if ("provider.auth.className".equals(property)) { if ("provider.auth.className".equals(property)) {
initProvider(); initProvider();
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
......
...@@ -68,6 +68,7 @@ public class DefaultAuthProvider implements AuthProvider { ...@@ -68,6 +68,7 @@ public class DefaultAuthProvider implements AuthProvider {
} }
@Override
public void authenticate(String username, String password) throws UnauthorizedException { public void authenticate(String username, String password) throws UnauthorizedException {
if (username == null || password == null) { if (username == null || password == null) {
throw new UnauthorizedException(); throw new UnauthorizedException();
...@@ -95,6 +96,7 @@ public class DefaultAuthProvider implements AuthProvider { ...@@ -95,6 +96,7 @@ public class DefaultAuthProvider implements AuthProvider {
// Got this far, so the user must be authorized. // Got this far, so the user must be authorized.
} }
@Override
public void authenticate(String username, String token, String digest) throws UnauthorizedException { public void authenticate(String username, String token, String digest) throws UnauthorizedException {
if (username == null || token == null || digest == null) { if (username == null || token == null || digest == null) {
throw new UnauthorizedException(); throw new UnauthorizedException();
...@@ -124,15 +126,18 @@ public class DefaultAuthProvider implements AuthProvider { ...@@ -124,15 +126,18 @@ public class DefaultAuthProvider implements AuthProvider {
// Got this far, so the user must be authorized. // Got this far, so the user must be authorized.
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
boolean scramOnly = JiveGlobals.getBooleanProperty("user.scramHashedPasswordOnly"); boolean scramOnly = JiveGlobals.getBooleanProperty("user.scramHashedPasswordOnly");
return !scramOnly; return !scramOnly;
} }
@Override
public String getPassword(String username) throws UserNotFoundException { public String getPassword(String username) throws UserNotFoundException {
if (!supportsPasswordRetrieval()) { if (!supportsPasswordRetrieval()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -253,6 +258,7 @@ public class DefaultAuthProvider implements AuthProvider { ...@@ -253,6 +258,7 @@ public class DefaultAuthProvider implements AuthProvider {
} }
} }
@Override
public void setPassword(String username, String password) throws UserNotFoundException { public void setPassword(String username, String password) throws UserNotFoundException {
// Determine if the password should be stored as plain text or encrypted. // Determine if the password should be stored as plain text or encrypted.
boolean usePlainPassword = JiveGlobals.getBooleanProperty("user.usePlainPassword"); boolean usePlainPassword = JiveGlobals.getBooleanProperty("user.usePlainPassword");
...@@ -346,6 +352,7 @@ public class DefaultAuthProvider implements AuthProvider { ...@@ -346,6 +352,7 @@ public class DefaultAuthProvider implements AuthProvider {
} }
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
boolean scramOnly = JiveGlobals.getBooleanProperty("user.scramHashedPasswordOnly"); boolean scramOnly = JiveGlobals.getBooleanProperty("user.scramHashedPasswordOnly");
return !scramOnly; return !scramOnly;
......
...@@ -59,6 +59,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping { ...@@ -59,6 +59,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping {
* @param principal The autheticated principal requesting authorization. * @param principal The autheticated principal requesting authorization.
* @return The name of the default username to use. * @return The name of the default username to use.
*/ */
@Override
public String map(String principal) { public String map(String principal) {
if(principal.contains("@")) { if(principal.contains("@")) {
String realm = principal.substring(principal.lastIndexOf('@')+1); String realm = principal.substring(principal.lastIndexOf('@')+1);
...@@ -97,6 +98,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping { ...@@ -97,6 +98,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping {
* *
* @return The short name of the Policy * @return The short name of the Policy
*/ */
@Override
public String name() { public String name() {
return "Default Mapping"; return "Default Mapping";
} }
...@@ -106,6 +108,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping { ...@@ -106,6 +108,7 @@ public class DefaultAuthorizationMapping implements AuthorizationMapping {
* *
* @return The description of the Policy. * @return The description of the Policy.
*/ */
@Override
public String description() { public String description() {
return "Simply remove's the realm of the requesting principal if and only if "+ return "Simply remove's the realm of the requesting principal if and only if "+
"the realm matches the server's realm or the server's xmpp domain name. "+ "the realm matches the server's realm or the server's xmpp domain name. "+
......
...@@ -86,6 +86,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy { ...@@ -86,6 +86,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy {
* @param authenID The authenticated ID (principal) requesting the username. * @param authenID The authenticated ID (principal) requesting the username.
* @return true if the authenticated ID is authorized to the requested user. * @return true if the authenticated ID is authorized to the requested user.
*/ */
@Override
public boolean authorize(String username, String authenID) { public boolean authorize(String username, String authenID) {
boolean authorized = false; boolean authorized = false;
...@@ -181,6 +182,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy { ...@@ -181,6 +182,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy {
* *
* @return The short name of the Policy * @return The short name of the Policy
*/ */
@Override
public String name() { public String name() {
return "Default Policy"; return "Default Policy";
} }
...@@ -190,6 +192,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy { ...@@ -190,6 +192,7 @@ public class DefaultAuthorizationPolicy implements AuthorizationPolicy {
* *
* @return The description of the Policy. * @return The description of the Policy.
*/ */
@Override
public String description() { public String description() {
return "Different clients perform authentication differently, so this policy "+ return "Different clients perform authentication differently, so this policy "+
"will authorize any principal to a requested user that match specific "+ "will authorize any principal to a requested user that match specific "+
......
...@@ -188,14 +188,17 @@ public class HybridAuthProvider implements AuthProvider { ...@@ -188,14 +188,17 @@ public class HybridAuthProvider implements AuthProvider {
} }
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
return false; return false;
} }
@Override
public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException { public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
// Check overrides first. // Check overrides first.
if (primaryOverrides.contains(username.toLowerCase())) { if (primaryOverrides.contains(username.toLowerCase())) {
...@@ -235,24 +238,28 @@ public class HybridAuthProvider implements AuthProvider { ...@@ -235,24 +238,28 @@ public class HybridAuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String token, String digest) public void authenticate(String username, String token, String digest)
throws UnauthorizedException throws UnauthorizedException
{ {
throw new UnauthorizedException("Digest authentication not supported."); throw new UnauthorizedException("Digest authentication not supported.");
} }
@Override
public String getPassword(String username) public String getPassword(String username)
throws UserNotFoundException, UnsupportedOperationException throws UserNotFoundException, UnsupportedOperationException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void setPassword(String username, String password) public void setPassword(String username, String password)
throws UserNotFoundException, UnsupportedOperationException throws UserNotFoundException, UnsupportedOperationException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return false; return false;
} }
......
...@@ -130,6 +130,7 @@ public class JDBCAuthProvider implements AuthProvider { ...@@ -130,6 +130,7 @@ public class JDBCAuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String password) throws UnauthorizedException { public void authenticate(String username, String password) throws UnauthorizedException {
if (username == null || password == null) { if (username == null || password == null) {
throw new UnauthorizedException(); throw new UnauthorizedException();
...@@ -175,6 +176,7 @@ public class JDBCAuthProvider implements AuthProvider { ...@@ -175,6 +176,7 @@ public class JDBCAuthProvider implements AuthProvider {
createUser(username); createUser(username);
} }
@Override
public void authenticate(String username, String token, String digest) public void authenticate(String username, String token, String digest)
throws UnauthorizedException throws UnauthorizedException
{ {
...@@ -213,16 +215,19 @@ public class JDBCAuthProvider implements AuthProvider { ...@@ -213,16 +215,19 @@ public class JDBCAuthProvider implements AuthProvider {
createUser(username); createUser(username);
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
// If the auth SQL is defined, plain text authentication is supported. // If the auth SQL is defined, plain text authentication is supported.
return (passwordSQL != null); return (passwordSQL != null);
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
// The auth SQL must be defined and the password type is supported. // The auth SQL must be defined and the password type is supported.
return (passwordSQL != null && passwordType == PasswordType.plain); return (passwordSQL != null && passwordType == PasswordType.plain);
} }
@Override
public String getPassword(String username) throws UserNotFoundException, public String getPassword(String username) throws UserNotFoundException,
UnsupportedOperationException UnsupportedOperationException
{ {
...@@ -244,6 +249,7 @@ public class JDBCAuthProvider implements AuthProvider { ...@@ -244,6 +249,7 @@ public class JDBCAuthProvider implements AuthProvider {
return getPasswordValue(username); return getPasswordValue(username);
} }
@Override
public void setPassword(String username, String password) public void setPassword(String username, String password)
throws UserNotFoundException, UnsupportedOperationException throws UserNotFoundException, UnsupportedOperationException
{ {
...@@ -254,6 +260,7 @@ public class JDBCAuthProvider implements AuthProvider { ...@@ -254,6 +260,7 @@ public class JDBCAuthProvider implements AuthProvider {
} }
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return (passwordSQL != null && passwordType == PasswordType.plain); return (passwordSQL != null && passwordType == PasswordType.plain);
} }
......
...@@ -105,24 +105,29 @@ public class NativeAuthProvider implements AuthProvider { ...@@ -105,24 +105,29 @@ public class NativeAuthProvider implements AuthProvider {
// Configure Shaj to log output to the Openfire logger. // Configure Shaj to log output to the Openfire logger.
com.cenqua.shaj.log.Log.Factory.setInstance(new com.cenqua.shaj.log.Log() { com.cenqua.shaj.log.Log.Factory.setInstance(new com.cenqua.shaj.log.Log() {
@Override
public boolean isDebug() { public boolean isDebug() {
return Log.isDebugEnabled(); return Log.isDebugEnabled();
} }
@Override
public void error(String string) { public void error(String string) {
Log.error(string); Log.error(string);
} }
@Override
public void error(String string, Throwable throwable) { public void error(String string, Throwable throwable) {
Log.error(string, throwable); Log.error(string, throwable);
} }
@Override
public void debug(String string) { public void debug(String string) {
Log.debug("NativeAuthProvider: "+string); Log.debug("NativeAuthProvider: "+string);
} }
}); });
} }
@Override
public void authenticate(String username, String password) throws UnauthorizedException { public void authenticate(String username, String password) throws UnauthorizedException {
if (username.contains("@")) { if (username.contains("@")) {
// Check that the specified domain matches the server's domain // Check that the specified domain matches the server's domain
...@@ -177,30 +182,36 @@ public class NativeAuthProvider implements AuthProvider { ...@@ -177,30 +182,36 @@ public class NativeAuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String token, String digest) public void authenticate(String username, String token, String digest)
throws UnauthorizedException throws UnauthorizedException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
return false; return false;
} }
@Override
public String getPassword(String username) public String getPassword(String username)
throws UserNotFoundException, UnsupportedOperationException throws UserNotFoundException, UnsupportedOperationException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void setPassword(String username, String password) throws UserNotFoundException { public void setPassword(String username, String password) throws UserNotFoundException {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return false; return false;
} }
......
...@@ -130,6 +130,7 @@ public class POP3AuthProvider implements AuthProvider { ...@@ -130,6 +130,7 @@ public class POP3AuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String password) throws UnauthorizedException { public void authenticate(String username, String password) throws UnauthorizedException {
if (username == null || password == null) { if (username == null || password == null) {
throw new UnauthorizedException(); throw new UnauthorizedException();
...@@ -218,34 +219,41 @@ public class POP3AuthProvider implements AuthProvider { ...@@ -218,34 +219,41 @@ public class POP3AuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String token, String digest) public void authenticate(String username, String token, String digest)
throws UnauthorizedException throws UnauthorizedException
{ {
throw new UnauthorizedException("Digest authentication not supported."); throw new UnauthorizedException("Digest authentication not supported.");
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
return false; return false;
} }
@Override
public String getPassword(String username) public String getPassword(String username)
throws UserNotFoundException, UnsupportedOperationException throws UserNotFoundException, UnsupportedOperationException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void setPassword(String username, String password) throws UserNotFoundException { public void setPassword(String username, String password) throws UserNotFoundException {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return false; return false;
} }
@Override
public boolean isScramSupported() { public boolean isScramSupported() {
return false; return false;
} }
......
...@@ -54,6 +54,7 @@ public class ClearspaceAdminProvider implements AdminProvider { ...@@ -54,6 +54,7 @@ public class ClearspaceAdminProvider implements AdminProvider {
* The clearspace provider pulls the admin list from the userPermissions web service * The clearspace provider pulls the admin list from the userPermissions web service
* @see org.jivesoftware.openfire.admin.AdminProvider#getAdmins() * @see org.jivesoftware.openfire.admin.AdminProvider#getAdmins()
*/ */
@Override
public List<JID> getAdmins() { public List<JID> getAdmins() {
try { try {
String path = PERMISSION_URL_PREFIX + "userPermissions/"+SYSTEM_ADMIN_PERM+"/true"; String path = PERMISSION_URL_PREFIX + "userPermissions/"+SYSTEM_ADMIN_PERM+"/true";
...@@ -89,6 +90,7 @@ public class ClearspaceAdminProvider implements AdminProvider { ...@@ -89,6 +90,7 @@ public class ClearspaceAdminProvider implements AdminProvider {
* The clearspace provider does not allow setting admin lists from this interface * The clearspace provider does not allow setting admin lists from this interface
* @see org.jivesoftware.openfire.admin.AdminProvider#setAdmins(java.util.List) * @see org.jivesoftware.openfire.admin.AdminProvider#setAdmins(java.util.List)
*/ */
@Override
public void setAdmins(List<JID> admins) { public void setAdmins(List<JID> admins) {
// Silently do nothing. This shouldn't come up, but more inportantly, we don't want to bother Clearspace. // Silently do nothing. This shouldn't come up, but more inportantly, we don't want to bother Clearspace.
} }
...@@ -97,6 +99,7 @@ public class ClearspaceAdminProvider implements AdminProvider { ...@@ -97,6 +99,7 @@ public class ClearspaceAdminProvider implements AdminProvider {
* The clearspace provider is read only * The clearspace provider is read only
* @see org.jivesoftware.openfire.admin.AdminProvider#isReadOnly() * @see org.jivesoftware.openfire.admin.AdminProvider#isReadOnly()
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return true; return true;
} }
......
...@@ -48,6 +48,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -48,6 +48,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* *
* @return true * @return true
*/ */
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
...@@ -57,6 +58,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -57,6 +58,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* *
* @return false * @return false
*/ */
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
return false; return false;
} }
...@@ -69,6 +71,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -69,6 +71,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* @param password the password. * @param password the password.
* @throws UnauthorizedException if the username of password are incorrect. * @throws UnauthorizedException if the username of password are incorrect.
*/ */
@Override
public void authenticate(String username, String password) throws UnauthorizedException, public void authenticate(String username, String password) throws UnauthorizedException,
ConnectionException, InternalUnauthenticatedException { ConnectionException, InternalUnauthenticatedException {
try { try {
...@@ -101,6 +104,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -101,6 +104,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* @throws UnauthorizedException never throws it * @throws UnauthorizedException never throws it
* @throws UnsupportedOperationException always throws it * @throws UnsupportedOperationException always throws it
*/ */
@Override
public void authenticate(String username, String token, String digest) throws UnauthorizedException { public void authenticate(String username, String token, String digest) throws UnauthorizedException {
throw new UnsupportedOperationException("Digest not supported"); throw new UnsupportedOperationException("Digest not supported");
} }
...@@ -110,6 +114,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -110,6 +114,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* *
* @throws UnsupportedOperationException always throws it * @throws UnsupportedOperationException always throws it
*/ */
@Override
public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException { public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException {
throw new UnsupportedOperationException("Password retrieval not supported"); throw new UnsupportedOperationException("Password retrieval not supported");
} }
...@@ -119,6 +124,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -119,6 +124,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* *
* @throws UnsupportedOperationException always throws it * @throws UnsupportedOperationException always throws it
*/ */
@Override
public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException { public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException {
throw new UnsupportedOperationException("Change Password not supported"); throw new UnsupportedOperationException("Change Password not supported");
} }
...@@ -128,6 +134,7 @@ public class ClearspaceAuthProvider implements AuthProvider { ...@@ -128,6 +134,7 @@ public class ClearspaceAuthProvider implements AuthProvider {
* *
* @throws UnsupportedOperationException always throws it * @throws UnsupportedOperationException always throws it
*/ */
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return false; return false;
} }
......
...@@ -51,10 +51,12 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider { ...@@ -51,10 +51,12 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider {
public ClearspaceGroupProvider() { public ClearspaceGroupProvider() {
} }
@Override
public Group getGroup(String name) throws GroupNotFoundException { public Group getGroup(String name) throws GroupNotFoundException {
return translateGroup(getGroupByName(name)); return translateGroup(getGroupByName(name));
} }
@Override
public int getGroupCount() { public int getGroupCount() {
try { try {
String path = URL_PREFIX + "socialGroupCount"; String path = URL_PREFIX + "socialGroupCount";
...@@ -66,11 +68,13 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider { ...@@ -66,11 +68,13 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> getSharedGroupNames() { public Collection<String> getSharedGroupNames() {
// Return all social group names since every social group is a shared group // Return all social group names since every social group is a shared group
return getGroupNames(); return getGroupNames();
} }
@Override
public Collection<String> getSharedGroupNames(JID user) { public Collection<String> getSharedGroupNames(JID user) {
// TODO: is there a better way to get the shared Clearspace groups for a given user? // TODO: is there a better way to get the shared Clearspace groups for a given user?
Collection<String> result = new ArrayList<String>(); Collection<String> result = new ArrayList<String>();
...@@ -84,6 +88,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider { ...@@ -84,6 +88,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider {
return result; return result;
} }
@Override
public Collection<String> getGroupNames() { public Collection<String> getGroupNames() {
try { try {
String path = URL_PREFIX + "socialGroupNames"; String path = URL_PREFIX + "socialGroupNames";
...@@ -96,6 +101,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider { ...@@ -96,6 +101,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> getGroupNames(int startIndex, int numResults) { public Collection<String> getGroupNames(int startIndex, int numResults) {
try { try {
String path = URL_PREFIX + "socialGroupNamesBounded/" + startIndex + "/" + numResults; String path = URL_PREFIX + "socialGroupNamesBounded/" + startIndex + "/" + numResults;
...@@ -108,6 +114,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider { ...@@ -108,6 +114,7 @@ public class ClearspaceGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> getGroupNames(JID user) { public Collection<String> getGroupNames(JID user) {
try { try {
long userID = ClearspaceManager.getInstance().getUserID(user); long userID = ClearspaceManager.getInstance().getUserID(user);
......
...@@ -59,6 +59,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -59,6 +59,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* The ClearspaceLockOutProvider will retrieve lockout information from Clearspace's user properties. * The ClearspaceLockOutProvider will retrieve lockout information from Clearspace's user properties.
* @see org.jivesoftware.openfire.lockout.LockOutProvider#getDisabledStatus(String) * @see org.jivesoftware.openfire.lockout.LockOutProvider#getDisabledStatus(String)
*/ */
@Override
public LockOutFlag getDisabledStatus(String username) { public LockOutFlag getDisabledStatus(String username) {
try { try {
// Retrieve the disabled status, translate it into a LockOutFlag, and return it. // Retrieve the disabled status, translate it into a LockOutFlag, and return it.
...@@ -75,6 +76,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -75,6 +76,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* The ClearspaceLockOutProvider will set lockouts in Clearspace itself. * The ClearspaceLockOutProvider will set lockouts in Clearspace itself.
* @see org.jivesoftware.openfire.lockout.LockOutProvider#setDisabledStatus(org.jivesoftware.openfire.lockout.LockOutFlag) * @see org.jivesoftware.openfire.lockout.LockOutProvider#setDisabledStatus(org.jivesoftware.openfire.lockout.LockOutFlag)
*/ */
@Override
public void setDisabledStatus(LockOutFlag flag) { public void setDisabledStatus(LockOutFlag flag) {
setEnabledStatus(flag.getUsername(), false); setEnabledStatus(flag.getUsername(), false);
} }
...@@ -83,6 +85,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -83,6 +85,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* The ClearspaceLockOutProvider will set lockouts in Clearspace itself. * The ClearspaceLockOutProvider will set lockouts in Clearspace itself.
* @see org.jivesoftware.openfire.lockout.LockOutProvider#unsetDisabledStatus(String) * @see org.jivesoftware.openfire.lockout.LockOutProvider#unsetDisabledStatus(String)
*/ */
@Override
public void unsetDisabledStatus(String username) { public void unsetDisabledStatus(String username) {
setEnabledStatus(username, true); setEnabledStatus(username, true);
} }
...@@ -91,6 +94,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -91,6 +94,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* The ClearspaceLockOutProvider will set lockouts in Clearspace itself. * The ClearspaceLockOutProvider will set lockouts in Clearspace itself.
* @see org.jivesoftware.openfire.lockout.LockOutProvider#isReadOnly() * @see org.jivesoftware.openfire.lockout.LockOutProvider#isReadOnly()
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return false; return false;
} }
...@@ -99,6 +103,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -99,6 +103,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* Clearspace only supports a strict "are you disabled or not". * Clearspace only supports a strict "are you disabled or not".
* @see org.jivesoftware.openfire.lockout.LockOutProvider#isDelayedStartSupported() * @see org.jivesoftware.openfire.lockout.LockOutProvider#isDelayedStartSupported()
*/ */
@Override
public boolean isDelayedStartSupported() { public boolean isDelayedStartSupported() {
return false; return false;
} }
...@@ -107,6 +112,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -107,6 +112,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* Clearspace only supports a strict "are you disabled or not". * Clearspace only supports a strict "are you disabled or not".
* @see org.jivesoftware.openfire.lockout.LockOutProvider#isTimeoutSupported() * @see org.jivesoftware.openfire.lockout.LockOutProvider#isTimeoutSupported()
*/ */
@Override
public boolean isTimeoutSupported() { public boolean isTimeoutSupported() {
return false; return false;
} }
...@@ -115,6 +121,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider { ...@@ -115,6 +121,7 @@ public class ClearspaceLockOutProvider implements LockOutProvider {
* Clearspace needs to always be queried for disabled status. * Clearspace needs to always be queried for disabled status.
* @see org.jivesoftware.openfire.lockout.LockOutProvider#shouldNotBeCached() * @see org.jivesoftware.openfire.lockout.LockOutProvider#shouldNotBeCached()
*/ */
@Override
public boolean shouldNotBeCached() { public boolean shouldNotBeCached() {
return true; return true;
} }
......
...@@ -233,30 +233,36 @@ public class ClearspaceMUCTranscriptManager implements MUCEventListener { ...@@ -233,30 +233,36 @@ public class ClearspaceMUCTranscriptManager implements MUCEventListener {
MUCEventDispatcher.removeListener(this); MUCEventDispatcher.removeListener(this);
} }
@Override
public void roomCreated(JID roomJID) { public void roomCreated(JID roomJID) {
// Do nothing // Do nothing
} }
@Override
public void roomDestroyed(JID roomJID) { public void roomDestroyed(JID roomJID) {
// Do nothing // Do nothing
} }
@Override
public void occupantJoined(JID roomJID, JID user, String nickname) { public void occupantJoined(JID roomJID, JID user, String nickname) {
if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) { if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) {
addGroupChatEvent(ClearspaceMUCTranscriptEvent.occupantJoined(roomJID, user, new Date().getTime())); addGroupChatEvent(ClearspaceMUCTranscriptEvent.occupantJoined(roomJID, user, new Date().getTime()));
} }
} }
@Override
public void occupantLeft(JID roomJID, JID user) { public void occupantLeft(JID roomJID, JID user) {
if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) { if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) {
addGroupChatEvent(ClearspaceMUCTranscriptEvent.occupantLeft(roomJID, user, new Date().getTime())); addGroupChatEvent(ClearspaceMUCTranscriptEvent.occupantLeft(roomJID, user, new Date().getTime()));
} }
} }
@Override
public void nicknameChanged(JID roomJID, JID user, String oldNickname, String newNickname) { public void nicknameChanged(JID roomJID, JID user, String oldNickname, String newNickname) {
// Do nothing // Do nothing
} }
@Override
public void messageReceived(JID roomJID, JID user, String nickname, Message message) { public void messageReceived(JID roomJID, JID user, String nickname, Message message) {
if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) { if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) {
addGroupChatEvent(ClearspaceMUCTranscriptEvent.messageReceived(roomJID, user, message.getBody(), addGroupChatEvent(ClearspaceMUCTranscriptEvent.messageReceived(roomJID, user, message.getBody(),
...@@ -264,9 +270,11 @@ public class ClearspaceMUCTranscriptManager implements MUCEventListener { ...@@ -264,9 +270,11 @@ public class ClearspaceMUCTranscriptManager implements MUCEventListener {
} }
} }
@Override
public void privateMessageRecieved(JID fromJID, JID toJID, Message message) { public void privateMessageRecieved(JID fromJID, JID toJID, Message message) {
} }
@Override
public void roomSubjectChanged(JID roomJID, JID user, String newSubject) { public void roomSubjectChanged(JID roomJID, JID user, String newSubject) {
if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) { if (isClearspaceRoom(roomJID) && !isRoomOwner(roomJID, user)) {
addGroupChatEvent(ClearspaceMUCTranscriptEvent.roomSubjectChanged(roomJID, user, newSubject, addGroupChatEvent(ClearspaceMUCTranscriptEvent.roomSubjectChanged(roomJID, user, newSubject,
......
...@@ -233,16 +233,19 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -233,16 +233,19 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
// makes it easier to perform LdapManager testing. // makes it easier to perform LdapManager testing.
this.properties = new Map<String, String>() { this.properties = new Map<String, String>() {
@Override
public String get(Object key) { public String get(Object key) {
return JiveGlobals.getProperty((String) key); return JiveGlobals.getProperty((String) key);
} }
@Override
public String put(String key, String value) { public String put(String key, String value) {
JiveGlobals.setProperty(key, value); JiveGlobals.setProperty(key, value);
// Always return null since XMLProperties doesn't support the normal semantics. // Always return null since XMLProperties doesn't support the normal semantics.
return null; return null;
} }
@Override
public String remove(Object key) { public String remove(Object key) {
JiveGlobals.deleteProperty((String) key); JiveGlobals.deleteProperty((String) key);
// Always return null since XMLProperties doesn't support the normal semantics. // Always return null since XMLProperties doesn't support the normal semantics.
...@@ -250,36 +253,45 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -250,36 +253,45 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
@Override
public int size() { public int size() {
return 0; return 0;
} }
@Override
public boolean isEmpty() { public boolean isEmpty() {
return false; return false;
} }
@Override
public boolean containsKey(Object key) { public boolean containsKey(Object key) {
return false; return false;
} }
@Override
public boolean containsValue(Object value) { public boolean containsValue(Object value) {
return false; return false;
} }
@Override
public void putAll(Map<? extends String, ? extends String> t) { public void putAll(Map<? extends String, ? extends String> t) {
} }
@Override
public void clear() { public void clear() {
} }
@Override
public Set<String> keySet() { public Set<String> keySet() {
return null; return null;
} }
@Override
public Collection<String> values() { public Collection<String> values() {
return null; return null;
} }
@Override
public Set<Entry<String, String>> entrySet() { public Set<Entry<String, String>> entrySet() {
return null; return null;
} }
...@@ -804,6 +816,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -804,6 +816,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
@Override
public void serviceEnabled(boolean enabled) throws ModificationNotAllowedException { public void serviceEnabled(boolean enabled) throws ModificationNotAllowedException {
// Do not let admins shutdown the external component service // Do not let admins shutdown the external component service
if (!enabled) { if (!enabled) {
...@@ -811,19 +824,23 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -811,19 +824,23 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
} }
@Override
public void portChanged(int newPort) throws ModificationNotAllowedException { public void portChanged(int newPort) throws ModificationNotAllowedException {
startClearspaceConfig(); startClearspaceConfig();
} }
@Override
public void defaultSecretChanged(String newSecret) throws ModificationNotAllowedException { public void defaultSecretChanged(String newSecret) throws ModificationNotAllowedException {
// Do nothing // Do nothing
} }
@Override
public void permissionPolicyChanged(ExternalComponentManager.PermissionPolicy newPolicy) public void permissionPolicyChanged(ExternalComponentManager.PermissionPolicy newPolicy)
throws ModificationNotAllowedException { throws ModificationNotAllowedException {
// Do nothing // Do nothing
} }
@Override
public void componentAllowed(String subdomain, ExternalComponentConfiguration configuration) public void componentAllowed(String subdomain, ExternalComponentConfiguration configuration)
throws ModificationNotAllowedException { throws ModificationNotAllowedException {
if (subdomain.startsWith("clearspace")) { if (subdomain.startsWith("clearspace")) {
...@@ -831,18 +848,21 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -831,18 +848,21 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
} }
@Override
public void componentBlocked(String subdomain) throws ModificationNotAllowedException { public void componentBlocked(String subdomain) throws ModificationNotAllowedException {
if (subdomain.startsWith("clearspace")) { if (subdomain.startsWith("clearspace")) {
throw new ModificationNotAllowedException("Communication with Clearspace cannot be blocked."); throw new ModificationNotAllowedException("Communication with Clearspace cannot be blocked.");
} }
} }
@Override
public void componentSecretUpdated(String subdomain, String newSecret) throws ModificationNotAllowedException { public void componentSecretUpdated(String subdomain, String newSecret) throws ModificationNotAllowedException {
if (subdomain.startsWith("clearspace")) { if (subdomain.startsWith("clearspace")) {
updateClearspaceSharedSecret(newSecret); updateClearspaceSharedSecret(newSecret);
} }
} }
@Override
public void componentConfigurationDeleted(String subdomain) throws ModificationNotAllowedException { public void componentConfigurationDeleted(String subdomain) throws ModificationNotAllowedException {
// Do not let admins delete configuration of Clearspace component // Do not let admins delete configuration of Clearspace component
if (subdomain.startsWith("clearspace")) { if (subdomain.startsWith("clearspace")) {
...@@ -1207,10 +1227,12 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -1207,10 +1227,12 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
final LinkedBlockingQueue<IQ> answer = new LinkedBlockingQueue<IQ>(8); final LinkedBlockingQueue<IQ> answer = new LinkedBlockingQueue<IQ>(8);
final IQRouter router = XMPPServer.getInstance().getIQRouter(); final IQRouter router = XMPPServer.getInstance().getIQRouter();
router.addIQResultListener(packet.getID(), new IQResultListener() { router.addIQResultListener(packet.getID(), new IQResultListener() {
@Override
public void receivedAnswer(IQ packet) { public void receivedAnswer(IQ packet) {
answer.offer(packet); answer.offer(packet);
} }
@Override
public void answerTimeout(String packetId) { public void answerTimeout(String packetId) {
Log.warn("No answer from Clearspace was received for IQ stanza: " + packet); Log.warn("No answer from Clearspace was received for IQ stanza: " + packet);
} }
...@@ -1225,15 +1247,18 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -1225,15 +1247,18 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
return reply; return reply;
} }
@Override
public void componentRegistered(JID componentJID) { public void componentRegistered(JID componentJID) {
// Do nothing // Do nothing
} }
@Override
public void componentUnregistered(JID componentJID) { public void componentUnregistered(JID componentJID) {
// Remove stored information about this component // Remove stored information about this component
clearspaces.remove(componentJID.getDomain()); clearspaces.remove(componentJID.getDomain());
} }
@Override
public void componentInfoReceived(IQ iq) { public void componentInfoReceived(IQ iq) {
// Check if it's a Clearspace component // Check if it's a Clearspace component
boolean isClearspace = false; boolean isClearspace = false;
...@@ -1296,6 +1321,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -1296,6 +1321,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
return System.currentTimeMillis() - time < JiveConstants.MINUTE; return System.currentTimeMillis() - time < JiveConstants.MINUTE;
} }
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
if (property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_ENABLED) || if (property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_ENABLED) ||
property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_PORT) || property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_PORT) ||
...@@ -1305,6 +1331,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -1305,6 +1331,7 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
if (property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_ENABLED) || if (property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_ENABLED) ||
property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_PORT) || property.equalsIgnoreCase(HttpBindManager.HTTP_BIND_PORT) ||
...@@ -1314,20 +1341,25 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM ...@@ -1314,20 +1341,25 @@ public class ClearspaceManager extends BasicModule implements ExternalComponentM
} }
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
} }
@Override
public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) { public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) {
updateClearspaceClientSettings(); updateClearspaceClientSettings();
} }
@Override
public void certificateDeleted(KeyStore keyStore, String alias) { public void certificateDeleted(KeyStore keyStore, String alias) {
updateClearspaceClientSettings(); updateClearspaceClientSettings();
} }
@Override
public void certificateSigned(KeyStore keyStore, String alias, List<X509Certificate> certificates) { public void certificateSigned(KeyStore keyStore, String alias, List<X509Certificate> certificates) {
} }
......
...@@ -51,6 +51,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -51,6 +51,7 @@ public class ClearspaceSaslServer implements SaslServer {
* *
* @return A non-null string representing the mechanism name. * @return A non-null string representing the mechanism name.
*/ */
@Override
public String getMechanismName() { public String getMechanismName() {
return "CLEARSPACE"; return "CLEARSPACE";
} }
...@@ -78,6 +79,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -78,6 +79,7 @@ public class ClearspaceSaslServer implements SaslServer {
* If an error occurred while processing * If an error occurred while processing
* the response or generating a challenge. * the response or generating a challenge.
*/ */
@Override
public byte[] evaluateResponse(byte[] response) throws SaslException { public byte[] evaluateResponse(byte[] response) throws SaslException {
ClearspaceManager csManager = ClearspaceManager.getInstance(); ClearspaceManager csManager = ClearspaceManager.getInstance();
String responseStr = new String(response); String responseStr = new String(response);
...@@ -128,6 +130,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -128,6 +130,7 @@ public class ClearspaceSaslServer implements SaslServer {
* *
* @return true if the authentication exchange has completed; false otherwise. * @return true if the authentication exchange has completed; false otherwise.
*/ */
@Override
public boolean isComplete() { public boolean isComplete() {
return completed; return completed;
} }
...@@ -140,6 +143,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -140,6 +143,7 @@ public class ClearspaceSaslServer implements SaslServer {
* @return The authorization ID of the client. * @return The authorization ID of the client.
* @throws IllegalStateException if this authentication session has not completed * @throws IllegalStateException if this authentication session has not completed
*/ */
@Override
public String getAuthorizationID() { public String getAuthorizationID() {
if (completed) { if (completed) {
return jid; return jid;
...@@ -174,6 +178,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -174,6 +178,7 @@ public class ClearspaceSaslServer implements SaslServer {
* not completed, or if the negotiated quality of protection * not completed, or if the negotiated quality of protection
* has neither integrity nor privacy * has neither integrity nor privacy
*/ */
@Override
public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException { public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException {
return new byte[0]; return new byte[0];
} }
...@@ -202,6 +207,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -202,6 +207,7 @@ public class ClearspaceSaslServer implements SaslServer {
* not completed, or if the negotiated quality of protection has * not completed, or if the negotiated quality of protection has
* neither integrity nor privacy. * neither integrity nor privacy.
*/ */
@Override
public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException { public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException {
return new byte[0]; return new byte[0];
} }
...@@ -218,6 +224,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -218,6 +224,7 @@ public class ClearspaceSaslServer implements SaslServer {
* @throws IllegalStateException if this authentication exchange has not completed * @throws IllegalStateException if this authentication exchange has not completed
*/ */
@Override
public Object getNegotiatedProperty(String propName) { public Object getNegotiatedProperty(String propName) {
return null; return null;
} }
...@@ -231,6 +238,7 @@ public class ClearspaceSaslServer implements SaslServer { ...@@ -231,6 +238,7 @@ public class ClearspaceSaslServer implements SaslServer {
* If a problem was encountered while disposing * If a problem was encountered while disposing
* the resources. * the resources.
*/ */
@Override
public void dispose() throws SaslException { public void dispose() throws SaslException {
completed = false; completed = false;
} }
......
...@@ -57,6 +57,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -57,6 +57,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* web service, provided by Clearspace. * web service, provided by Clearspace.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#logEvent(String, String, String) * @see org.jivesoftware.openfire.security.SecurityAuditProvider#logEvent(String, String, String)
*/ */
@Override
public void logEvent(String username, String summary, String details) { public void logEvent(String username, String summary, String details) {
try { try {
// Request to log event // Request to log event
...@@ -99,6 +100,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -99,6 +100,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* it refers the admin to a URL where they can read the logs. * it refers the admin to a URL where they can read the logs.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEvents(String, Integer, Integer, java.util.Date, java.util.Date) * @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEvents(String, Integer, Integer, java.util.Date, java.util.Date)
*/ */
@Override
public List<SecurityAuditEvent> getEvents(String username, Integer skipEvents, Integer numEvents, Date startTime, Date endTime) { public List<SecurityAuditEvent> getEvents(String username, Integer skipEvents, Integer numEvents, Date startTime, Date endTime) {
// This is not used. // This is not used.
return null; return null;
...@@ -109,6 +111,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -109,6 +111,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* it refers the admin to a URL where they can read the logs. * it refers the admin to a URL where they can read the logs.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEvent(Integer) * @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEvent(Integer)
*/ */
@Override
public SecurityAuditEvent getEvent(Integer msgID) throws EventNotFoundException { public SecurityAuditEvent getEvent(Integer msgID) throws EventNotFoundException {
// This is not used. // This is not used.
return null; return null;
...@@ -119,6 +122,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -119,6 +122,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* it refers the admin to a URL where they can read the logs. * it refers the admin to a URL where they can read the logs.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEventCount() * @see org.jivesoftware.openfire.security.SecurityAuditProvider#getEventCount()
*/ */
@Override
public Integer getEventCount() { public Integer getEventCount() {
// This is not used. // This is not used.
return null; return null;
...@@ -129,6 +133,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -129,6 +133,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* it refers the admin to a URL where they can read the logs. * it refers the admin to a URL where they can read the logs.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#isWriteOnly() * @see org.jivesoftware.openfire.security.SecurityAuditProvider#isWriteOnly()
*/ */
@Override
public boolean isWriteOnly() { public boolean isWriteOnly() {
return true; return true;
} }
...@@ -138,6 +143,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -138,6 +143,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* it refers the admin to a URL where they can read the logs. * it refers the admin to a URL where they can read the logs.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#getAuditURL() * @see org.jivesoftware.openfire.security.SecurityAuditProvider#getAuditURL()
*/ */
@Override
public String getAuditURL() { public String getAuditURL() {
String url = ClearspaceManager.getInstance().getConnectionURI(); String url = ClearspaceManager.getInstance().getConnectionURI();
if (url != null) { if (url != null) {
...@@ -153,6 +159,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -153,6 +159,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* Clearspace handles logging it's own user events. * Clearspace handles logging it's own user events.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#blockUserEvents() * @see org.jivesoftware.openfire.security.SecurityAuditProvider#blockUserEvents()
*/ */
@Override
public boolean blockUserEvents() { public boolean blockUserEvents() {
return true; return true;
} }
...@@ -161,6 +168,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider { ...@@ -161,6 +168,7 @@ public class ClearspaceSecurityAuditProvider implements SecurityAuditProvider {
* Clearspace handles logging it's own group events. * Clearspace handles logging it's own group events.
* @see org.jivesoftware.openfire.security.SecurityAuditProvider#blockGroupEvents() * @see org.jivesoftware.openfire.security.SecurityAuditProvider#blockGroupEvents()
*/ */
@Override
public boolean blockGroupEvents() { public boolean blockGroupEvents() {
return true; return true;
} }
......
...@@ -75,6 +75,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -75,6 +75,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @return a user instance with the user information * @return a user instance with the user information
* @throws UserNotFoundException if the user could not be found * @throws UserNotFoundException if the user could not be found
*/ */
@Override
public User loadUser(String username) throws UserNotFoundException { public User loadUser(String username) throws UserNotFoundException {
// Translate the response // Translate the response
...@@ -94,6 +95,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -94,6 +95,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @throws UserAlreadyExistsException If there is already a user with the username * @throws UserAlreadyExistsException If there is already a user with the username
* @throws UnsupportedOperationException If Clearspace is a read only provider * @throws UnsupportedOperationException If Clearspace is a read only provider
*/ */
@Override
public User createUser(String username, String password, String name, String email) throws UserAlreadyExistsException { public User createUser(String username, String password, String name, String email) throws UserAlreadyExistsException {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -152,6 +154,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -152,6 +154,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @param username the username of the user to delete * @param username the username of the user to delete
*/ */
@Override
public void deleteUser(String username) { public void deleteUser(String username) {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -175,6 +178,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -175,6 +178,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return the user count * @return the user count
*/ */
@Override
public int getUserCount() { public int getUserCount() {
try { try {
String path = USER_URL_PREFIX + "users/count"; String path = USER_URL_PREFIX + "users/count";
...@@ -191,6 +195,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -191,6 +195,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return a list of all users * @return a list of all users
*/ */
@Override
public Collection<User> getUsers() { public Collection<User> getUsers() {
Collection<String> usernames = getUsernames(); Collection<String> usernames = getUsernames();
return new UserCollection(usernames.toArray(new String[usernames.size()])); return new UserCollection(usernames.toArray(new String[usernames.size()]));
...@@ -201,6 +206,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -201,6 +206,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return a list of all the usernames * @return a list of all the usernames
*/ */
@Override
public Collection<String> getUsernames() { public Collection<String> getUsernames() {
try { try {
String path = USER_URL_PREFIX + "userNames"; String path = USER_URL_PREFIX + "userNames";
...@@ -220,6 +226,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -220,6 +226,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @param numResults the number of result * @param numResults the number of result
* @return a bounded list of users * @return a bounded list of users
*/ */
@Override
public Collection<User> getUsers(int startIndex, int numResults) { public Collection<User> getUsers(int startIndex, int numResults) {
String[] usernamesAll = getUsernames().toArray(new String[0]); String[] usernamesAll = getUsernames().toArray(new String[0]);
Collection<String> usernames = new ArrayList<String>(); Collection<String> usernames = new ArrayList<String>();
...@@ -239,6 +246,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -239,6 +246,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @param name the new name of the user * @param name the new name of the user
* @throws UserNotFoundException if there is no user with that username * @throws UserNotFoundException if there is no user with that username
*/ */
@Override
public void setName(String username, String name) throws UserNotFoundException { public void setName(String username, String name) throws UserNotFoundException {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -269,6 +277,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -269,6 +277,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @param email the new email of the user * @param email the new email of the user
* @throws UserNotFoundException if the user could not be found * @throws UserNotFoundException if the user could not be found
*/ */
@Override
public void setEmail(String username, String email) throws UserNotFoundException { public void setEmail(String username, String email) throws UserNotFoundException {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -300,6 +309,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -300,6 +309,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @param creationDate the new email of the user * @param creationDate the new email of the user
* @throws UserNotFoundException if the user could not be found * @throws UserNotFoundException if the user could not be found
*/ */
@Override
public void setCreationDate(String username, Date creationDate) throws UserNotFoundException { public void setCreationDate(String username, Date creationDate) throws UserNotFoundException {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -331,6 +341,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -331,6 +341,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @param modificationDate the new modificationDate of the user * @param modificationDate the new modificationDate of the user
* @throws UserNotFoundException if the user could not be found * @throws UserNotFoundException if the user could not be found
*/ */
@Override
public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException { public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException {
if (isReadOnly()) { if (isReadOnly()) {
// Reject the operation since the provider is read-only // Reject the operation since the provider is read-only
...@@ -403,6 +414,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -403,6 +414,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @return a list of username, name and email * @return a list of username, name and email
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public Set<String> getSearchFields() throws UnsupportedOperationException { public Set<String> getSearchFields() throws UnsupportedOperationException {
return new LinkedHashSet<String>(Arrays.asList("Username", "Name", "Email")); return new LinkedHashSet<String>(Arrays.asList("Username", "Name", "Email"));
} }
...@@ -416,6 +428,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -416,6 +428,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @throws UnsupportedOperationException if the provider does not * @throws UnsupportedOperationException if the provider does not
* support the operation (this is an optional operation). * support the operation (this is an optional operation).
*/ */
@Override
public Collection<User> findUsers(Set<String> fields, String query) throws UnsupportedOperationException { public Collection<User> findUsers(Set<String> fields, String query) throws UnsupportedOperationException {
// Creates the XML with the data // Creates the XML with the data
Element paramsE = DocumentHelper.createDocument().addElement("search"); Element paramsE = DocumentHelper.createDocument().addElement("search");
...@@ -462,6 +475,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -462,6 +475,7 @@ public class ClearspaceUserProvider implements UserProvider {
* @throws UnsupportedOperationException if the provider does not * @throws UnsupportedOperationException if the provider does not
* support the operation (this is an optional operation). * support the operation (this is an optional operation).
*/ */
@Override
public Collection<User> findUsers(Set<String> fields, String query, int startIndex, int numResults) throws UnsupportedOperationException { public Collection<User> findUsers(Set<String> fields, String query, int startIndex, int numResults) throws UnsupportedOperationException {
// Creates the XML with the data // Creates the XML with the data
Element paramsE = DocumentHelper.createDocument().addElement("searchBounded"); Element paramsE = DocumentHelper.createDocument().addElement("searchBounded");
...@@ -506,6 +520,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -506,6 +520,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return true if Clearspace is a read only user provider * @return true if Clearspace is a read only user provider
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
if (readOnly == null) { if (readOnly == null) {
synchronized (this) { synchronized (this) {
...@@ -523,6 +538,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -523,6 +538,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return false * @return false
*/ */
@Override
public boolean isNameRequired() { public boolean isNameRequired() {
return false; return false;
} }
...@@ -532,6 +548,7 @@ public class ClearspaceUserProvider implements UserProvider { ...@@ -532,6 +548,7 @@ public class ClearspaceUserProvider implements UserProvider {
* *
* @return true * @return true
*/ */
@Override
public boolean isEmailRequired() { public boolean isEmailRequired() {
return true; return true;
} }
......
...@@ -66,6 +66,7 @@ public class ClearspaceVCardProvider implements VCardProvider { ...@@ -66,6 +66,7 @@ public class ClearspaceVCardProvider implements VCardProvider {
* @param username username of user to load VCard of * @param username username of user to load VCard of
* @return the user's VCard * @return the user's VCard
*/ */
@Override
public Element loadVCard(String username) { public Element loadVCard(String username) {
// if the fields id are not loaded // if the fields id are not loaded
if (!fieldsIDLoaded) { if (!fieldsIDLoaded) {
...@@ -117,6 +118,7 @@ public class ClearspaceVCardProvider implements VCardProvider { ...@@ -117,6 +118,7 @@ public class ClearspaceVCardProvider implements VCardProvider {
* @throws UnsupportedOperationException if the provider does not support the * @throws UnsupportedOperationException if the provider does not support the
* operation. * operation.
*/ */
@Override
public Element createVCard(String username, Element vCardElement) throws AlreadyExistsException { public Element createVCard(String username, Element vCardElement) throws AlreadyExistsException {
return saveVCard(username, vCardElement); return saveVCard(username, vCardElement);
} }
...@@ -132,6 +134,7 @@ public class ClearspaceVCardProvider implements VCardProvider { ...@@ -132,6 +134,7 @@ public class ClearspaceVCardProvider implements VCardProvider {
* @throws UnsupportedOperationException if the provider does not support the * @throws UnsupportedOperationException if the provider does not support the
* operation. * operation.
*/ */
@Override
public Element updateVCard(String username, Element vCardElement) throws NotFoundException { public Element updateVCard(String username, Element vCardElement) throws NotFoundException {
return saveVCard(username, vCardElement); return saveVCard(username, vCardElement);
} }
...@@ -141,6 +144,7 @@ public class ClearspaceVCardProvider implements VCardProvider { ...@@ -141,6 +144,7 @@ public class ClearspaceVCardProvider implements VCardProvider {
* *
* @return true * @return true
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
// Return always false, since some changes are always allowed // Return always false, since some changes are always allowed
return false; return false;
...@@ -256,6 +260,7 @@ public class ClearspaceVCardProvider implements VCardProvider { ...@@ -256,6 +260,7 @@ public class ClearspaceVCardProvider implements VCardProvider {
* *
* @param username the username. * @param username the username.
*/ */
@Override
public void deleteVCard(String username) { public void deleteVCard(String username) {
ClearspaceUserProvider userProvider = (ClearspaceUserProvider) UserManager.getUserProvider(); ClearspaceUserProvider userProvider = (ClearspaceUserProvider) UserManager.getUserProvider();
if (userProvider.isReadOnly() || isAvatarReadOnly()) { if (userProvider.isReadOnly() || isAvatarReadOnly()) {
......
...@@ -63,6 +63,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager { ...@@ -63,6 +63,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager {
/** /**
* @see javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[],String authType) * @see javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[],String authType)
*/ */
@Override
public void checkClientTrusted(X509Certificate[] certificates, String authType) throws CertificateException { public void checkClientTrusted(X509Certificate[] certificates, String authType) throws CertificateException {
// Do nothing. We are the client so we are not testing certificates from clients // Do nothing. We are the client so we are not testing certificates from clients
} }
...@@ -70,6 +71,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager { ...@@ -70,6 +71,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager {
/** /**
* @see javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[],String authType) * @see javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[],String authType)
*/ */
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String authType) throws CertificateException { public void checkServerTrusted(X509Certificate[] x509Certificates, String authType) throws CertificateException {
// Flag that indicates if certificates of the remote server should be validated. Disabling // Flag that indicates if certificates of the remote server should be validated. Disabling
// certificate validation is not recommended for production environments. // certificate validation is not recommended for production environments.
...@@ -172,6 +174,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager { ...@@ -172,6 +174,7 @@ public class ClearspaceX509TrustManager implements X509TrustManager {
/** /**
* @see javax.net.ssl.X509TrustManager#getAcceptedIssuers() * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
*/ */
@Override
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
if (getBooleanProperty("clearspace.certificate.accept-selfsigned", false)) { if (getBooleanProperty("clearspace.certificate.accept-selfsigned", false)) {
// Answer an empty list since we accept any issuer // Answer an empty list since we accept any issuer
......
...@@ -90,6 +90,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory { ...@@ -90,6 +90,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory {
/** /**
* @see SecureProtocolSocketFactory#createSocket(java.lang.String,int,java.net.InetAddress,int) * @see SecureProtocolSocketFactory#createSocket(java.lang.String,int,java.net.InetAddress,int)
*/ */
@Override
public Socket createSocket( public Socket createSocket(
String host, String host,
int port, int port,
...@@ -124,6 +125,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory { ...@@ -124,6 +125,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory {
* @throws UnknownHostException if the IP address of the host cannot be * @throws UnknownHostException if the IP address of the host cannot be
* determined * determined
*/ */
@Override
public Socket createSocket( public Socket createSocket(
final String host, final String host,
final int port, final int port,
...@@ -152,6 +154,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory { ...@@ -152,6 +154,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory {
/** /**
* @see org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory#createSocket(java.lang.String,int) * @see org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory#createSocket(java.lang.String,int)
*/ */
@Override
public Socket createSocket(String host, int port) public Socket createSocket(String host, int port)
throws IOException, UnknownHostException { throws IOException, UnknownHostException {
return getSSLContext(host).getSocketFactory().createSocket( return getSSLContext(host).getSocketFactory().createSocket(
...@@ -163,6 +166,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory { ...@@ -163,6 +166,7 @@ public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory {
/** /**
* @see org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean) * @see org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
*/ */
@Override
public Socket createSocket( public Socket createSocket(
Socket socket, Socket socket,
String host, String host,
......
...@@ -54,9 +54,13 @@ public class ClusterManager { ...@@ -54,9 +54,13 @@ public class ClusterManager {
static { static {
// Listen for clustering property changes (e.g. enabled/disabled) // Listen for clustering property changes (e.g. enabled/disabled)
PropertyEventDispatcher.addListener(new PropertyEventListener() { PropertyEventDispatcher.addListener(new PropertyEventListener() {
@Override
public void propertySet(String property, Map<String, Object> params) { /* ignore */ } public void propertySet(String property, Map<String, Object> params) { /* ignore */ }
@Override
public void propertyDeleted(String property, Map<String, Object> params) { /* ignore */ } public void propertyDeleted(String property, Map<String, Object> params) { /* ignore */ }
@Override
public void xmlPropertyDeleted(String property, Map<String, Object> params) { /* ignore */ } public void xmlPropertyDeleted(String property, Map<String, Object> params) { /* ignore */ }
@Override
public void xmlPropertySet(String property, Map<String, Object> params) { public void xmlPropertySet(String property, Map<String, Object> params) {
if (ClusterManager.CLUSTER_PROPERTY_NAME.equals(property)) { if (ClusterManager.CLUSTER_PROPERTY_NAME.equals(property)) {
if (Boolean.parseBoolean((String) params.get("value"))) { if (Boolean.parseBoolean((String) params.get("value"))) {
......
...@@ -47,10 +47,12 @@ public class GetBasicStatistics implements ClusterTask { ...@@ -47,10 +47,12 @@ public class GetBasicStatistics implements ClusterTask {
private Map<String, Object> values; private Map<String, Object> values;
@Override
public Object getResult() { public Object getResult() {
return values; return values;
} }
@Override
public void run() { public void run() {
SessionManager manager = SessionManager.getInstance(); SessionManager manager = SessionManager.getInstance();
values = new HashMap<String, Object>(); values = new HashMap<String, Object>();
...@@ -71,10 +73,12 @@ public class GetBasicStatistics implements ClusterTask { ...@@ -71,10 +73,12 @@ public class GetBasicStatistics implements ClusterTask {
values.put(MEMORY_MAX, maxMemory); values.put(MEMORY_MAX, maxMemory);
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
// Ignore // Ignore
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
// Ignore // Ignore
} }
......
...@@ -104,10 +104,12 @@ public class NodeID implements Externalizable { ...@@ -104,10 +104,12 @@ public class NodeID implements Externalizable {
return nodeID; return nodeID;
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeByteArray(out, nodeID); ExternalizableUtil.getInstance().writeByteArray(out, nodeID);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
nodeID = ExternalizableUtil.getInstance().readByteArray(in); nodeID = ExternalizableUtil.getInstance().readByteArray(in);
} }
......
...@@ -95,10 +95,12 @@ public class AdHocCommandHandler extends IQHandler ...@@ -95,10 +95,12 @@ public class AdHocCommandHandler extends IQHandler
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton(NAMESPACE).iterator(); return Collections.singleton(NAMESPACE).iterator();
} }
@Override
public Iterator<Element> getIdentities(String name, String node, JID senderJID) { public Iterator<Element> getIdentities(String name, String node, JID senderJID) {
Element identity = DocumentHelper.createElement("identity"); Element identity = DocumentHelper.createElement("identity");
identity.addAttribute("category", "automation"); identity.addAttribute("category", "automation");
...@@ -106,14 +108,17 @@ public class AdHocCommandHandler extends IQHandler ...@@ -106,14 +108,17 @@ public class AdHocCommandHandler extends IQHandler
return Collections.singleton(identity).iterator(); return Collections.singleton(identity).iterator();
} }
@Override
public Iterator<String> getFeatures(String name, String node, JID senderJID) { public Iterator<String> getFeatures(String name, String node, JID senderJID) {
return Arrays.asList(NAMESPACE, "jabber:x:data").iterator(); return Arrays.asList(NAMESPACE, "jabber:x:data").iterator();
} }
@Override
public DataForm getExtendedInfo(String name, String node, JID senderJID) { public DataForm getExtendedInfo(String name, String node, JID senderJID) {
return null; return null;
} }
@Override
public boolean hasInfo(String name, String node, JID senderJID) { public boolean hasInfo(String name, String node, JID senderJID) {
if (NAMESPACE.equals(node)) { if (NAMESPACE.equals(node)) {
return true; return true;
...@@ -125,6 +130,7 @@ public class AdHocCommandHandler extends IQHandler ...@@ -125,6 +130,7 @@ public class AdHocCommandHandler extends IQHandler
} }
} }
@Override
public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) { public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) {
List<DiscoItem> answer = new ArrayList<DiscoItem>(); List<DiscoItem> answer = new ArrayList<DiscoItem>();
if (!NAMESPACE.equals(node)) { if (!NAMESPACE.equals(node)) {
......
...@@ -127,6 +127,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -127,6 +127,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
} }
} }
@Override
public void addComponent(String subdomain, Component component) throws ComponentException { public void addComponent(String subdomain, Component component) throws ComponentException {
synchronized (routables) { synchronized (routables) {
RoutableComponents routable = routables.get(subdomain); RoutableComponents routable = routables.get(subdomain);
...@@ -205,6 +206,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -205,6 +206,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
* *
* @param subdomain the subdomain of the component's address. * @param subdomain the subdomain of the component's address.
*/ */
@Override
public void removeComponent(String subdomain) { public void removeComponent(String subdomain) {
RoutableComponents components = null; RoutableComponents components = null;
if (routables == null || (components = routables.get(subdomain)) == null) { if (routables == null || (components = routables.get(subdomain)) == null) {
...@@ -275,6 +277,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -275,6 +277,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
componentInfo.remove(componentJID.getDomain()); componentInfo.remove(componentJID.getDomain());
} }
@Override
public void sendPacket(Component component, Packet packet) { public void sendPacket(Component component, Packet packet) {
if (packet != null && packet.getFrom() == null) { if (packet != null && packet.getFrom() == null) {
throw new IllegalArgumentException("Packet with no FROM address was received from component."); throw new IllegalArgumentException("Packet with no FROM address was received from component.");
...@@ -286,13 +289,16 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -286,13 +289,16 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
} }
} }
@Override
public IQ query(Component component, IQ packet, long timeout) throws ComponentException { public IQ query(Component component, IQ packet, long timeout) throws ComponentException {
final LinkedBlockingQueue<IQ> answer = new LinkedBlockingQueue<IQ>(8); final LinkedBlockingQueue<IQ> answer = new LinkedBlockingQueue<IQ>(8);
XMPPServer.getInstance().getIQRouter().addIQResultListener(packet.getID(), new IQResultListener() { XMPPServer.getInstance().getIQRouter().addIQResultListener(packet.getID(), new IQResultListener() {
@Override
public void receivedAnswer(IQ packet) { public void receivedAnswer(IQ packet) {
answer.offer(packet); answer.offer(packet);
} }
@Override
public void answerTimeout(String packetId) { public void answerTimeout(String packetId) {
Log.warn("An answer to a previously sent IQ stanza was never received. Packet id: " + packetId); Log.warn("An answer to a previously sent IQ stanza was never received. Packet id: " + packetId);
} }
...@@ -307,6 +313,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -307,6 +313,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
return reply; return reply;
} }
@Override
public void query(Component component, IQ packet, IQResultListener listener) throws ComponentException { public void query(Component component, IQ packet, IQResultListener listener) throws ComponentException {
XMPPServer.getInstance().getIQRouter().addIQResultListener(packet.getID(), listener); XMPPServer.getInstance().getIQRouter().addIQResultListener(packet.getID(), listener);
sendPacket(component, packet); sendPacket(component, packet);
...@@ -343,14 +350,17 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -343,14 +350,17 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
listeners.remove(listener); listeners.remove(listener);
} }
@Override
public String getProperty(String name) { public String getProperty(String name) {
return JiveGlobals.getProperty(name); return JiveGlobals.getProperty(name);
} }
@Override
public void setProperty(String name, String value) { public void setProperty(String name, String value) {
//Ignore //Ignore
} }
@Override
public String getServerName() { public String getServerName() {
return serverDomain; return serverDomain;
} }
...@@ -359,6 +369,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -359,6 +369,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
return JiveGlobals.getHomeDirectory(); return JiveGlobals.getHomeDirectory();
} }
@Override
public boolean isExternalMode() { public boolean isExternalMode() {
return false; return false;
} }
...@@ -462,6 +473,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -462,6 +473,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
component.processPacket(iq); component.processPacket(iq);
} }
@Override
public JID getAddress() { public JID getAddress() {
return serviceAddress; return serviceAddress;
} }
...@@ -474,6 +486,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -474,6 +486,7 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
* *
* @param packet the packet to process. * @param packet the packet to process.
*/ */
@Override
public void process(Packet packet) throws PacketException { public void process(Packet packet) throws PacketException {
List<Component> components = getComponents(packet.getFrom()); List<Component> components = getComponents(packet.getFrom());
// Only process packets that were sent by registered components // Only process packets that were sent by registered components
...@@ -582,10 +595,12 @@ public class InternalComponentManager extends BasicModule implements ComponentMa ...@@ -582,10 +595,12 @@ public class InternalComponentManager extends BasicModule implements ComponentMa
return component; return component;
} }
@Override
public JID getAddress() { public JID getAddress() {
return jid; return jid;
} }
@Override
public void process(Packet packet) throws PacketException { public void process(Packet packet) throws PacketException {
Component component = getNextComponent(); Component component = getNextComponent();
component.processPacket(packet); component.processPacket(packet);
......
...@@ -46,20 +46,24 @@ public class NotifyComponentInfo implements ClusterTask { ...@@ -46,20 +46,24 @@ public class NotifyComponentInfo implements ClusterTask {
this.iq = iq; this.iq = iq;
} }
@Override
public Object getResult() { public Object getResult() {
return null; return null;
} }
@Override
public void run() { public void run() {
final InternalComponentManager manager = InternalComponentManager.getInstance(); final InternalComponentManager manager = InternalComponentManager.getInstance();
manager.addComponentInfo(iq); manager.addComponentInfo(iq);
manager.notifyComponentInfo(iq); manager.notifyComponentInfo(iq);
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSerializable(out, (DefaultElement) iq.getElement()); ExternalizableUtil.getInstance().writeSerializable(out, (DefaultElement) iq.getElement());
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
Element packetElement = (Element) ExternalizableUtil.getInstance().readSerializable(in); Element packetElement = (Element) ExternalizableUtil.getInstance().readSerializable(in);
iq = new IQ(packetElement, true); iq = new IQ(packetElement, true);
......
...@@ -44,18 +44,22 @@ public class NotifyComponentRegistered implements ClusterTask { ...@@ -44,18 +44,22 @@ public class NotifyComponentRegistered implements ClusterTask {
this.componentJID = componentJID; this.componentJID = componentJID;
} }
@Override
public Object getResult() { public Object getResult() {
return null; return null;
} }
@Override
public void run() { public void run() {
InternalComponentManager.getInstance().notifyComponentRegistered(componentJID); InternalComponentManager.getInstance().notifyComponentRegistered(componentJID);
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSerializable(out, componentJID); ExternalizableUtil.getInstance().writeSerializable(out, componentJID);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
componentJID = (JID) ExternalizableUtil.getInstance().readSerializable(in); componentJID = (JID) ExternalizableUtil.getInstance().readSerializable(in);
} }
......
...@@ -44,20 +44,24 @@ public class NotifyComponentUnregistered implements ClusterTask { ...@@ -44,20 +44,24 @@ public class NotifyComponentUnregistered implements ClusterTask {
this.componentJID = componentJID; this.componentJID = componentJID;
} }
@Override
public Object getResult() { public Object getResult() {
return null; return null;
} }
@Override
public void run() { public void run() {
final InternalComponentManager manager = InternalComponentManager.getInstance(); final InternalComponentManager manager = InternalComponentManager.getInstance();
manager.removeComponentInfo(componentJID); manager.removeComponentInfo(componentJID);
manager.notifyComponentUnregistered(componentJID); manager.notifyComponentUnregistered(componentJID);
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSerializable(out, componentJID); ExternalizableUtil.getInstance().writeSerializable(out, componentJID);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
componentJID = (JID) ExternalizableUtil.getInstance().readSerializable(in); componentJID = (JID) ExternalizableUtil.getInstance().readSerializable(in);
} }
......
...@@ -230,6 +230,7 @@ public class AdminConsolePlugin implements Plugin { ...@@ -230,6 +230,7 @@ public class AdminConsolePlugin implements Plugin {
adminServer = null; adminServer = null;
} }
@Override
public void initializePlugin(PluginManager manager, File pluginDir) { public void initializePlugin(PluginManager manager, File pluginDir) {
this.pluginDir = pluginDir; this.pluginDir = pluginDir;
...@@ -238,6 +239,7 @@ public class AdminConsolePlugin implements Plugin { ...@@ -238,6 +239,7 @@ public class AdminConsolePlugin implements Plugin {
startup(); startup();
} }
@Override
public void destroyPlugin() { public void destroyPlugin() {
shutdown(); shutdown();
} }
...@@ -388,6 +390,7 @@ public class AdminConsolePlugin implements Plugin { ...@@ -388,6 +390,7 @@ public class AdminConsolePlugin implements Plugin {
*/ */
private class CertificateListener implements CertificateEventListener { private class CertificateListener implements CertificateEventListener {
@Override
public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) { public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) {
// If new certificate is RSA then (re)start the HTTPS service // If new certificate is RSA then (re)start the HTTPS service
if ("RSA".equals(cert.getPublicKey().getAlgorithm())) { if ("RSA".equals(cert.getPublicKey().getAlgorithm())) {
...@@ -395,10 +398,12 @@ public class AdminConsolePlugin implements Plugin { ...@@ -395,10 +398,12 @@ public class AdminConsolePlugin implements Plugin {
} }
} }
@Override
public void certificateDeleted(KeyStore keyStore, String alias) { public void certificateDeleted(KeyStore keyStore, String alias) {
restartNeeded = true; restartNeeded = true;
} }
@Override
public void certificateSigned(KeyStore keyStore, String alias, public void certificateSigned(KeyStore keyStore, String alias,
List<X509Certificate> certificates) { List<X509Certificate> certificates) {
// If new certificate is RSA then (re)start the HTTPS service // If new certificate is RSA then (re)start the HTTPS service
......
...@@ -54,6 +54,7 @@ public class BasicModule implements Module { ...@@ -54,6 +54,7 @@ public class BasicModule implements Module {
* *
* @return The name of the module * @return The name of the module
*/ */
@Override
public String getName() { public String getName() {
return name; return name;
} }
...@@ -65,6 +66,7 @@ public class BasicModule implements Module { ...@@ -65,6 +66,7 @@ public class BasicModule implements Module {
* *
* @param server the server hosting this module. * @param server the server hosting this module.
*/ */
@Override
public void initialize(XMPPServer server) { public void initialize(XMPPServer server) {
} }
...@@ -76,6 +78,7 @@ public class BasicModule implements Module { ...@@ -76,6 +78,7 @@ public class BasicModule implements Module {
* @throws IllegalStateException If start is called before initialize * @throws IllegalStateException If start is called before initialize
* successfully returns * successfully returns
*/ */
@Override
public void start() throws IllegalStateException { public void start() throws IllegalStateException {
} }
...@@ -84,6 +87,7 @@ public class BasicModule implements Module { ...@@ -84,6 +87,7 @@ public class BasicModule implements Module {
* <p>Inheriting classes that choose to override this method MUST * <p>Inheriting classes that choose to override this method MUST
* call this stop() method before accessing BasicModule resources.</p> * call this stop() method before accessing BasicModule resources.</p>
*/ */
@Override
public void stop() { public void stop() {
} }
...@@ -91,6 +95,7 @@ public class BasicModule implements Module { ...@@ -91,6 +95,7 @@ public class BasicModule implements Module {
* <p>Destroys the module.</p> * <p>Destroys the module.</p>
* <p>Does nothing in the basic module.</p> * <p>Does nothing in the basic module.</p>
*/ */
@Override
public void destroy() { public void destroy() {
} }
} }
\ No newline at end of file
...@@ -48,10 +48,12 @@ public class GetAdminConsoleInfoTask implements ClusterTask { ...@@ -48,10 +48,12 @@ public class GetAdminConsoleInfoTask implements ClusterTask {
private String adminSecret; private String adminSecret;
@Override
public Object getResult() { public Object getResult() {
return this; return this;
} }
@Override
public void run() { public void run() {
PluginManager pluginManager = XMPPServer.getInstance().getPluginManager(); PluginManager pluginManager = XMPPServer.getInstance().getPluginManager();
AdminConsolePlugin adminConsolePlugin = ((AdminConsolePlugin) pluginManager.getPlugin("admin")); AdminConsolePlugin adminConsolePlugin = ((AdminConsolePlugin) pluginManager.getPlugin("admin"));
...@@ -110,6 +112,7 @@ public class GetAdminConsoleInfoTask implements ClusterTask { ...@@ -110,6 +112,7 @@ public class GetAdminConsoleInfoTask implements ClusterTask {
return adminSecret; return adminSecret;
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeInt(out, adminPort); ExternalizableUtil.getInstance().writeInt(out, adminPort);
ExternalizableUtil.getInstance().writeInt(out, adminSecurePort); ExternalizableUtil.getInstance().writeInt(out, adminSecurePort);
...@@ -120,6 +123,7 @@ public class GetAdminConsoleInfoTask implements ClusterTask { ...@@ -120,6 +123,7 @@ public class GetAdminConsoleInfoTask implements ClusterTask {
ExternalizableUtil.getInstance().writeSafeUTF(out, adminSecret); ExternalizableUtil.getInstance().writeSafeUTF(out, adminSecret);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
adminPort = ExternalizableUtil.getInstance().readInt(in); adminPort = ExternalizableUtil.getInstance().readInt(in);
adminSecurePort = ExternalizableUtil.getInstance().readInt(in); adminSecurePort = ExternalizableUtil.getInstance().readInt(in);
......
...@@ -47,18 +47,22 @@ public class IsPluginInstalledTask implements ClusterTask { ...@@ -47,18 +47,22 @@ public class IsPluginInstalledTask implements ClusterTask {
this.pluginName = pluginName; this.pluginName = pluginName;
} }
@Override
public Object getResult() { public Object getResult() {
return installed; return installed;
} }
@Override
public void run() { public void run() {
installed = XMPPServer.getInstance().getPluginManager().getPlugin(pluginName) != null; installed = XMPPServer.getInstance().getPluginManager().getPlugin(pluginName) != null;
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSafeUTF(out, pluginName); ExternalizableUtil.getInstance().writeSafeUTF(out, pluginName);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
pluginName = ExternalizableUtil.getInstance().readSafeUTF(in); pluginName = ExternalizableUtil.getInstance().readSafeUTF(in);
} }
......
...@@ -534,6 +534,7 @@ public class PluginClassLoader extends URLClassLoader { ...@@ -534,6 +534,7 @@ public class PluginClassLoader extends URLClassLoader {
// Add lib directory to classpath. // Add lib directory to classpath.
File libDir = new File(directory, "lib"); File libDir = new File(directory, "lib");
File[] jars = libDir.listFiles(new FilenameFilter() { File[] jars = libDir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) { public boolean accept(File dir, String name) {
return name.endsWith(".jar") || name.endsWith(".zip"); return name.endsWith(".jar") || name.endsWith(".zip");
} }
......
...@@ -946,6 +946,7 @@ public class PluginManager { ...@@ -946,6 +946,7 @@ public class PluginManager {
*/ */
private boolean firstRun = true; private boolean firstRun = true;
@Override
public void run() { public void run() {
// If the task is already running, return. // If the task is already running, return.
synchronized (this) { synchronized (this) {
...@@ -970,6 +971,7 @@ public class PluginManager { ...@@ -970,6 +971,7 @@ public class PluginManager {
} }
File[] jars = pluginDirectory.listFiles(new FileFilter() { File[] jars = pluginDirectory.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) { public boolean accept(File pathname) {
String fileName = pathname.getName().toLowerCase(); String fileName = pathname.getName().toLowerCase();
return (fileName.endsWith(".jar") || fileName.endsWith(".war")); return (fileName.endsWith(".jar") || fileName.endsWith(".war"));
...@@ -1014,6 +1016,7 @@ public class PluginManager { ...@@ -1014,6 +1016,7 @@ public class PluginManager {
} }
File[] dirs = pluginDirectory.listFiles(new FileFilter() { File[] dirs = pluginDirectory.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) { public boolean accept(File pathname) {
return pathname.isDirectory(); return pathname.isDirectory();
} }
...@@ -1022,6 +1025,7 @@ public class PluginManager { ...@@ -1022,6 +1025,7 @@ public class PluginManager {
// Sort the list of directories so that the "admin" plugin is always // Sort the list of directories so that the "admin" plugin is always
// first in the list. // first in the list.
Arrays.sort(dirs, new Comparator<File>() { Arrays.sort(dirs, new Comparator<File>() {
@Override
public int compare(File file1, File file2) { public int compare(File file1, File file2) {
if (file1.getName().equals("admin")) { if (file1.getName().equals("admin")) {
return -1; return -1;
...@@ -1148,6 +1152,7 @@ public class PluginManager { ...@@ -1148,6 +1152,7 @@ public class PluginManager {
// first. // first.
List<String> children = new ArrayList<String>(Arrays.asList(childDirs)); List<String> children = new ArrayList<String>(Arrays.asList(childDirs));
Collections.sort(children, new Comparator<String>() { Collections.sort(children, new Comparator<String>() {
@Override
public int compare(String o1, String o2) { public int compare(String o1, String o2) {
if (o1.equals("lib")) { if (o1.equals("lib")) {
return -1; return -1;
......
...@@ -37,6 +37,7 @@ public class CrowdAdminProvider implements AdminProvider { ...@@ -37,6 +37,7 @@ public class CrowdAdminProvider implements AdminProvider {
private static final Logger LOG = LoggerFactory.getLogger(CrowdAdminProvider.class); private static final Logger LOG = LoggerFactory.getLogger(CrowdAdminProvider.class);
private static final String JIVE_AUTHORIZED_GROUPS = "admin.authorizedGroups"; private static final String JIVE_AUTHORIZED_GROUPS = "admin.authorizedGroups";
@Override
public List<JID> getAdmins() { public List<JID> getAdmins() {
List<JID> results = new ArrayList<JID>(); List<JID> results = new ArrayList<JID>();
...@@ -76,10 +77,12 @@ public class CrowdAdminProvider implements AdminProvider { ...@@ -76,10 +77,12 @@ public class CrowdAdminProvider implements AdminProvider {
return results; return results;
} }
@Override
public void setAdmins(List<JID> admins) { public void setAdmins(List<JID> admins) {
return; return;
} }
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return true; return true;
} }
......
...@@ -43,10 +43,12 @@ public class CrowdAuthProvider implements AuthProvider { ...@@ -43,10 +43,12 @@ public class CrowdAuthProvider implements AuthProvider {
} }
} }
@Override
public boolean isPlainSupported() { public boolean isPlainSupported() {
return true; return true;
} }
@Override
public boolean isDigestSupported() { public boolean isDigestSupported() {
return false; return false;
} }
...@@ -65,6 +67,7 @@ public class CrowdAuthProvider implements AuthProvider { ...@@ -65,6 +67,7 @@ public class CrowdAuthProvider implements AuthProvider {
* @throws ConnectionException it there is a problem connecting to user and group sytem * @throws ConnectionException it there is a problem connecting to user and group sytem
* @throws InternalUnauthenticatedException if there is a problem authentication Openfire itself into the user and group system * @throws InternalUnauthenticatedException if there is a problem authentication Openfire itself into the user and group system
*/ */
@Override
public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException { public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
if (manager == null) { if (manager == null) {
throw new ConnectionException("Unable to connect to Crowd"); throw new ConnectionException("Unable to connect to Crowd");
...@@ -93,18 +96,22 @@ public class CrowdAuthProvider implements AuthProvider { ...@@ -93,18 +96,22 @@ public class CrowdAuthProvider implements AuthProvider {
} }
} }
@Override
public void authenticate(String username, String token, String digest) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException { public void authenticate(String username, String token, String digest) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
throw new UnsupportedOperationException("XMPP digest authentication not supported by this version of authentication provider"); throw new UnsupportedOperationException("XMPP digest authentication not supported by this version of authentication provider");
} }
@Override
public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException { public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException {
throw new UnsupportedOperationException("Retrieve password not supported by this version of authentication provider"); throw new UnsupportedOperationException("Retrieve password not supported by this version of authentication provider");
} }
@Override
public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException { public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException {
throw new UnsupportedOperationException("Setting password not implemented by this version of authentication provider"); throw new UnsupportedOperationException("Setting password not implemented by this version of authentication provider");
} }
@Override
public boolean supportsPasswordRetrieval() { public boolean supportsPasswordRetrieval() {
return false; return false;
} }
......
...@@ -85,6 +85,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -85,6 +85,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
groupCache.setMaxLifetime(ttl * 1000); // msecs instead of sec - see Cache API groupCache.setMaxLifetime(ttl * 1000); // msecs instead of sec - see Cache API
} }
@Override
public Group getGroup(String name) throws GroupNotFoundException { public Group getGroup(String name) throws GroupNotFoundException {
try { try {
Cache<String, org.jivesoftware.openfire.crowd.jaxb.Group> groupCache = CacheFactory.createLocalCache(GROUP_CACHE_NAME); Cache<String, org.jivesoftware.openfire.crowd.jaxb.Group> groupCache = CacheFactory.createLocalCache(GROUP_CACHE_NAME);
...@@ -130,6 +131,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -130,6 +131,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public Collection<String> getGroupNames(JID user) { public Collection<String> getGroupNames(JID user) {
Cache<JID, Collection<String>> userMembershipCache = CacheFactory.createCache(USER_MEMBERSHIP_CACHE_NAME); Cache<JID, Collection<String>> userMembershipCache = CacheFactory.createCache(USER_MEMBERSHIP_CACHE_NAME);
Collection<String> groups = userMembershipCache.get(user); Collection<String> groups = userMembershipCache.get(user);
...@@ -149,6 +151,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -149,6 +151,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public int getGroupCount() { public int getGroupCount() {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -158,6 +161,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -158,6 +161,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> getGroupNames() { public Collection<String> getGroupNames() {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -167,6 +171,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -167,6 +171,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> getGroupNames(int startIndex, int numResults) { public Collection<String> getGroupNames(int startIndex, int numResults) {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -182,6 +187,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -182,6 +187,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> search(String query) { public Collection<String> search(String query) {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -211,6 +217,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -211,6 +217,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public Collection<String> search(String query, int startIndex, int numResults) { public Collection<String> search(String query, int startIndex, int numResults) {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -232,10 +239,12 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -232,10 +239,12 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
/** /**
* Modifying group not implemented - read-only for now * Modifying group not implemented - read-only for now
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return true; return true;
} }
@Override
public boolean isSearchSupported() { public boolean isSearchSupported() {
return true; return true;
} }
...@@ -257,6 +266,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider { ...@@ -257,6 +266,7 @@ public class CrowdGroupProvider extends AbstractGroupProvider {
static class GroupSynch implements Runnable { static class GroupSynch implements Runnable {
@Override
public void run() { public void run() {
LOG.info("running synch with crowd..."); LOG.info("running synch with crowd...");
CrowdManager manager = null; CrowdManager manager = null;
......
...@@ -72,6 +72,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -72,6 +72,7 @@ public class CrowdUserProvider implements UserProvider {
new CrowdGroupProvider(); new CrowdGroupProvider();
} }
@Override
public User loadUser(String username) throws UserNotFoundException { public User loadUser(String username) throws UserNotFoundException {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -96,6 +97,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -96,6 +97,7 @@ public class CrowdUserProvider implements UserProvider {
} }
@Override
public int getUserCount() { public int getUserCount() {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -105,6 +107,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -105,6 +107,7 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public Collection<User> getUsers() { public Collection<User> getUsers() {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -118,6 +121,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -118,6 +121,7 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public Collection<String> getUsernames() { public Collection<String> getUsernames() {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -127,6 +131,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -127,6 +131,7 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public Collection<User> getUsers(int startIndex, int numResults) { public Collection<User> getUsers(int startIndex, int numResults) {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -142,10 +147,12 @@ public class CrowdUserProvider implements UserProvider { ...@@ -142,10 +147,12 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public Set<String> getSearchFields() throws UnsupportedOperationException { public Set<String> getSearchFields() throws UnsupportedOperationException {
return SEARCH_FIELDS; return SEARCH_FIELDS;
} }
@Override
public Collection<User> findUsers(Set<String> fields, String query) throws UnsupportedOperationException { public Collection<User> findUsers(Set<String> fields, String query) throws UnsupportedOperationException {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -194,6 +201,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -194,6 +201,7 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public Collection<User> findUsers(Set<String> fields, String query, int startIndex, int numResults) throws UnsupportedOperationException { public Collection<User> findUsers(Set<String> fields, String query, int startIndex, int numResults) throws UnsupportedOperationException {
lock.readLock().lock(); lock.readLock().lock();
try { try {
...@@ -212,14 +220,17 @@ public class CrowdUserProvider implements UserProvider { ...@@ -212,14 +220,17 @@ public class CrowdUserProvider implements UserProvider {
} }
} }
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return true; return true;
} }
@Override
public boolean isNameRequired() { public boolean isNameRequired() {
return false; return false;
} }
@Override
public boolean isEmailRequired() { public boolean isEmailRequired() {
return false; return false;
} }
...@@ -233,26 +244,32 @@ public class CrowdUserProvider implements UserProvider { ...@@ -233,26 +244,32 @@ public class CrowdUserProvider implements UserProvider {
* Not implemented methods * Not implemented methods
*/ */
@Override
public User createUser(String username, String password, String name, String email) throws UserAlreadyExistsException { public User createUser(String username, String password, String name, String email) throws UserAlreadyExistsException {
throw new UnsupportedOperationException("Create new user not implemented by this version of user provider"); throw new UnsupportedOperationException("Create new user not implemented by this version of user provider");
} }
@Override
public void deleteUser(String username) { public void deleteUser(String username) {
throw new UnsupportedOperationException("Delete a user not implemented by this version of user provider"); throw new UnsupportedOperationException("Delete a user not implemented by this version of user provider");
} }
@Override
public void setName(String username, String name) throws UserNotFoundException { public void setName(String username, String name) throws UserNotFoundException {
throw new UnsupportedOperationException("Setting user name not implemented by this version of user provider"); throw new UnsupportedOperationException("Setting user name not implemented by this version of user provider");
} }
@Override
public void setEmail(String username, String email) throws UserNotFoundException { public void setEmail(String username, String email) throws UserNotFoundException {
throw new UnsupportedOperationException("Setting user email not implemented by this version of user provider"); throw new UnsupportedOperationException("Setting user email not implemented by this version of user provider");
} }
@Override
public void setCreationDate(String username, Date creationDate) throws UserNotFoundException { public void setCreationDate(String username, Date creationDate) throws UserNotFoundException {
throw new UnsupportedOperationException("Setting user creation date unsupported by this version of user provider"); throw new UnsupportedOperationException("Setting user creation date unsupported by this version of user provider");
} }
@Override
public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException { public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException {
throw new UnsupportedOperationException("Setting user modification date unsupported by this version of user provider"); throw new UnsupportedOperationException("Setting user modification date unsupported by this version of user provider");
} }
...@@ -268,6 +285,7 @@ public class CrowdUserProvider implements UserProvider { ...@@ -268,6 +285,7 @@ public class CrowdUserProvider implements UserProvider {
this.userProvider = userProvider; this.userProvider = userProvider;
} }
@Override
public void run() { public void run() {
LOG.info("running synch with crowd..."); LOG.info("running synch with crowd...");
CrowdManager manager = null; CrowdManager manager = null;
......
...@@ -167,6 +167,7 @@ public class DiscoItem implements Result { ...@@ -167,6 +167,7 @@ public class DiscoItem implements Result {
* *
* @see org.jivesoftware.util.resultsetmanager.Result#getUID() * @see org.jivesoftware.util.resultsetmanager.Result#getUID()
*/ */
@Override
public String getUID() { public String getUID() {
final StringBuilder sb = new StringBuilder(jid.toString()); final StringBuilder sb = new StringBuilder(jid.toString());
if (name != null) { if (name != null) {
......
...@@ -344,20 +344,24 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -344,20 +344,24 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
ClusterManager.addListener(this); ClusterManager.addListener(this);
} }
@Override
public void joinedCluster() { public void joinedCluster() {
restoreCacheContent(); restoreCacheContent();
} }
@Override
public void joinedCluster(byte[] nodeID) { public void joinedCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void leftCluster() { public void leftCluster() {
if (!XMPPServer.getInstance().isShuttingDown()) { if (!XMPPServer.getInstance().isShuttingDown()) {
restoreCacheContent(); restoreCacheContent();
} }
} }
@Override
public void leftCluster(byte[] nodeID) { public void leftCluster(byte[] nodeID) {
if (ClusterManager.isSeniorClusterMember()) { if (ClusterManager.isSeniorClusterMember()) {
NodeID leftNode = NodeID.getInstance(nodeID); NodeID leftNode = NodeID.getInstance(nodeID);
...@@ -384,6 +388,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -384,6 +388,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
} }
} }
@Override
public void markedAsSeniorClusterMember() { public void markedAsSeniorClusterMember() {
// Do nothing // Do nothing
} }
...@@ -417,6 +422,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -417,6 +422,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
return new DiscoInfoProvider() { return new DiscoInfoProvider() {
final ArrayList<Element> identities = new ArrayList<Element>(); final ArrayList<Element> identities = new ArrayList<Element>();
@Override
public Iterator<Element> getIdentities(String name, String node, JID senderJID) { public Iterator<Element> getIdentities(String name, String node, JID senderJID) {
if (node != null && serverNodeProviders.get(node) != null) { if (node != null && serverNodeProviders.get(node) != null) {
// Redirect the request to the disco info provider of the specified node // Redirect the request to the disco info provider of the specified node
...@@ -455,6 +461,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -455,6 +461,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
} }
} }
@Override
public Iterator<String> getFeatures(String name, String node, JID senderJID) { public Iterator<String> getFeatures(String name, String node, JID senderJID) {
if (node != null && serverNodeProviders.get(node) != null) { if (node != null && serverNodeProviders.get(node) != null) {
// Redirect the request to the disco info provider of the specified node // Redirect the request to the disco info provider of the specified node
...@@ -470,6 +477,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -470,6 +477,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
} }
} }
@Override
public boolean hasInfo(String name, String node, JID senderJID) { public boolean hasInfo(String name, String node, JID senderJID) {
if (node != null) { if (node != null) {
if (serverNodeProviders.get(node) != null) { if (serverNodeProviders.get(node) != null) {
...@@ -490,6 +498,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene ...@@ -490,6 +498,7 @@ public class IQDiscoInfoHandler extends IQHandler implements ClusterEventListene
} }
} }
@Override
public DataForm getExtendedInfo(String name, String node, JID senderJID) { public DataForm getExtendedInfo(String name, String node, JID senderJID) {
if (node != null && serverNodeProviders.get(node) != null) { if (node != null && serverNodeProviders.get(node) != null) {
// Redirect the request to the disco info provider of the specified node // Redirect the request to the disco info provider of the specified node
......
...@@ -412,24 +412,29 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv ...@@ -412,24 +412,29 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv
} }
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton(NAMESPACE_DISCO_ITEMS).iterator(); return Collections.singleton(NAMESPACE_DISCO_ITEMS).iterator();
} }
@Override
public void joinedCluster() { public void joinedCluster() {
restoreCacheContent(); restoreCacheContent();
} }
@Override
public void joinedCluster(byte[] nodeID) { public void joinedCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void leftCluster() { public void leftCluster() {
if (!XMPPServer.getInstance().isShuttingDown()) { if (!XMPPServer.getInstance().isShuttingDown()) {
restoreCacheContent(); restoreCacheContent();
} }
} }
@Override
public void leftCluster(byte[] nodeID) { public void leftCluster(byte[] nodeID) {
if (ClusterManager.isSeniorClusterMember()) { if (ClusterManager.isSeniorClusterMember()) {
NodeID leftNode = NodeID.getInstance(nodeID); NodeID leftNode = NodeID.getInstance(nodeID);
...@@ -456,6 +461,7 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv ...@@ -456,6 +461,7 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv
} }
} }
@Override
public void markedAsSeniorClusterMember() { public void markedAsSeniorClusterMember() {
// Do nothing // Do nothing
} }
...@@ -485,6 +491,7 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv ...@@ -485,6 +491,7 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv
private DiscoItemsProvider getServerItemsProvider() { private DiscoItemsProvider getServerItemsProvider() {
return new DiscoItemsProvider() { return new DiscoItemsProvider() {
@Override
public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) { public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) {
if (node != null) { if (node != null) {
// Check if there is a provider for the requested node // Check if there is a provider for the requested node
...@@ -538,17 +545,20 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv ...@@ -538,17 +545,20 @@ public class IQDiscoItemsHandler extends IQHandler implements ServerFeaturesProv
public ClusteredServerItem() { public ClusteredServerItem() {
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSerializable(out, (DefaultElement) element); ExternalizableUtil.getInstance().writeSerializable(out, (DefaultElement) element);
ExternalizableUtil.getInstance().writeExternalizableCollection(out, nodes); ExternalizableUtil.getInstance().writeExternalizableCollection(out, nodes);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
element = (Element) ExternalizableUtil.getInstance().readSerializable(in); element = (Element) ExternalizableUtil.getInstance().readSerializable(in);
ExternalizableUtil.getInstance().readExternalizableCollection(in, nodes, getClass().getClassLoader()); ExternalizableUtil.getInstance().readExternalizableCollection(in, nodes, getClass().getClassLoader());
} }
} }
@Override
public Iterator<Element> getUserItems(String name, JID senderJID) { public Iterator<Element> getUserItems(String name, JID senderJID) {
List<Element> answer = new ArrayList<Element>(); List<Element> answer = new ArrayList<Element>();
try { try {
......
...@@ -125,18 +125,21 @@ public class EntityCapabilities implements Cacheable, Externalizable { ...@@ -125,18 +125,21 @@ public class EntityCapabilities implements Cacheable, Externalizable {
return this.hashAttribute; return this.hashAttribute;
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
ExternalizableUtil.getInstance().readStrings(in, identities); ExternalizableUtil.getInstance().readStrings(in, identities);
ExternalizableUtil.getInstance().readStrings(in, features); ExternalizableUtil.getInstance().readStrings(in, features);
verAttribute = ExternalizableUtil.getInstance().readSafeUTF(in); verAttribute = ExternalizableUtil.getInstance().readSafeUTF(in);
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeStrings(out, identities); ExternalizableUtil.getInstance().writeStrings(out, identities);
ExternalizableUtil.getInstance().writeStrings(out, features); ExternalizableUtil.getInstance().writeStrings(out, features);
ExternalizableUtil.getInstance().writeSafeUTF(out, verAttribute); ExternalizableUtil.getInstance().writeSafeUTF(out, verAttribute);
} }
@Override
public int getCachedSize() throws CannotCalculateSizeException { public int getCachedSize() throws CannotCalculateSizeException {
int size = CacheSizes.sizeOfCollection(identities); int size = CacheSizes.sizeOfCollection(identities);
size += CacheSizes.sizeOfCollection(features); size += CacheSizes.sizeOfCollection(features);
......
...@@ -277,12 +277,14 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis ...@@ -277,12 +277,14 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis
return StringUtils.encodeBase64(StringUtils.decodeHex(hashed)); return StringUtils.encodeBase64(StringUtils.decodeHex(hashed));
} }
@Override
public void answerTimeout(String packetId) { public void answerTimeout(String packetId) {
// If we never received an answer, we can discard the cached // If we never received an answer, we can discard the cached
// 'ver' attribute. // 'ver' attribute.
verAttributes.remove(packetId); verAttributes.remove(packetId);
} }
@Override
public void receivedAnswer(IQ packet) { public void receivedAnswer(IQ packet) {
String packetId = packet.getID(); String packetId = packet.getID();
...@@ -451,6 +453,7 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis ...@@ -451,6 +453,7 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis
return results; return results;
} }
@Override
public void userDeleting(User user, Map<String, Object> params) { public void userDeleting(User user, Map<String, Object> params) {
// Delete this user's association in entityCapabilitiesUserMap. // Delete this user's association in entityCapabilitiesUserMap.
JID jid = XMPPServer.getInstance().createJID(user.getUsername(), null, true); JID jid = XMPPServer.getInstance().createJID(user.getUsername(), null, true);
...@@ -470,10 +473,12 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis ...@@ -470,10 +473,12 @@ public class EntityCapabilitiesManager implements IQResultListener, UserEventLis
entityCapabilitiesMap.remove(verHashOfUser); entityCapabilitiesMap.remove(verHashOfUser);
} }
@Override
public void userCreated(User user, Map<String, Object> params) { public void userCreated(User user, Map<String, Object> params) {
// Do nothing. // Do nothing.
} }
@Override
public void userModified(User user, Map<String, Object> params) { public void userModified(User user, Map<String, Object> params) {
// Do nothing. // Do nothing.
} }
......
...@@ -28,12 +28,15 @@ import java.util.Map; ...@@ -28,12 +28,15 @@ import java.util.Map;
* The methods in this class are empty. This class exists as convenience for creating listener objects. * The methods in this class are empty. This class exists as convenience for creating listener objects.
*/ */
public class UserEventAdapter implements UserEventListener { public class UserEventAdapter implements UserEventListener {
@Override
public void userCreated(User user, Map params) { public void userCreated(User user, Map params) {
} }
@Override
public void userDeleting(User user, Map params) { public void userDeleting(User user, Map params) {
} }
@Override
public void userModified(User user, Map params) { public void userModified(User user, Map params) {
} }
} }
...@@ -99,6 +99,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -99,6 +99,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
return null; return null;
} }
@Override
public boolean acceptIncomingFileTransferRequest(FileTransfer transfer) public boolean acceptIncomingFileTransferRequest(FileTransfer transfer)
throws FileTransferRejectedException throws FileTransferRejectedException
{ {
...@@ -113,6 +114,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -113,6 +114,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
return false; return false;
} }
@Override
public void registerProxyTransfer(String transferDigest, ProxyTransfer proxyTransfer) public void registerProxyTransfer(String transferDigest, ProxyTransfer proxyTransfer)
throws UnauthorizedException throws UnauthorizedException
{ {
...@@ -210,6 +212,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -210,6 +212,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
* Interceptor to grab and validate file transfer meta information. * Interceptor to grab and validate file transfer meta information.
*/ */
private class MetaFileTransferInterceptor implements PacketInterceptor { private class MetaFileTransferInterceptor implements PacketInterceptor {
@Override
public void interceptPacket(Packet packet, Session session, boolean incoming, public void interceptPacket(Packet packet, Session session, boolean incoming,
boolean processed) boolean processed)
throws PacketRejectedException throws PacketRejectedException
......
...@@ -111,6 +111,7 @@ public class FileTransfer implements Cacheable, Serializable { ...@@ -111,6 +111,7 @@ public class FileTransfer implements Cacheable, Serializable {
this.progress = progress; this.progress = progress;
} }
@Override
public int getCachedSize() { public int getCachedSize() {
// Approximate the size of the object in bytes by calculating the size // Approximate the size of the object in bytes by calculating the size
// of each field. // of each field.
......
...@@ -57,59 +57,73 @@ public class DefaultProxyTransfer implements ProxyTransfer { ...@@ -57,59 +57,73 @@ public class DefaultProxyTransfer implements ProxyTransfer {
public DefaultProxyTransfer() { } public DefaultProxyTransfer() { }
@Override
public String getInitiator() { public String getInitiator() {
return initiator; return initiator;
} }
@Override
public void setInitiator(String initiator) { public void setInitiator(String initiator) {
this.initiator = initiator; this.initiator = initiator;
} }
@Override
public InputStream getInputStream() { public InputStream getInputStream() {
return inputStream; return inputStream;
} }
@Override
public void setInputStream(InputStream initiatorInputStream) { public void setInputStream(InputStream initiatorInputStream) {
this.inputStream = initiatorInputStream; this.inputStream = initiatorInputStream;
} }
@Override
public OutputStream getOutputStream() { public OutputStream getOutputStream() {
return outputStream; return outputStream;
} }
@Override
public void setOutputStream(OutputStream outputStream) { public void setOutputStream(OutputStream outputStream) {
this.outputStream = outputStream; this.outputStream = outputStream;
} }
@Override
public String getTarget() { public String getTarget() {
return target; return target;
} }
@Override
public void setTarget(String target) { public void setTarget(String target) {
this.target = target; this.target = target;
} }
@Override
public String getTransferDigest() { public String getTransferDigest() {
return transferDigest; return transferDigest;
} }
@Override
public void setTransferDigest(String transferDigest) { public void setTransferDigest(String transferDigest) {
this.transferDigest = transferDigest; this.transferDigest = transferDigest;
} }
@Override
public String getSessionID() { public String getSessionID() {
return streamID; return streamID;
} }
@Override
public void setSessionID(String streamID) { public void setSessionID(String streamID) {
this.streamID = streamID; this.streamID = streamID;
} }
@Override
public boolean isActivatable() { public boolean isActivatable() {
return ((inputStream != null) && (outputStream != null)); return ((inputStream != null) && (outputStream != null));
} }
@Override
public synchronized void setTransferFuture(Future<?> future) { public synchronized void setTransferFuture(Future<?> future) {
if(this.future != null) { if(this.future != null) {
throw new IllegalStateException("Transfer is already in progress, or has completed."); throw new IllegalStateException("Transfer is already in progress, or has completed.");
...@@ -117,10 +131,12 @@ public class DefaultProxyTransfer implements ProxyTransfer { ...@@ -117,10 +131,12 @@ public class DefaultProxyTransfer implements ProxyTransfer {
this.future = future; this.future = future;
} }
@Override
public long getAmountTransferred() { public long getAmountTransferred() {
return amountWritten; return amountWritten;
} }
@Override
public void doTransfer() throws IOException { public void doTransfer() throws IOException {
if (!isActivatable()) { if (!isActivatable()) {
throw new IOException("Transfer missing party"); throw new IOException("Transfer missing party");
...@@ -146,6 +162,7 @@ public class DefaultProxyTransfer implements ProxyTransfer { ...@@ -146,6 +162,7 @@ public class DefaultProxyTransfer implements ProxyTransfer {
} }
} }
@Override
public int getCachedSize() { public int getCachedSize() {
// Approximate the size of the object in bytes by calculating the size // Approximate the size of the object in bytes by calculating the size
// of each field. // of each field.
......
...@@ -301,10 +301,12 @@ public class FileTransferProxy extends BasicModule ...@@ -301,10 +301,12 @@ public class FileTransferProxy extends BasicModule
return proxyServiceName + "." + XMPPServer.getInstance().getServerInfo().getXMPPDomain(); return proxyServiceName + "." + XMPPServer.getInstance().getServerInfo().getXMPPDomain();
} }
@Override
public JID getAddress() { public JID getAddress() {
return new JID(null, getServiceDomain(), null); return new JID(null, getServiceDomain(), null);
} }
@Override
public Iterator<DiscoServerItem> getItems() { public Iterator<DiscoServerItem> getItems() {
if(!isEnabled()) { if(!isEnabled()) {
return Collections.emptyIterator(); return Collections.emptyIterator();
...@@ -317,6 +319,7 @@ public class FileTransferProxy extends BasicModule ...@@ -317,6 +319,7 @@ public class FileTransferProxy extends BasicModule
return Collections.singleton(item).iterator(); return Collections.singleton(item).iterator();
} }
@Override
public Iterator<Element> getIdentities(String name, String node, JID senderJID) { public Iterator<Element> getIdentities(String name, String node, JID senderJID) {
// Answer the identity of the proxy // Answer the identity of the proxy
Element identity = DocumentHelper.createElement("identity"); Element identity = DocumentHelper.createElement("identity");
...@@ -327,24 +330,29 @@ public class FileTransferProxy extends BasicModule ...@@ -327,24 +330,29 @@ public class FileTransferProxy extends BasicModule
return Collections.singleton(identity).iterator(); return Collections.singleton(identity).iterator();
} }
@Override
public Iterator<String> getFeatures(String name, String node, JID senderJID) { public Iterator<String> getFeatures(String name, String node, JID senderJID) {
return Arrays.asList(FileTransferManager.NAMESPACE_BYTESTREAMS, return Arrays.asList(FileTransferManager.NAMESPACE_BYTESTREAMS,
"http://jabber.org/protocol/disco#info").iterator(); "http://jabber.org/protocol/disco#info").iterator();
} }
@Override
public DataForm getExtendedInfo(String name, String node, JID senderJID) { public DataForm getExtendedInfo(String name, String node, JID senderJID) {
return null; return null;
} }
@Override
public boolean hasInfo(String name, String node, JID senderJID) { public boolean hasInfo(String name, String node, JID senderJID) {
return true; return true;
} }
@Override
public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) { public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) {
// A proxy server has no items // A proxy server has no items
return new ArrayList<DiscoItem>().iterator(); return new ArrayList<DiscoItem>().iterator();
} }
@Override
public void process(Packet packet) throws UnauthorizedException, PacketException { public void process(Packet packet) throws UnauthorizedException, PacketException {
// Check if the packet is a disco request or a packet with namespace iq:register // Check if the packet is a disco request or a packet with namespace iq:register
if (packet instanceof IQ) { if (packet instanceof IQ) {
...@@ -361,6 +369,7 @@ public class FileTransferProxy extends BasicModule ...@@ -361,6 +369,7 @@ public class FileTransferProxy extends BasicModule
} }
private class FileTransferPropertyListener implements PropertyEventListener { private class FileTransferPropertyListener implements PropertyEventListener {
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
if(JIVEPROPERTY_PROXY_ENABLED.equalsIgnoreCase(property)) { if(JIVEPROPERTY_PROXY_ENABLED.equalsIgnoreCase(property)) {
Object value = params.get("value"); Object value = params.get("value");
...@@ -370,15 +379,18 @@ public class FileTransferProxy extends BasicModule ...@@ -370,15 +379,18 @@ public class FileTransferProxy extends BasicModule
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
if(JIVEPROPERTY_PROXY_ENABLED.equalsIgnoreCase(property)) { if(JIVEPROPERTY_PROXY_ENABLED.equalsIgnoreCase(property)) {
setEnabled(DEFAULT_IS_PROXY_ENABLED); setEnabled(DEFAULT_IS_PROXY_ENABLED);
} }
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
} }
} }
......
...@@ -100,6 +100,7 @@ public class ProxyConnectionManager { ...@@ -100,6 +100,7 @@ public class ProxyConnectionManager {
} }
reset(); reset();
socketProcess = executor.submit(new Runnable() { socketProcess = executor.submit(new Runnable() {
@Override
public void run() { public void run() {
try { try {
serverSocket = new ServerSocket(port, -1, bindInterface); serverSocket = new ServerSocket(port, -1, bindInterface);
...@@ -123,6 +124,7 @@ public class ProxyConnectionManager { ...@@ -123,6 +124,7 @@ public class ProxyConnectionManager {
} }
} }
executor.submit(new Runnable() { executor.submit(new Runnable() {
@Override
public void run() { public void run() {
try { try {
processConnection(socket); processConnection(socket);
...@@ -301,6 +303,7 @@ public class ProxyConnectionManager { ...@@ -301,6 +303,7 @@ public class ProxyConnectionManager {
transfer.setTarget(target.toString()); transfer.setTarget(target.toString());
transfer.setSessionID(sid); transfer.setSessionID(sid);
transfer.setTransferFuture(executor.submit(new Runnable() { transfer.setTransferFuture(executor.submit(new Runnable() {
@Override
public void run() { public void run() {
try { try {
transferManager.fireFileTransferStart( transfer.getSessionID(), true ); transferManager.fireFileTransferStart( transfer.getSessionID(), true );
...@@ -375,10 +378,12 @@ public class ProxyConnectionManager { ...@@ -375,10 +378,12 @@ public class ProxyConnectionManager {
super("filetransferproxy.transfered", Statistic.Type.rate); super("filetransferproxy.transfered", Statistic.Type.rate);
} }
@Override
public double sample() { public double sample() {
return (ProxyOutputStream.amountTransferred.getAndSet(0) / 1000d); return (ProxyOutputStream.amountTransferred.getAndSet(0) / 1000d);
} }
@Override
public boolean isPartialSample() { public boolean isPartialSample() {
return true; return true;
} }
......
...@@ -118,6 +118,7 @@ public class XFormFieldImpl implements FormField { ...@@ -118,6 +118,7 @@ public class XFormFieldImpl implements FormField {
return field; return field;
} }
@Override
public void addValue(String value) { public void addValue(String value) {
if (value == null) { if (value == null) {
value = ""; value = "";
...@@ -127,48 +128,58 @@ public class XFormFieldImpl implements FormField { ...@@ -127,48 +128,58 @@ public class XFormFieldImpl implements FormField {
} }
} }
@Override
public void clearValues() { public void clearValues() {
synchronized (values) { synchronized (values) {
values.clear(); values.clear();
} }
} }
@Override
public void addOption(String label, String value) { public void addOption(String label, String value) {
synchronized (options) { synchronized (options) {
options.add(new Option(label, value)); options.add(new Option(label, value));
} }
} }
@Override
public void setType(String type) { public void setType(String type) {
this.type = type; this.type = type;
} }
@Override
public void setRequired(boolean required) { public void setRequired(boolean required) {
this.required = required; this.required = required;
} }
@Override
public void setLabel(String label) { public void setLabel(String label) {
this.label = label; this.label = label;
} }
@Override
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }
@Override
public boolean isRequired() { public boolean isRequired() {
return required; return required;
} }
@Override
public String getVariable() { public String getVariable() {
return variable; return variable;
} }
@Override
public Iterator<String> getValues() { public Iterator<String> getValues() {
synchronized (values) { synchronized (values) {
return Collections.unmodifiableList(new ArrayList<String>(values)).iterator(); return Collections.unmodifiableList(new ArrayList<String>(values)).iterator();
} }
} }
@Override
public String getType() { public String getType() {
return type; return type;
} }
...@@ -185,10 +196,12 @@ public class XFormFieldImpl implements FormField { ...@@ -185,10 +196,12 @@ public class XFormFieldImpl implements FormField {
} }
} }
@Override
public String getLabel() { public String getLabel() {
return label; return label;
} }
@Override
public String getDescription() { public String getDescription() {
return description; return description;
} }
......
...@@ -54,6 +54,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -54,6 +54,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void addMember(String groupName, JID user, boolean administrator) public void addMember(String groupName, JID user, boolean administrator)
{ {
throw new UnsupportedOperationException("Cannot add members to read-only groups"); throw new UnsupportedOperationException("Cannot add members to read-only groups");
...@@ -62,6 +63,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -62,6 +63,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void updateMember(String groupName, JID user, boolean administrator) public void updateMember(String groupName, JID user, boolean administrator)
{ {
throw new UnsupportedOperationException("Cannot update members for read-only groups"); throw new UnsupportedOperationException("Cannot update members for read-only groups");
...@@ -70,6 +72,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -70,6 +72,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void deleteMember(String groupName, JID user) public void deleteMember(String groupName, JID user)
{ {
throw new UnsupportedOperationException("Cannot remove members from read-only groups"); throw new UnsupportedOperationException("Cannot remove members from read-only groups");
...@@ -78,6 +81,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -78,6 +81,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* Always true for a read-only provider * Always true for a read-only provider
*/ */
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return true; return true;
} }
...@@ -85,6 +89,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -85,6 +89,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public Group createGroup(String name) { public Group createGroup(String name) {
throw new UnsupportedOperationException("Cannot create groups via read-only provider"); throw new UnsupportedOperationException("Cannot create groups via read-only provider");
} }
...@@ -92,6 +97,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -92,6 +97,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void deleteGroup(String name) { public void deleteGroup(String name) {
throw new UnsupportedOperationException("Cannot remove groups via read-only provider"); throw new UnsupportedOperationException("Cannot remove groups via read-only provider");
} }
...@@ -99,6 +105,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -99,6 +105,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void setName(String oldName, String newName) throws GroupAlreadyExistsException { public void setName(String oldName, String newName) throws GroupAlreadyExistsException {
throw new UnsupportedOperationException("Cannot modify read-only groups"); throw new UnsupportedOperationException("Cannot modify read-only groups");
} }
...@@ -106,6 +113,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -106,6 +113,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public void setDescription(String name, String description) throws GroupNotFoundException { public void setDescription(String name, String description) throws GroupNotFoundException {
throw new UnsupportedOperationException("Cannot modify read-only groups"); throw new UnsupportedOperationException("Cannot modify read-only groups");
} }
...@@ -116,6 +124,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -116,6 +124,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* Returns true if the provider supports group search capability. This implementation * Returns true if the provider supports group search capability. This implementation
* always returns false. * always returns false.
*/ */
@Override
public boolean isSearchSupported() { public boolean isSearchSupported() {
return false; return false;
} }
...@@ -124,6 +133,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -124,6 +133,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* Returns a collection of group search results. This implementation * Returns a collection of group search results. This implementation
* returns an empty collection. * returns an empty collection.
*/ */
@Override
public Collection<String> search(String query) { public Collection<String> search(String query) {
return Collections.emptyList(); return Collections.emptyList();
} }
...@@ -132,6 +142,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -132,6 +142,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* Returns a collection of group search results. This implementation * Returns a collection of group search results. This implementation
* returns an empty collection. * returns an empty collection.
*/ */
@Override
public Collection<String> search(String query, int startIndex, int numResults) { public Collection<String> search(String query, int startIndex, int numResults) {
return Collections.emptyList(); return Collections.emptyList();
} }
...@@ -143,6 +154,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -143,6 +154,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* *
* @return the name of the groups that are shared groups. * @return the name of the groups that are shared groups.
*/ */
@Override
public Collection<String> getSharedGroupNames() { public Collection<String> getSharedGroupNames() {
Collection<String> groupNames = new HashSet<String>(); Collection<String> groupNames = new HashSet<String>();
Connection con = null; Connection con = null;
...@@ -165,6 +177,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -165,6 +177,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getSharedGroupNames(JID user) { public Collection<String> getSharedGroupNames(JID user) {
Set<String> answer = new HashSet<String>(); Set<String> answer = new HashSet<String>();
Collection<String> userGroups = getGroupNames(user); Collection<String> userGroups = getGroupNames(user);
...@@ -176,6 +189,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -176,6 +189,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
return answer; return answer;
} }
@Override
public Collection<String> getVisibleGroupNames(String userGroup) { public Collection<String> getVisibleGroupNames(String userGroup) {
Set<String> groupNames = new HashSet<String>(); Set<String> groupNames = new HashSet<String>();
Connection con = null; Connection con = null;
...@@ -199,6 +213,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -199,6 +213,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> search(String key, String value) { public Collection<String> search(String key, String value) {
Set<String> groupNames = new HashSet<String>(); Set<String> groupNames = new HashSet<String>();
Connection con = null; Connection con = null;
...@@ -223,6 +238,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -223,6 +238,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getPublicSharedGroupNames() { public Collection<String> getPublicSharedGroupNames() {
Set<String> groupNames = new HashSet<String>(); Set<String> groupNames = new HashSet<String>();
Connection con = null; Connection con = null;
...@@ -245,6 +261,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -245,6 +261,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
return groupNames; return groupNames;
} }
@Override
public boolean isSharingSupported() { public boolean isSharingSupported() {
return true; return true;
} }
...@@ -256,6 +273,7 @@ public abstract class AbstractGroupProvider implements GroupProvider { ...@@ -256,6 +273,7 @@ public abstract class AbstractGroupProvider implements GroupProvider {
* @param group The target group * @param group The target group
* @return The properties for the given group * @return The properties for the given group
*/ */
@Override
public PersistableMap<String,String> loadProperties(Group group) { public PersistableMap<String,String> loadProperties(Group group) {
// custom map implementation persists group property changes // custom map implementation persists group property changes
// whenever one of the standard mutator methods are called // whenever one of the standard mutator methods are called
......
...@@ -35,6 +35,7 @@ public class ConcurrentGroupMap<K, V> extends ConcurrentHashMap<K, V> implement ...@@ -35,6 +35,7 @@ public class ConcurrentGroupMap<K, V> extends ConcurrentHashMap<K, V> implement
* @param key The target, presumably a JID * @param key The target, presumably a JID
* @return True if the target is in the key list, or in any groups in the key list * @return True if the target is in the key list, or in any groups in the key list
*/ */
@Override
public boolean includesKey(Object key) { public boolean includesKey(Object key) {
boolean found = false; boolean found = false;
if (containsKey(key)) { if (containsKey(key)) {
...@@ -59,6 +60,7 @@ public class ConcurrentGroupMap<K, V> extends ConcurrentHashMap<K, V> implement ...@@ -59,6 +60,7 @@ public class ConcurrentGroupMap<K, V> extends ConcurrentHashMap<K, V> implement
* @param value The target, presumably a JID * @param value The target, presumably a JID
* @return True if the target is in the value set, or in any groups in the value set * @return True if the target is in the value set, or in any groups in the value set
*/ */
@Override
public boolean includesValue(Object value) { public boolean includesValue(Object value) {
boolean found = false; boolean found = false;
if (containsValue(value)) { if (containsValue(value)) {
......
...@@ -65,6 +65,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -65,6 +65,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* @param persist True if the changes should be persisted to the database * @param persist True if the changes should be persisted to the database
* @return The original value or null if the property did not exist * @return The original value or null if the property did not exist
*/ */
@Override
public V put(K key, V value, boolean persist) { public V put(K key, V value, boolean persist) {
V originalValue = super.put(key, value); V originalValue = super.put(key, value);
// we only support persistence for <String, String> // we only support persistence for <String, String>
...@@ -168,6 +169,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -168,6 +169,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Iterator} * Delegated to corresponding method in the backing {@link Iterator}
*/ */
@Override
public boolean hasNext() { public boolean hasNext() {
return delegate.hasNext(); return delegate.hasNext();
} }
...@@ -175,6 +177,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -175,6 +177,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Iterator} * Delegated to corresponding method in the backing {@link Iterator}
*/ */
@Override
public K next() { public K next() {
current = delegate.next(); current = delegate.next();
return current; return current;
...@@ -184,6 +187,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -184,6 +187,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* Removes the property corresponding to the current key from * Removes the property corresponding to the current key from
* the underlying map. Also applies update to the database. * the underlying map. Also applies update to the database.
*/ */
@Override
public void remove() { public void remove() {
delegate.remove(); delegate.remove();
if (current instanceof String) { if (current instanceof String) {
...@@ -211,6 +215,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -211,6 +215,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Returns a custom iterator for the entries in the backing map * Returns a custom iterator for the entries in the backing map
*/ */
@Override
public Iterator<Entry<K, V>> iterator() { public Iterator<Entry<K, V>> iterator() {
return new EntryIterator<Entry<K,V>>(delegate.iterator()); return new EntryIterator<Entry<K,V>>(delegate.iterator());
} }
...@@ -222,6 +227,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -222,6 +227,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* @param o A {@link Map.Entry} within this set * @param o A {@link Map.Entry} within this set
* @return True if the set contained the given key * @return True if the set contained the given key
*/ */
@Override
public boolean remove(Object o) { public boolean remove(Object o) {
boolean propertyExists = delegate.remove(o); boolean propertyExists = delegate.remove(o);
if (propertyExists) { if (propertyExists) {
...@@ -234,6 +240,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -234,6 +240,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* Removes all the elements in the set, and applies the * Removes all the elements in the set, and applies the
* corresponding update to the database. * corresponding update to the database.
*/ */
@Override
public void clear() { public void clear() {
delegate.clear(); delegate.clear();
deleteAllProperties(); deleteAllProperties();
...@@ -245,6 +252,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -245,6 +252,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public boolean removeAll(Collection<?> c) { public boolean removeAll(Collection<?> c) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
...@@ -252,6 +260,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -252,6 +260,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public boolean retainAll(Collection<?> c) { public boolean retainAll(Collection<?> c) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
...@@ -261,6 +270,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -261,6 +270,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public boolean add(Entry<K, V> o) { public boolean add(Entry<K, V> o) {
return delegate.add(o); return delegate.add(o);
} }
...@@ -268,6 +278,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -268,6 +278,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* @throws UnsupportedOperationException * @throws UnsupportedOperationException
*/ */
@Override
public boolean addAll(Collection<? extends Entry<K, V>> c) { public boolean addAll(Collection<? extends Entry<K, V>> c) {
return delegate.addAll(c); return delegate.addAll(c);
} }
...@@ -277,6 +288,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -277,6 +288,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public int size() { public int size() {
return delegate.size(); return delegate.size();
} }
...@@ -284,6 +296,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -284,6 +296,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public boolean isEmpty() { public boolean isEmpty() {
return delegate.isEmpty(); return delegate.isEmpty();
} }
...@@ -291,6 +304,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -291,6 +304,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public boolean contains(Object o) { public boolean contains(Object o) {
return delegate.contains(o); return delegate.contains(o);
} }
...@@ -298,6 +312,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -298,6 +312,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public Object[] toArray() { public Object[] toArray() {
return delegate.toArray(); return delegate.toArray();
} }
...@@ -305,6 +320,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -305,6 +320,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public <T> T[] toArray(T[] a) { public <T> T[] toArray(T[] a) {
return delegate.toArray(a); return delegate.toArray(a);
} }
...@@ -312,6 +328,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -312,6 +328,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Set} * Delegated to corresponding method in the backing {@link Set}
*/ */
@Override
public boolean containsAll(Collection<?> c) { public boolean containsAll(Collection<?> c) {
return delegate.containsAll(c); return delegate.containsAll(c);
} }
...@@ -350,6 +367,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -350,6 +367,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Iterator} * Delegated to corresponding method in the backing {@link Iterator}
*/ */
@Override
public boolean hasNext() { public boolean hasNext() {
return delegate.hasNext(); return delegate.hasNext();
} }
...@@ -357,6 +375,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -357,6 +375,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Iterator} * Delegated to corresponding method in the backing {@link Iterator}
*/ */
@Override
public Entry<K,V> next() { public Entry<K,V> next() {
current = new EntryWrapper<E>(delegate.next()); current = new EntryWrapper<E>(delegate.next());
return current; return current;
...@@ -366,6 +385,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -366,6 +385,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* Removes the property corresponding to the current key from * Removes the property corresponding to the current key from
* the underlying map. Also applies update to the database. * the underlying map. Also applies update to the database.
*/ */
@Override
public void remove() { public void remove() {
delegate.remove(); delegate.remove();
K key = current.getKey(); K key = current.getKey();
...@@ -393,6 +413,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -393,6 +413,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Map.Entry} * Delegated to corresponding method in the backing {@link Map.Entry}
*/ */
@Override
public K getKey() { public K getKey() {
return delegate.getKey(); return delegate.getKey();
} }
...@@ -400,6 +421,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -400,6 +421,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
/** /**
* Delegated to corresponding method in the backing {@link Map.Entry} * Delegated to corresponding method in the backing {@link Map.Entry}
*/ */
@Override
public V getValue() { public V getValue() {
return delegate.getValue(); return delegate.getValue();
} }
...@@ -413,6 +435,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> { ...@@ -413,6 +435,7 @@ public class DefaultGroupPropertyMap<K,V> extends PersistableMap<K,V> {
* @param value The new property value * @param value The new property value
* @return The old value of the corresponding property * @return The old value of the corresponding property
*/ */
@Override
public V setValue(V value) { public V setValue(V value) {
V oldValue = delegate.setValue(value); V oldValue = delegate.setValue(value);
K key = delegate.getKey(); K key = delegate.getKey();
......
...@@ -80,6 +80,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -80,6 +80,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
private XMPPServer server = XMPPServer.getInstance(); private XMPPServer server = XMPPServer.getInstance();
@Override
public Group createGroup(String name) { public Group createGroup(String name) {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -101,6 +102,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -101,6 +102,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return new Group(name, "", members, administrators); return new Group(name, "", members, administrators);
} }
@Override
public Group getGroup(String name) throws GroupNotFoundException { public Group getGroup(String name) throws GroupNotFoundException {
String description = null; String description = null;
...@@ -129,6 +131,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -129,6 +131,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return new Group(name, description, members, administrators); return new Group(name, description, members, administrators);
} }
@Override
public void setDescription(String name, String description) throws GroupNotFoundException { public void setDescription(String name, String description) throws GroupNotFoundException {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -148,6 +151,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -148,6 +151,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public void setName(String oldName, String newName) throws GroupAlreadyExistsException public void setName(String oldName, String newName) throws GroupAlreadyExistsException
{ {
Connection con = null; Connection con = null;
...@@ -182,6 +186,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -182,6 +186,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public void deleteGroup(String groupName) { public void deleteGroup(String groupName) {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -215,6 +220,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -215,6 +220,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public int getGroupCount() { public int getGroupCount() {
int count = 0; int count = 0;
Connection con = null; Connection con = null;
...@@ -237,6 +243,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -237,6 +243,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return count; return count;
} }
@Override
public Collection<String> getGroupNames() { public Collection<String> getGroupNames() {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
...@@ -258,6 +265,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -258,6 +265,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getGroupNames(int startIndex, int numResults) { public Collection<String> getGroupNames(int startIndex, int numResults) {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
...@@ -283,6 +291,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -283,6 +291,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getGroupNames(JID user) { public Collection<String> getGroupNames(JID user) {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
...@@ -306,6 +315,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -306,6 +315,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public void addMember(String groupName, JID user, boolean administrator) { public void addMember(String groupName, JID user, boolean administrator) {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -325,6 +335,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -325,6 +335,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public void updateMember(String groupName, JID user, boolean administrator) { public void updateMember(String groupName, JID user, boolean administrator) {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -344,6 +355,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -344,6 +355,7 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public void deleteMember(String groupName, JID user) { public void deleteMember(String groupName, JID user) {
Connection con = null; Connection con = null;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
...@@ -362,14 +374,17 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -362,14 +374,17 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
} }
} }
@Override
public boolean isReadOnly() { public boolean isReadOnly() {
return false; return false;
} }
@Override
public Collection<String> search(String query) { public Collection<String> search(String query) {
return search(query, 0, Integer.MAX_VALUE); return search(query, 0, Integer.MAX_VALUE);
} }
@Override
public Collection<String> search(String query, int startIndex, int numResults) { public Collection<String> search(String query, int startIndex, int numResults) {
if (query == null || "".equals(query)) { if (query == null || "".equals(query)) {
return Collections.emptyList(); return Collections.emptyList();
...@@ -420,10 +435,12 @@ public class DefaultGroupProvider extends AbstractGroupProvider { ...@@ -420,10 +435,12 @@ public class DefaultGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public boolean isSearchSupported() { public boolean isSearchSupported() {
return true; return true;
} }
@Override
public boolean isSharingSupported() { public boolean isSharingSupported() {
return true; return true;
} }
......
...@@ -314,6 +314,7 @@ public class Group implements Cacheable, Externalizable { ...@@ -314,6 +314,7 @@ public class Group implements Cacheable, Externalizable {
} }
} }
@Override
public int getCachedSize() public int getCachedSize()
throws CannotCalculateSizeException { throws CannotCalculateSizeException {
// Approximate the size of the object in bytes by calculating the size // Approximate the size of the object in bytes by calculating the size
...@@ -372,15 +373,18 @@ public class Group implements Cacheable, Externalizable { ...@@ -372,15 +373,18 @@ public class Group implements Cacheable, Externalizable {
Iterator<JID> iter = users.iterator(); Iterator<JID> iter = users.iterator();
JID current = null; JID current = null;
@Override
public boolean hasNext() { public boolean hasNext() {
return iter.hasNext(); return iter.hasNext();
} }
@Override
public JID next() { public JID next() {
current = iter.next(); current = iter.next();
return current; return current;
} }
@Override
public void remove() { public void remove() {
if (current == null) { if (current == null) {
throw new IllegalStateException(); throw new IllegalStateException();
...@@ -482,6 +486,7 @@ public class Group implements Cacheable, Externalizable { ...@@ -482,6 +486,7 @@ public class Group implements Cacheable, Externalizable {
} }
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeSafeUTF(out, name); ExternalizableUtil.getInstance().writeSafeUTF(out, name);
ExternalizableUtil.getInstance().writeBoolean(out, description != null); ExternalizableUtil.getInstance().writeBoolean(out, description != null);
...@@ -492,6 +497,7 @@ public class Group implements Cacheable, Externalizable { ...@@ -492,6 +497,7 @@ public class Group implements Cacheable, Externalizable {
ExternalizableUtil.getInstance().writeSerializableCollection(out, administrators); ExternalizableUtil.getInstance().writeSerializableCollection(out, administrators);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
groupManager = GroupManager.getInstance(); groupManager = GroupManager.getInstance();
provider = groupManager.getProvider(); provider = groupManager.getProvider();
......
...@@ -64,6 +64,7 @@ public class GroupCollection extends AbstractCollection<Group> { ...@@ -64,6 +64,7 @@ public class GroupCollection extends AbstractCollection<Group> {
private int currentIndex = -1; private int currentIndex = -1;
private Group nextElement = null; private Group nextElement = null;
@Override
public boolean hasNext() { public boolean hasNext() {
// If we are at the end of the list, there can't be any more elements // If we are at the end of the list, there can't be any more elements
// to iterate through. // to iterate through.
...@@ -81,6 +82,7 @@ public class GroupCollection extends AbstractCollection<Group> { ...@@ -81,6 +82,7 @@ public class GroupCollection extends AbstractCollection<Group> {
return true; return true;
} }
@Override
public Group next() throws java.util.NoSuchElementException { public Group next() throws java.util.NoSuchElementException {
Group element; Group element;
if (nextElement != null) { if (nextElement != null) {
...@@ -96,6 +98,7 @@ public class GroupCollection extends AbstractCollection<Group> { ...@@ -96,6 +98,7 @@ public class GroupCollection extends AbstractCollection<Group> {
return element; return element;
} }
@Override
public void remove() throws UnsupportedOperationException { public void remove() throws UnsupportedOperationException {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
......
...@@ -84,6 +84,7 @@ public class GroupManager { ...@@ -84,6 +84,7 @@ public class GroupManager {
initProvider(); initProvider();
GroupEventDispatcher.addListener(new GroupEventListener() { GroupEventDispatcher.addListener(new GroupEventListener() {
@Override
public void groupCreated(Group group, Map params) { public void groupCreated(Group group, Map params) {
// Adds default properties if they don't exists, since the creator of // Adds default properties if they don't exists, since the creator of
...@@ -110,6 +111,7 @@ public class GroupManager { ...@@ -110,6 +111,7 @@ public class GroupManager {
evictCachedPaginatedGroupNames(); evictCachedPaginatedGroupNames();
} }
@Override
public void groupDeleting(Group group, Map params) { public void groupDeleting(Group group, Map params) {
// Since the group could be deleted by the provider, remove it possible again // Since the group could be deleted by the provider, remove it possible again
groupCache.remove(group.getName()); groupCache.remove(group.getName());
...@@ -127,6 +129,7 @@ public class GroupManager { ...@@ -127,6 +129,7 @@ public class GroupManager {
evictCachedPaginatedGroupNames(); evictCachedPaginatedGroupNames();
} }
@Override
public void groupModified(Group group, Map params) { public void groupModified(Group group, Map params) {
String type = (String)params.get("type"); String type = (String)params.get("type");
// If shared group settings changed, expire the cache. // If shared group settings changed, expire the cache.
...@@ -164,6 +167,7 @@ public class GroupManager { ...@@ -164,6 +167,7 @@ public class GroupManager {
groupCache.put(group.getName(), group); groupCache.put(group.getName(), group);
} }
@Override
public void memberAdded(Group group, Map params) { public void memberAdded(Group group, Map params) {
// Set object again in cache. This is done so that other cluster nodes // Set object again in cache. This is done so that other cluster nodes
// get refreshed with latest version of the object // get refreshed with latest version of the object
...@@ -176,6 +180,7 @@ public class GroupManager { ...@@ -176,6 +180,7 @@ public class GroupManager {
} }
} }
@Override
public void memberRemoved(Group group, Map params) { public void memberRemoved(Group group, Map params) {
// Set object again in cache. This is done so that other cluster nodes // Set object again in cache. This is done so that other cluster nodes
// get refreshed with latest version of the object // get refreshed with latest version of the object
...@@ -188,6 +193,7 @@ public class GroupManager { ...@@ -188,6 +193,7 @@ public class GroupManager {
} }
} }
@Override
public void adminAdded(Group group, Map params) { public void adminAdded(Group group, Map params) {
// Set object again in cache. This is done so that other cluster nodes // Set object again in cache. This is done so that other cluster nodes
// get refreshed with latest version of the object // get refreshed with latest version of the object
...@@ -200,6 +206,7 @@ public class GroupManager { ...@@ -200,6 +206,7 @@ public class GroupManager {
} }
} }
@Override
public void adminRemoved(Group group, Map params) { public void adminRemoved(Group group, Map params) {
// Set object again in cache. This is done so that other cluster nodes // Set object again in cache. This is done so that other cluster nodes
// get refreshed with latest version of the object // get refreshed with latest version of the object
...@@ -215,14 +222,17 @@ public class GroupManager { ...@@ -215,14 +222,17 @@ public class GroupManager {
}); });
UserEventDispatcher.addListener(new UserEventListener() { UserEventDispatcher.addListener(new UserEventListener() {
@Override
public void userCreated(User user, Map<String, Object> params) { public void userCreated(User user, Map<String, Object> params) {
// ignore // ignore
} }
@Override
public void userDeleting(User user, Map<String, Object> params) { public void userDeleting(User user, Map<String, Object> params) {
deleteUser(user); deleteUser(user);
} }
@Override
public void userModified(User user, Map<String, Object> params) { public void userModified(User user, Map<String, Object> params) {
// ignore // ignore
} }
...@@ -230,20 +240,24 @@ public class GroupManager { ...@@ -230,20 +240,24 @@ public class GroupManager {
// Detect when a new auth provider class is set // Detect when a new auth provider class is set
PropertyEventListener propListener = new PropertyEventListener() { PropertyEventListener propListener = new PropertyEventListener() {
@Override
public void propertySet(String property, Map params) { public void propertySet(String property, Map params) {
if ("provider.group.className".equals(property)) { if ("provider.group.className".equals(property)) {
initProvider(); initProvider();
} }
} }
@Override
public void propertyDeleted(String property, Map params) { public void propertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertySet(String property, Map params) { public void xmlPropertySet(String property, Map params) {
//Ignore //Ignore
} }
@Override
public void xmlPropertyDeleted(String property, Map params) { public void xmlPropertyDeleted(String property, Map params) {
//Ignore //Ignore
} }
......
...@@ -128,6 +128,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider { ...@@ -128,6 +128,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider {
return DriverManager.getConnection(connectionString); return DriverManager.getConnection(connectionString);
} }
@Override
public Group getGroup(String name) throws GroupNotFoundException { public Group getGroup(String name) throws GroupNotFoundException {
String description = null; String description = null;
...@@ -199,6 +200,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider { ...@@ -199,6 +200,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider {
return members; return members;
} }
@Override
public int getGroupCount() { public int getGroupCount() {
int count = 0; int count = 0;
Connection con = null; Connection con = null;
...@@ -221,6 +223,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider { ...@@ -221,6 +223,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider {
return count; return count;
} }
@Override
public Collection<String> getGroupNames() { public Collection<String> getGroupNames() {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
...@@ -243,6 +246,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider { ...@@ -243,6 +246,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getGroupNames(int start, int num) { public Collection<String> getGroupNames(int start, int num) {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
...@@ -268,6 +272,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider { ...@@ -268,6 +272,7 @@ public class JDBCGroupProvider extends AbstractGroupProvider {
return groupNames; return groupNames;
} }
@Override
public Collection<String> getGroupNames(JID user) { public Collection<String> getGroupNames(JID user) {
List<String> groupNames = new ArrayList<String>(); List<String> groupNames = new ArrayList<String>();
Connection con = null; Connection con = null;
......
...@@ -94,12 +94,14 @@ public class DirectedPresence implements Externalizable { ...@@ -94,12 +94,14 @@ public class DirectedPresence implements Externalizable {
return receivers.isEmpty(); return receivers.isEmpty();
} }
@Override
public void writeExternal(ObjectOutput out) throws IOException { public void writeExternal(ObjectOutput out) throws IOException {
ExternalizableUtil.getInstance().writeByteArray(out, nodeID); ExternalizableUtil.getInstance().writeByteArray(out, nodeID);
ExternalizableUtil.getInstance().writeSerializable(out, handler); ExternalizableUtil.getInstance().writeSerializable(out, handler);
ExternalizableUtil.getInstance().writeStrings(out, receivers); ExternalizableUtil.getInstance().writeStrings(out, receivers);
} }
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
nodeID = ExternalizableUtil.getInstance().readByteArray(in); nodeID = ExternalizableUtil.getInstance().readByteArray(in);
handler = (JID) ExternalizableUtil.getInstance().readSerializable(in); handler = (JID) ExternalizableUtil.getInstance().readSerializable(in);
......
...@@ -380,10 +380,12 @@ public class IQAuthHandler extends IQHandler implements IQAuthInfo { ...@@ -380,10 +380,12 @@ public class IQAuthHandler extends IQHandler implements IQAuthInfo {
return response; return response;
} }
@Override
public boolean isAnonymousAllowed() { public boolean isAnonymousAllowed() {
return anonymousAllowed; return anonymousAllowed;
} }
@Override
public void setAllowAnonymous(boolean isAnonymous) throws UnauthorizedException { public void setAllowAnonymous(boolean isAnonymous) throws UnauthorizedException {
anonymousAllowed = isAnonymous; anonymousAllowed = isAnonymous;
JiveGlobals.setProperty("xmpp.auth.anonymous", Boolean.toString(anonymousAllowed)); JiveGlobals.setProperty("xmpp.auth.anonymous", Boolean.toString(anonymousAllowed));
......
...@@ -59,6 +59,7 @@ public abstract class IQHandler extends BasicModule implements ChannelHandler { ...@@ -59,6 +59,7 @@ public abstract class IQHandler extends BasicModule implements ChannelHandler {
super(moduleName); super(moduleName);
} }
@Override
public void process(Packet packet) throws PacketException { public void process(Packet packet) throws PacketException {
IQ iq = (IQ) packet; IQ iq = (IQ) packet;
try { try {
......
...@@ -115,6 +115,7 @@ public class IQLastActivityHandler extends IQHandler implements ServerFeaturesPr ...@@ -115,6 +115,7 @@ public class IQLastActivityHandler extends IQHandler implements ServerFeaturesPr
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:last").iterator(); return Collections.singleton("jabber:iq:last").iterator();
} }
......
...@@ -140,10 +140,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature ...@@ -140,10 +140,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton(NAMESPACE).iterator(); return Collections.singleton(NAMESPACE).iterator();
} }
@Override
public Iterator<Element> getIdentities(String name, String node, JID senderJID) { public Iterator<Element> getIdentities(String name, String node, JID senderJID) {
Element identity = DocumentHelper.createElement("identity"); Element identity = DocumentHelper.createElement("identity");
identity.addAttribute("category", "automation"); identity.addAttribute("category", "automation");
...@@ -151,10 +153,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature ...@@ -151,10 +153,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature
return Collections.singleton(identity).iterator(); return Collections.singleton(identity).iterator();
} }
@Override
public Iterator<String> getFeatures(String name, String node, JID senderJID) { public Iterator<String> getFeatures(String name, String node, JID senderJID) {
return Collections.singleton(NAMESPACE).iterator(); return Collections.singleton(NAMESPACE).iterator();
} }
@Override
public DataForm getExtendedInfo(String name, String node, JID senderJID) { public DataForm getExtendedInfo(String name, String node, JID senderJID) {
// Mark that offline messages shouldn't be sent when the user becomes available // Mark that offline messages shouldn't be sent when the user becomes available
stopOfflineFlooding(senderJID); stopOfflineFlooding(senderJID);
...@@ -173,10 +177,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature ...@@ -173,10 +177,12 @@ public class IQOfflineMessagesHandler extends IQHandler implements ServerFeature
return dataForm; return dataForm;
} }
@Override
public boolean hasInfo(String name, String node, JID senderJID) { public boolean hasInfo(String name, String node, JID senderJID) {
return NAMESPACE.equals(node) && userManager.isRegisteredUser(senderJID.getNode()); return NAMESPACE.equals(node) && userManager.isRegisteredUser(senderJID.getNode());
} }
@Override
public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) { public Iterator<DiscoItem> getItems(String name, String node, JID senderJID) {
// Mark that offline messages shouldn't be sent when the user becomes available // Mark that offline messages shouldn't be sent when the user becomes available
stopOfflineFlooding(senderJID); stopOfflineFlooding(senderJID);
......
...@@ -73,6 +73,7 @@ public class IQPingHandler extends IQHandler implements ServerFeaturesProvider { ...@@ -73,6 +73,7 @@ public class IQPingHandler extends IQHandler implements ServerFeaturesProvider {
/* /*
* @see org.jivesoftware.openfire.disco.ServerFeaturesProvider#getFeatures() * @see org.jivesoftware.openfire.disco.ServerFeaturesProvider#getFeatures()
*/ */
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton(NAMESPACE).iterator(); return Collections.singleton(NAMESPACE).iterator();
} }
......
...@@ -415,19 +415,23 @@ public class IQPrivacyHandler extends IQHandler ...@@ -415,19 +415,23 @@ public class IQPrivacyHandler extends IQHandler
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:privacy").iterator(); return Collections.singleton("jabber:iq:privacy").iterator();
} }
@Override
public void userCreated(User user, Map params) { public void userCreated(User user, Map params) {
//Do nothing //Do nothing
} }
@Override
public void userDeleting(User user, Map params) { public void userDeleting(User user, Map params) {
// Delete privacy lists owned by the user being deleted // Delete privacy lists owned by the user being deleted
manager.deletePrivacyLists(user.getUsername()); manager.deletePrivacyLists(user.getUsername());
} }
@Override
public void userModified(User user, Map params) { public void userModified(User user, Map params) {
//Do nothing //Do nothing
} }
......
...@@ -115,6 +115,7 @@ public class IQPrivateHandler extends IQHandler implements ServerFeaturesProvide ...@@ -115,6 +115,7 @@ public class IQPrivateHandler extends IQHandler implements ServerFeaturesProvide
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:private").iterator(); return Collections.singleton("jabber:iq:private").iterator();
} }
......
...@@ -469,6 +469,7 @@ public class IQRegisterHandler extends IQHandler implements ServerFeaturesProvid ...@@ -469,6 +469,7 @@ public class IQRegisterHandler extends IQHandler implements ServerFeaturesProvid
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:register").iterator(); return Collections.singleton("jabber:iq:register").iterator();
} }
......
...@@ -95,6 +95,7 @@ public class IQTimeHandler extends IQHandler implements ServerFeaturesProvider { ...@@ -95,6 +95,7 @@ public class IQTimeHandler extends IQHandler implements ServerFeaturesProvider {
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:time").iterator(); return Collections.singleton("jabber:iq:time").iterator();
} }
......
...@@ -90,6 +90,7 @@ public class IQVersionHandler extends IQHandler implements ServerFeaturesProvide ...@@ -90,6 +90,7 @@ public class IQVersionHandler extends IQHandler implements ServerFeaturesProvide
return info; return info;
} }
@Override
public Iterator<String> getFeatures() { public Iterator<String> getFeatures() {
return Collections.singleton("jabber:iq:version").iterator(); return Collections.singleton("jabber:iq:version").iterator();
} }
......
...@@ -105,6 +105,7 @@ public class PresenceSubscribeHandler extends BasicModule implements ChannelHand ...@@ -105,6 +105,7 @@ public class PresenceSubscribeHandler extends BasicModule implements ChannelHand
super("Presence subscription handler"); super("Presence subscription handler");
} }
@Override
public void process(Presence presence) throws PacketException { public void process(Presence presence) throws PacketException {
if (presence == null) { if (presence == null) {
throw new IllegalArgumentException("Argument 'presence' cannot be null."); throw new IllegalArgumentException("Argument 'presence' cannot be null.");
......
...@@ -133,6 +133,7 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler ...@@ -133,6 +133,7 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler
localDirectedPresences = new ConcurrentHashMap<String, Collection<DirectedPresence>>(); localDirectedPresences = new ConcurrentHashMap<String, Collection<DirectedPresence>>();
} }
@Override
public void process(Packet packet) throws UnauthorizedException, PacketException { public void process(Packet packet) throws UnauthorizedException, PacketException {
process((Presence) packet, sessionManager.getSession(packet.getFrom())); process((Presence) packet, sessionManager.getSession(packet.getFrom()));
} }
...@@ -549,6 +550,7 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler ...@@ -549,6 +550,7 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler
ClusterManager.addListener(this); ClusterManager.addListener(this);
} }
@Override
public void joinedCluster() { public void joinedCluster() {
// Populate directedPresencesCache with local content since when not in a cluster // Populate directedPresencesCache with local content since when not in a cluster
// we could still send directed presences to entities that when connected to a cluster // we could still send directed presences to entities that when connected to a cluster
...@@ -575,10 +577,12 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler ...@@ -575,10 +577,12 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler
} }
} }
@Override
public void joinedCluster(byte[] nodeID) { public void joinedCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void leftCluster() { public void leftCluster() {
if (!XMPPServer.getInstance().isShuttingDown()) { if (!XMPPServer.getInstance().isShuttingDown()) {
// Populate directedPresencesCache with local content // Populate directedPresencesCache with local content
...@@ -607,10 +611,12 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler ...@@ -607,10 +611,12 @@ public class PresenceUpdateHandler extends BasicModule implements ChannelHandler
} }
} }
@Override
public void leftCluster(byte[] nodeID) { public void leftCluster(byte[] nodeID) {
// Do nothing // Do nothing
} }
@Override
public void markedAsSeniorClusterMember() { public void markedAsSeniorClusterMember() {
// Do nothing // Do nothing
} }
......
...@@ -694,6 +694,7 @@ public final class HttpBindManager { ...@@ -694,6 +694,7 @@ public final class HttpBindManager {
/** Listens for changes to Jive properties that affect the HTTP server manager. */ /** Listens for changes to Jive properties that affect the HTTP server manager. */
private class HttpServerPropertyListener implements PropertyEventListener { private class HttpServerPropertyListener implements PropertyEventListener {
@Override
public void propertySet(String property, Map<String, Object> params) { public void propertySet(String property, Map<String, Object> params) {
if (property.equalsIgnoreCase(HTTP_BIND_ENABLED)) { if (property.equalsIgnoreCase(HTTP_BIND_ENABLED)) {
doEnableHttpBind(Boolean.valueOf(params.get("value").toString())); doEnableHttpBind(Boolean.valueOf(params.get("value").toString()));
...@@ -725,6 +726,7 @@ public final class HttpBindManager { ...@@ -725,6 +726,7 @@ public final class HttpBindManager {
} }
} }
@Override
public void propertyDeleted(String property, Map<String, Object> params) { public void propertyDeleted(String property, Map<String, Object> params) {
if (property.equalsIgnoreCase(HTTP_BIND_ENABLED)) { if (property.equalsIgnoreCase(HTTP_BIND_ENABLED)) {
doEnableHttpBind(HTTP_BIND_ENABLED_DEFAULT); doEnableHttpBind(HTTP_BIND_ENABLED_DEFAULT);
...@@ -740,15 +742,18 @@ public final class HttpBindManager { ...@@ -740,15 +742,18 @@ public final class HttpBindManager {
} }
} }
@Override
public void xmlPropertySet(String property, Map<String, Object> params) { public void xmlPropertySet(String property, Map<String, Object> params) {
} }
@Override
public void xmlPropertyDeleted(String property, Map<String, Object> params) { public void xmlPropertyDeleted(String property, Map<String, Object> params) {
} }
} }
private class CertificateListener implements CertificateEventListener { private class CertificateListener implements CertificateEventListener {
@Override
public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) { public void certificateCreated(KeyStore keyStore, String alias, X509Certificate cert) {
// If new certificate is RSA then (re)start the HTTPS service // If new certificate is RSA then (re)start the HTTPS service
if ("RSA".equals(cert.getPublicKey().getAlgorithm())) { if ("RSA".equals(cert.getPublicKey().getAlgorithm())) {
...@@ -756,10 +761,12 @@ public final class HttpBindManager { ...@@ -756,10 +761,12 @@ public final class HttpBindManager {
} }
} }
@Override
public void certificateDeleted(KeyStore keyStore, String alias) { public void certificateDeleted(KeyStore keyStore, String alias) {
restartServer(); restartServer();
} }
@Override
public void certificateSigned(KeyStore keyStore, String alias, public void certificateSigned(KeyStore keyStore, String alias,
List<X509Certificate> certificates) { List<X509Certificate> certificates) {
// If new certificate is RSA then (re)start the HTTPS service // If new certificate is RSA then (re)start the HTTPS service
......
...@@ -124,6 +124,7 @@ public class HttpSession extends LocalClientSession { ...@@ -124,6 +124,7 @@ public class HttpSession extends LocalClientSession {
private static final Comparator<HttpConnection> connectionComparator private static final Comparator<HttpConnection> connectionComparator
= new Comparator<HttpConnection>() { = new Comparator<HttpConnection>() {
@Override
public int compare(HttpConnection o1, HttpConnection o2) { public int compare(HttpConnection o1, HttpConnection o2) {
return (int) (o1.getRequestId() - o2.getRequestId()); return (int) (o1.getRequestId() - o2.getRequestId());
} }
...@@ -665,6 +666,7 @@ public class HttpSession extends LocalClientSession { ...@@ -665,6 +666,7 @@ public class HttpSession extends LocalClientSession {
* *
* @return the X509Certificate associated with this session. * @return the X509Certificate associated with this session.
*/ */
@Override
public X509Certificate[] getPeerCertificates() { public X509Certificate[] getPeerCertificates() {
return sslCertificates; return sslCertificates;
} }
...@@ -960,6 +962,7 @@ public class HttpSession extends LocalClientSession { ...@@ -960,6 +962,7 @@ public class HttpSession extends LocalClientSession {
deliver(new Deliverable(text)); deliver(new Deliverable(text));
} }
@Override
public void deliver(Packet stanza) { public void deliver(Packet stanza) {
deliver(new Deliverable(Arrays.asList(stanza))); deliver(new Deliverable(Arrays.asList(stanza)));
} }
...@@ -1071,6 +1074,7 @@ public class HttpSession extends LocalClientSession { ...@@ -1071,6 +1074,7 @@ public class HttpSession extends LocalClientSession {
} }
// use a separate thread to schedule backup delivery // use a separate thread to schedule backup delivery
TaskEngine.getInstance().submit(new Runnable() { TaskEngine.getInstance().submit(new Runnable() {
@Override
public void run() { public void run() {
for (Packet packet : packets) { for (Packet packet : packets) {
try { try {
...@@ -1124,26 +1128,32 @@ public class HttpSession extends LocalClientSession { ...@@ -1124,26 +1128,32 @@ public class HttpSession extends LocalClientSession {
((HttpSession) session).closeSession(); ((HttpSession) session).closeSession();
} }
@Override
public byte[] getAddress() throws UnknownHostException { public byte[] getAddress() throws UnknownHostException {
return address.getAddress(); return address.getAddress();
} }
@Override
public String getHostAddress() throws UnknownHostException { public String getHostAddress() throws UnknownHostException {
return address.getHostAddress(); return address.getHostAddress();
} }
@Override
public String getHostName() throws UnknownHostException { public String getHostName() throws UnknownHostException {
return address.getHostName(); return address.getHostName();
} }
@Override
public void systemShutdown() { public void systemShutdown() {
close(); close();
} }
@Override
public void deliver(Packet packet) throws UnauthorizedException { public void deliver(Packet packet) throws UnauthorizedException {
((HttpSession) session).deliver(packet); ((HttpSession) session).deliver(packet);
} }
@Override
public void deliverRawText(String text) { public void deliverRawText(String text) {
((HttpSession) session).deliver(text); ((HttpSession) session).deliver(text);
} }
...@@ -1265,6 +1275,7 @@ public class HttpSession extends LocalClientSession { ...@@ -1265,6 +1275,7 @@ public class HttpSession extends LocalClientSession {
this.session = session; this.session = session;
} }
@Override
public void run() { public void run() {
session.sendPendingPackets(); session.sendPendingPackets();
} }
......
...@@ -56,12 +56,15 @@ public class HttpSessionManager { ...@@ -56,12 +56,15 @@ public class HttpSessionManager {
private TimerTask inactivityTask; private TimerTask inactivityTask;
private ThreadPoolExecutor sendPacketPool; private ThreadPoolExecutor sendPacketPool;
private SessionListener sessionListener = new SessionListener() { private SessionListener sessionListener = new SessionListener() {
@Override
public void connectionOpened(HttpSession session, HttpConnection connection) { public void connectionOpened(HttpSession session, HttpConnection connection) {
} }
@Override
public void connectionClosed(HttpSession session, HttpConnection connection) { public void connectionClosed(HttpSession session, HttpConnection connection) {
} }
@Override
public void sessionClosed(HttpSession session) { public void sessionClosed(HttpSession session) {
sessionMap.remove(session.getStreamID().getID()); sessionMap.remove(session.getStreamID().getID());
} }
...@@ -98,6 +101,7 @@ public class HttpSessionManager { ...@@ -98,6 +101,7 @@ public class HttpSessionManager {
new LinkedBlockingQueue<Runnable>(), // unbounded task queue new LinkedBlockingQueue<Runnable>(), // unbounded task queue
new ThreadFactory() { // custom thread factory for BOSH workers new ThreadFactory() { // custom thread factory for BOSH workers
final AtomicInteger counter = new AtomicInteger(1); final AtomicInteger counter = new AtomicInteger(1);
@Override
public Thread newThread(Runnable runnable) { public Thread newThread(Runnable runnable) {
Thread thread = new Thread(Thread.currentThread().getThreadGroup(), runnable, Thread thread = new Thread(Thread.currentThread().getThreadGroup(), runnable,
"httpbind-worker-" + counter.getAndIncrement()); "httpbind-worker-" + counter.getAndIncrement());
......
...@@ -127,6 +127,7 @@ public class PacketCopier implements PacketInterceptor, ComponentEventListener { ...@@ -127,6 +127,7 @@ public class PacketCopier implements PacketInterceptor, ComponentEventListener {
subscribers.remove(componentJID.toString()); subscribers.remove(componentJID.toString());
} }
@Override
public void interceptPacket(Packet packet, Session session, boolean incoming, boolean processed) public void interceptPacket(Packet packet, Session session, boolean incoming, boolean processed)
throws PacketRejectedException { throws PacketRejectedException {
// Queue intercepted packet only if there are subscribers interested // Queue intercepted packet only if there are subscribers interested
...@@ -151,14 +152,17 @@ public class PacketCopier implements PacketInterceptor, ComponentEventListener { ...@@ -151,14 +152,17 @@ public class PacketCopier implements PacketInterceptor, ComponentEventListener {
} }
} }
@Override
public void componentInfoReceived(IQ iq) { public void componentInfoReceived(IQ iq) {
//Ignore //Ignore
} }
@Override
public void componentRegistered(JID componentJID) { public void componentRegistered(JID componentJID) {
//Ignore //Ignore
} }
@Override
public void componentUnregistered(JID componentJID) { public void componentUnregistered(JID componentJID) {
//Remove component from the list of subscribers (if subscribed) //Remove component from the list of subscribers (if subscribed)
removeSubscriber(componentJID); removeSubscriber(componentJID);
......
...@@ -49,34 +49,44 @@ public class DroppableFrame extends JFrame implements DropTargetListener, DragSo ...@@ -49,34 +49,44 @@ public class DroppableFrame extends JFrame implements DropTargetListener, DragSo
dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, this); dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, this);
} }
@Override
public void dragDropEnd(DragSourceDropEvent DragSourceDropEvent) { public void dragDropEnd(DragSourceDropEvent DragSourceDropEvent) {
} }
@Override
public void dragEnter(DragSourceDragEvent DragSourceDragEvent) { public void dragEnter(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dragExit(DragSourceEvent DragSourceEvent) { public void dragExit(DragSourceEvent DragSourceEvent) {
} }
@Override
public void dragOver(DragSourceDragEvent DragSourceDragEvent) { public void dragOver(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dropActionChanged(DragSourceDragEvent DragSourceDragEvent) { public void dropActionChanged(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dragEnter(DropTargetDragEvent dropTargetDragEvent) { public void dragEnter(DropTargetDragEvent dropTargetDragEvent) {
dropTargetDragEvent.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); dropTargetDragEvent.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
} }
@Override
public void dragExit(DropTargetEvent dropTargetEvent) { public void dragExit(DropTargetEvent dropTargetEvent) {
} }
@Override
public void dragOver(DropTargetDragEvent dropTargetDragEvent) { public void dragOver(DropTargetDragEvent dropTargetDragEvent) {
} }
@Override
public void dropActionChanged(DropTargetDragEvent dropTargetDragEvent) { public void dropActionChanged(DropTargetDragEvent dropTargetDragEvent) {
} }
@Override
public void drop(DropTargetDropEvent dropTargetDropEvent) { public void drop(DropTargetDropEvent dropTargetDropEvent) {
try { try {
Transferable transferable = dropTargetDropEvent.getTransferable(); Transferable transferable = dropTargetDropEvent.getTransferable();
...@@ -110,6 +120,7 @@ public class DroppableFrame extends JFrame implements DropTargetListener, DragSo ...@@ -110,6 +120,7 @@ public class DroppableFrame extends JFrame implements DropTargetListener, DragSo
} }
} }
@Override
public void dragGestureRecognized(DragGestureEvent dragGestureEvent) { public void dragGestureRecognized(DragGestureEvent dragGestureEvent) {
} }
......
...@@ -49,34 +49,44 @@ public abstract class DroppableTextPane extends JTextPane implements DropTargetL ...@@ -49,34 +49,44 @@ public abstract class DroppableTextPane extends JTextPane implements DropTargetL
dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, this); dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, this);
} }
@Override
public void dragDropEnd(DragSourceDropEvent DragSourceDropEvent) { public void dragDropEnd(DragSourceDropEvent DragSourceDropEvent) {
} }
@Override
public void dragEnter(DragSourceDragEvent DragSourceDragEvent) { public void dragEnter(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dragExit(DragSourceEvent DragSourceEvent) { public void dragExit(DragSourceEvent DragSourceEvent) {
} }
@Override
public void dragOver(DragSourceDragEvent DragSourceDragEvent) { public void dragOver(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dropActionChanged(DragSourceDragEvent DragSourceDragEvent) { public void dropActionChanged(DragSourceDragEvent DragSourceDragEvent) {
} }
@Override
public void dragEnter(DropTargetDragEvent dropTargetDragEvent) { public void dragEnter(DropTargetDragEvent dropTargetDragEvent) {
dropTargetDragEvent.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); dropTargetDragEvent.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
} }
@Override
public void dragExit(DropTargetEvent dropTargetEvent) { public void dragExit(DropTargetEvent dropTargetEvent) {
} }
@Override
public void dragOver(DropTargetDragEvent dropTargetDragEvent) { public void dragOver(DropTargetDragEvent dropTargetDragEvent) {
} }
@Override
public void dropActionChanged(DropTargetDragEvent dropTargetDragEvent) { public void dropActionChanged(DropTargetDragEvent dropTargetDragEvent) {
} }
@Override
public void drop(DropTargetDropEvent dropTargetDropEvent) { public void drop(DropTargetDropEvent dropTargetDropEvent) {
try { try {
Transferable transferable = dropTargetDropEvent.getTransferable(); Transferable transferable = dropTargetDropEvent.getTransferable();
...@@ -110,6 +120,7 @@ public abstract class DroppableTextPane extends JTextPane implements DropTargetL ...@@ -110,6 +120,7 @@ public abstract class DroppableTextPane extends JTextPane implements DropTargetL
} }
} }
@Override
public void dragGestureRecognized(DragGestureEvent dragGestureEvent) { public void dragGestureRecognized(DragGestureEvent dragGestureEvent) {
} }
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment