This is an automated email from the ASF dual-hosted git repository.
zhaijia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 356c091 ISSUE #230: Add Checkstyle to some packages
356c091 is described below
commit 356c091b66a2d8b76943f707a5bebfa7939719b5
Author: Aaron Coburn <[email protected]>
AuthorDate: Sat Dec 2 19:26:03 2017 +0800
ISSUE #230: Add Checkstyle to some packages
This is part of #230 and adds checkstyle verification to the following
packages in bookkeeper-server:
- metastore
- net
- sasl
Descriptions of the changes in this PR:
Most of the changes are entirely stylistic, but there were a few minor
functional changes:
- In `metastore.MetastoreUtils`, the protected `logger` field was changed
to `private` (it is not accessed from outside the class).
- In `metastore.Value`, the package-protected `comparator` field was
changed to `private` (it, too, is not accessed outside the class).
Author: Aaron Coburn <[email protected]>
Reviewers: Jia Zhai <None>, Sijie Guo <[email protected]>
This closes #799 from acoburn/more_checkstyle, closes #230
---
.../bookkeeper/metastore/InMemoryMetaStore.java | 3 +
.../metastore/InMemoryMetastoreCursor.java | 4 +-
.../metastore/InMemoryMetastoreTable.java | 66 ++++----
.../apache/bookkeeper/metastore/MSException.java | 35 ++++-
.../bookkeeper/metastore/MSWatchedEvent.java | 14 +-
.../org/apache/bookkeeper/metastore/MetaStore.java | 15 +-
.../bookkeeper/metastore/MetastoreCallback.java | 5 +-
.../bookkeeper/metastore/MetastoreCursor.java | 17 +-
.../bookkeeper/metastore/MetastoreException.java | 3 +
.../bookkeeper/metastore/MetastoreFactory.java | 3 +
.../metastore/MetastoreScannableTable.java | 25 +--
.../bookkeeper/metastore/MetastoreTable.java | 34 ++--
.../bookkeeper/metastore/MetastoreTableItem.java | 2 +-
.../bookkeeper/metastore/MetastoreUtils.java | 2 +-
.../bookkeeper/metastore/MetastoreWatcher.java | 5 +-
.../org/apache/bookkeeper/metastore/Value.java | 20 +--
.../package-info.java} | 29 +---
.../bookkeeper/net/AbstractDNSToSwitchMapping.java | 23 ++-
.../apache/bookkeeper/net/BookieSocketAddress.java | 15 +-
.../bookkeeper/net/CachedDNSToSwitchMapping.java | 10 +-
.../bookkeeper/net/CommonConfigurationKeys.java | 9 +-
.../main/java/org/apache/bookkeeper/net/DNS.java | 31 ++--
.../apache/bookkeeper/net/DNSToSwitchMapping.java | 15 +-
.../java/org/apache/bookkeeper/net/NetUtils.java | 14 +-
.../org/apache/bookkeeper/net/NetworkTopology.java | 14 +-
.../apache/bookkeeper/net/NetworkTopologyImpl.java | 173 ++++++++++++++-------
.../main/java/org/apache/bookkeeper/net/Node.java | 25 +--
.../java/org/apache/bookkeeper/net/NodeBase.java | 57 ++++---
.../apache/bookkeeper/net/ScriptBasedMapping.java | 28 ++--
.../bookkeeper/net/StabilizeNetworkTopology.java | 8 +-
.../package-info.java} | 29 +---
.../bookkeeper/sasl/JAASCredentialsContainer.java | 3 +
.../bookkeeper/sasl/SASLBookieAuthProvider.java | 6 +-
.../sasl/SASLBookieAuthProviderFactory.java | 6 +-
.../bookkeeper/sasl/SASLClientAuthProvider.java | 4 +
.../bookkeeper/sasl/SASLClientProviderFactory.java | 25 ++-
.../apache/bookkeeper/sasl/SaslClientState.java | 6 +-
.../org/apache/bookkeeper/sasl/SaslConstants.java | 7 +-
.../apache/bookkeeper/sasl/SaslServerState.java | 14 +-
.../apache/bookkeeper/sasl/TGTRefreshThread.java | 9 +-
...CredentialsContainer.java => package-info.java} | 29 +---
.../resources/bookkeeper/server-suppressions.xml | 3 -
42 files changed, 474 insertions(+), 371 deletions(-)
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetaStore.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetaStore.java
index 7358504..b792399 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetaStore.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetaStore.java
@@ -22,6 +22,9 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
+/**
+ * An in-memory implementation of the MetaStore interface.
+ */
public class InMemoryMetaStore implements MetaStore {
static final int CUR_VERSION = 1;
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreCursor.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreCursor.java
index a7cc953..17e75b3 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreCursor.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreCursor.java
@@ -19,6 +19,8 @@ package org.apache.bookkeeper.metastore;
import static
org.apache.bookkeeper.metastore.InMemoryMetastoreTable.cloneValue;
+import com.google.common.collect.ImmutableSortedMap;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
@@ -31,8 +33,6 @@ import java.util.concurrent.ScheduledExecutorService;
import org.apache.bookkeeper.metastore.MSException.Code;
import org.apache.bookkeeper.versioning.Versioned;
-import com.google.common.collect.ImmutableSortedMap;
-
class InMemoryMetastoreCursor implements MetastoreCursor {
private final ScheduledExecutorService scheduler;
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreTable.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreTable.java
index 03f1c60..25cb355 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreTable.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/InMemoryMetastoreTable.java
@@ -17,6 +17,8 @@
*/
package org.apache.bookkeeper.metastore;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
import java.util.NavigableMap;
import java.util.Set;
import java.util.TreeMap;
@@ -27,10 +29,14 @@ import org.apache.bookkeeper.metastore.MSException.Code;
import org.apache.bookkeeper.versioning.Version;
import org.apache.bookkeeper.versioning.Versioned;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
-
+/**
+ * An in-memory implementation of a Metastore table.
+ */
public class InMemoryMetastoreTable implements MetastoreScannableTable {
+ /**
+ * An implementation of the Version interface for metadata.
+ */
public static class MetadataVersion implements Version {
int version;
@@ -59,7 +65,7 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
} else if (!(v instanceof MetadataVersion)) {
throw new IllegalArgumentException("Invalid version type");
}
- MetadataVersion mv = (MetadataVersion)v;
+ MetadataVersion mv = (MetadataVersion) v;
int res = version - mv.version;
if (res == 0) {
return Occurred.CONCURRENTLY;
@@ -72,11 +78,10 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
@Override
public boolean equals(Object obj) {
- if (null == obj ||
- !(obj instanceof MetadataVersion)) {
+ if (null == obj || !(obj instanceof MetadataVersion)) {
return false;
}
- MetadataVersion v = (MetadataVersion)obj;
+ MetadataVersion v = (MetadataVersion) obj;
return 0 == (version - v.version);
}
@@ -98,7 +103,7 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
public InMemoryMetastoreTable(InMemoryMetaStore metastore, String name) {
this.map = new TreeMap<String, Versioned<Value>>();
- this.watcherMap = new TreeMap<String,MetastoreWatcher>();
+ this.watcherMap = new TreeMap<String, MetastoreWatcher>();
this.name = name;
String thName = "InMemoryMetastore-Table(" + name + ")-Scheduler-%d";
ThreadFactoryBuilder tfb = new ThreadFactoryBuilder()
@@ -129,7 +134,7 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
if (Version.ANY != version && Version.NEW != version) {
if (version instanceof MetadataVersion) {
- version = new
MetadataVersion(((MetadataVersion)version).version);
+ version = new MetadataVersion(((MetadataVersion)
version).version);
} else {
throw new IllegalStateException("Wrong version type.");
}
@@ -146,15 +151,16 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
});
}
-
+
@Override
- public void get(final String key, final MetastoreWatcher watcher, final
MetastoreCallback<Versioned<Value>> cb, final Object ctx) {
+ public void get(final String key, final MetastoreWatcher watcher, final
MetastoreCallback<Versioned<Value>> cb,
+ final Object ctx) {
scheduler.submit(new Runnable() {
@Override
public void run() {
scheduleGet(key, ALL_FIELDS, cb, ctx);
- synchronized(watcherMap) {
- watcherMap.put( key, watcher );
+ synchronized (watcherMap) {
+ watcherMap.put(key, watcher);
}
}
});
@@ -197,18 +203,18 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
Result<Version> result = put(key, value, version);
cb.complete(result.code.getCode(), result.value, ctx);
-
+
/*
* If there is a watcher set for this key, we need
* to trigger it.
*/
- if(result.code == MSException.Code.OK){
+ if (result.code == MSException.Code.OK) {
triggerWatch(key, MSWatchedEvent.EventType.CHANGED);
}
}
});
}
-
+
@Override
public void remove(final String key, final Version version, final
MetastoreCallback<Void> cb, final Object ctx) {
scheduler.submit(new Runnable() {
@@ -220,8 +226,8 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
Code code = remove(key, version);
cb.complete(code.getCode(), null, ctx);
-
- if(code == MSException.Code.OK){
+
+ if (code == MSException.Code.OK) {
triggerWatch(key, MSWatchedEvent.EventType.REMOVED);
}
}
@@ -266,15 +272,15 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
private void triggerWatch(String key, MSWatchedEvent.EventType type) {
- synchronized(watcherMap){
- if(watcherMap.containsKey( key )) {
+ synchronized (watcherMap){
+ if (watcherMap.containsKey(key)) {
MSWatchedEvent event = new MSWatchedEvent(key, type);
- watcherMap.get( key ).process( event );
- watcherMap.remove( key );
+ watcherMap.get(key).process(event);
+ watcherMap.remove(key);
}
}
}
-
+
private synchronized Versioned<Value> get(String key) {
return map.get(key);
}
@@ -318,9 +324,9 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
if (Version.Occurred.CONCURRENTLY != vv.getVersion().compare(version))
{
return new Result<Version>(Code.BadVersion, null);
}
- vv.setVersion(((MetadataVersion)vv.getVersion()).incrementVersion());
+ vv.setVersion(((MetadataVersion) vv.getVersion()).incrementVersion());
vv.setValue(vv.getValue().merge(value));
- return new Result<Version>(Code.OK, new
MetadataVersion((MetadataVersion)vv.getVersion()));
+ return new Result<Version>(Code.OK, new
MetadataVersion((MetadataVersion) vv.getVersion()));
}
private synchronized Result<MetastoreCursor> openCursor(
@@ -335,13 +341,11 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
NavigableMap<String, Versioned<Value>> myMap = null;
if (Order.ASC == order) {
myMap = map;
- if (EMPTY_END_KEY == lastKey ||
- lastKey.compareTo(myMap.lastKey()) > 0) {
+ if (EMPTY_END_KEY == lastKey || lastKey.compareTo(myMap.lastKey())
> 0) {
lastKey = myMap.lastKey();
lastInclusive = true;
}
- if (EMPTY_START_KEY == firstKey ||
- firstKey.compareTo(myMap.firstKey()) < 0) {
+ if (EMPTY_START_KEY == firstKey ||
firstKey.compareTo(myMap.firstKey()) < 0) {
firstKey = myMap.firstKey();
firstInclusive = true;
}
@@ -350,13 +354,11 @@ public class InMemoryMetastoreTable implements
MetastoreScannableTable {
}
} else if (Order.DESC == order) {
myMap = map.descendingMap();
- if (EMPTY_START_KEY == lastKey ||
- lastKey.compareTo(myMap.lastKey()) < 0) {
+ if (EMPTY_START_KEY == lastKey ||
lastKey.compareTo(myMap.lastKey()) < 0) {
lastKey = myMap.lastKey();
lastInclusive = true;
}
- if (EMPTY_END_KEY == firstKey ||
- firstKey.compareTo(myMap.firstKey()) > 0) {
+ if (EMPTY_END_KEY == firstKey ||
firstKey.compareTo(myMap.firstKey()) > 0) {
firstKey = myMap.firstKey();
firstInclusive = true;
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSException.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSException.java
index a1350dc..6d16c1f 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSException.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSException.java
@@ -21,13 +21,16 @@ import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
+/**
+ * Marker for metastore exceptions.
+ */
@SuppressWarnings("serial")
public abstract class MSException extends Exception {
/**
- * return codes
+ * Return codes.
*/
- public static enum Code {
+ public enum Code {
OK (0, "OK"),
BadVersion (-1, "Version conflict"),
NoKey (-2, "Key does not exist"),
@@ -39,8 +42,7 @@ public abstract class MSException extends Exception {
ServiceDown (-102, "Metadata service is down"),
OperationFailure(-103, "Operaion failed on metadata storage server
side");
- private static final Map<Integer, Code> codes
- = new HashMap<Integer, Code>();
+ private static final Map<Integer, Code> codes = new HashMap<Integer,
Code>();
static {
for (Code c : EnumSet.allOf(Code.class)) {
@@ -131,6 +133,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * A BadVersion exception.
+ */
public static class BadVersionException extends MSException {
public BadVersionException(String errMsg) {
super(Code.BadVersion, errMsg);
@@ -141,6 +146,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Exception in cases where there is no key.
+ */
public static class NoKeyException extends MSException {
public NoKeyException(String errMsg) {
super(Code.NoKey, errMsg);
@@ -151,7 +159,9 @@ public abstract class MSException extends Exception {
}
}
- // Exception would be thrown in a cursor if no entries found
+ /**
+ * Exception would be thrown in a cursor if no entries found.
+ */
public static class NoEntriesException extends MSException {
public NoEntriesException(String errMsg) {
super(Code.NoEntries, errMsg);
@@ -162,6 +172,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Key Exists Exception.
+ */
public static class KeyExistsException extends MSException {
public KeyExistsException(String errMsg) {
super(Code.KeyExists, errMsg);
@@ -172,6 +185,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Metastore interruption exception.
+ */
public static class MSInterruptedException extends MSException {
public MSInterruptedException(String errMsg) {
super(Code.InterruptedException, errMsg);
@@ -182,6 +198,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Illegal operation exception.
+ */
public static class IllegalOpException extends MSException {
public IllegalOpException(String errMsg) {
super(Code.IllegalOp, errMsg);
@@ -192,6 +211,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Service down exception.
+ */
public static class ServiceDownException extends MSException {
public ServiceDownException(String errMsg) {
super(Code.ServiceDown, errMsg);
@@ -202,6 +224,9 @@ public abstract class MSException extends Exception {
}
}
+ /**
+ * Operation failure exception.
+ */
public static class OperationFailureException extends MSException {
public OperationFailureException(String errMsg) {
super(Code.OperationFailure, errMsg);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSWatchedEvent.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSWatchedEvent.java
index d97112c..08c1721 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSWatchedEvent.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MSWatchedEvent.java
@@ -17,21 +17,27 @@
*/
package org.apache.bookkeeper.metastore;
+/**
+ * A metastore watched event.
+ */
public class MSWatchedEvent {
+ /**
+ * The metastore event type.
+ */
public enum EventType {CHANGED, REMOVED}
-
+
String key;
EventType type;
-
+
public MSWatchedEvent(String key, EventType type) {
this.key = key;
this.type = type;
}
-
+
public EventType getType() {
return type;
}
-
+
public String getKey(){
return key;
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetaStore.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetaStore.java
index 29fd329..62d7a32 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetaStore.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetaStore.java
@@ -28,14 +28,14 @@ public interface MetaStore {
*
* @return the plugin name.
*/
- public String getName();
+ String getName();
/**
* Get the plugin verison.
*
* @return the plugin version.
*/
- public int getVersion();
+ int getVersion();
/**
* Initialize the meta store.
@@ -46,13 +46,12 @@ public interface MetaStore {
* Version to initialize the metastore
* @throws MetastoreException when failed to initialize
*/
- public void init(Configuration config, int msVersion)
- throws MetastoreException;
+ void init(Configuration config, int msVersion) throws MetastoreException;
/**
* Close the meta store.
*/
- public void close();
+ void close();
/**
* Create a metastore table.
@@ -62,8 +61,7 @@ public interface MetaStore {
* @return a metastore table
* @throws MetastoreException when failed to create the metastore table.
*/
- public MetastoreTable createTable(String name)
- throws MetastoreException;
+ MetastoreTable createTable(String name) throws MetastoreException;
/**
* Create a scannable metastore table.
@@ -73,7 +71,6 @@ public interface MetaStore {
* @return a metastore scannable table
* @throws MetastoreException when failed to create the metastore table.
*/
- public MetastoreScannableTable createScannableTable(String name)
- throws MetastoreException;
+ MetastoreScannableTable createScannableTable(String name) throws
MetastoreException;
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCallback.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCallback.java
index 78c709c..b25311a 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCallback.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCallback.java
@@ -17,9 +17,12 @@
*/
package org.apache.bookkeeper.metastore;
+/**
+ * Metastore callback.
+ */
public interface MetastoreCallback<T> {
/**
* @see MSException.Code
*/
- public void complete(int rc, T value, Object ctx);
+ void complete(int rc, T value, Object ctx);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCursor.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCursor.java
index f4f9d65..abd1cd4 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCursor.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreCursor.java
@@ -21,9 +21,12 @@ import java.io.Closeable;
import java.io.IOException;
import java.util.Iterator;
+/**
+ * A Metastore Cursor.
+ */
public interface MetastoreCursor extends Closeable {
- public static MetastoreCursor EMPTY_CURSOR = new MetastoreCursor() {
+ MetastoreCursor EMPTY_CURSOR = new MetastoreCursor() {
@Override
public boolean hasMoreEntries() {
return false;
@@ -46,7 +49,10 @@ public interface MetastoreCursor extends Closeable {
}
};
- public static interface ReadEntriesCallback extends
+ /**
+ * A callback for reading entries.
+ */
+ interface ReadEntriesCallback extends
MetastoreCallback<Iterator<MetastoreTableItem>> {
}
@@ -55,7 +61,7 @@ public interface MetastoreCursor extends Closeable {
*
* @return true if there is entries left, false otherwise.
*/
- public boolean hasMoreEntries();
+ boolean hasMoreEntries();
/**
* Read entries from the cursor, up to the specified
<code>numEntries</code>.
@@ -66,8 +72,7 @@ public interface MetastoreCursor extends Closeable {
* @return the iterator of returned entries.
* @throws MSException when failed to read entries from the cursor.
*/
- public Iterator<MetastoreTableItem> readEntries(int numEntries)
- throws MSException;
+ Iterator<MetastoreTableItem> readEntries(int numEntries) throws
MSException;
/**
* Asynchronously read entries from the cursor, up to the specified
<code>numEntries</code>.
@@ -80,5 +85,5 @@ public interface MetastoreCursor extends Closeable {
* @param ctx
* opaque context
*/
- public void asyncReadEntries(int numEntries, ReadEntriesCallback callback,
Object ctx);
+ void asyncReadEntries(int numEntries, ReadEntriesCallback callback, Object
ctx);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreException.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreException.java
index c85b36a..f66fe00 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreException.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreException.java
@@ -17,6 +17,9 @@
*/
package org.apache.bookkeeper.metastore;
+/**
+ * A marker for Metastore exceptions.
+ */
@SuppressWarnings("serial")
public class MetastoreException extends Exception {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreFactory.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreFactory.java
index bedbf8b..92f2ead 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreFactory.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreFactory.java
@@ -19,6 +19,9 @@ package org.apache.bookkeeper.metastore;
import org.apache.bookkeeper.util.ReflectionUtils;
+/**
+ * Metastore Factory.
+ */
public class MetastoreFactory {
public static MetaStore createMetaStore(String name)
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreScannableTable.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreScannableTable.java
index 036cdb6..1e073d4 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreScannableTable.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreScannableTable.java
@@ -19,14 +19,19 @@ package org.apache.bookkeeper.metastore;
import java.util.Set;
+/**
+ * Metastore Scannable Table.
+ */
public interface MetastoreScannableTable extends MetastoreTable {
// Used by cursor, etc when they want to start at the beginning of a table
- public static final String EMPTY_START_KEY = null;
+ String EMPTY_START_KEY = null;
// Last row in a table.
- public static final String EMPTY_END_KEY = null;
- // the order to loop over a table
- public static enum Order {
+ String EMPTY_END_KEY = null;
+ /**
+ * The order to loop over a table.
+ */
+ enum Order {
ASC,
DESC
}
@@ -35,12 +40,10 @@ public interface MetastoreScannableTable extends
MetastoreTable {
* Open a cursor to loop over the entries belonging to a key range,
* which returns all fields for each entry.
*
- * <p>
- * Return Code:<br/>
+ * <p>Return Code:<br/>
* {@link MSException.Code.OK}: an opened cursor<br/>
* {@link MSException.Code.IllegalOp}/{@link MSException.Code.ServiceDown}:
* other issues
- * </p>
*
* @param firstKey
* Key to start scanning. If it is {@link EMPTY_START_KEY}, it
starts
@@ -59,7 +62,7 @@ public interface MetastoreScannableTable extends
MetastoreTable {
* @param ctx
* Callback context
*/
- public void openCursor(String firstKey, boolean firstInclusive,
+ void openCursor(String firstKey, boolean firstInclusive,
String lastKey, boolean lastInclusive,
Order order,
MetastoreCallback<MetastoreCursor> cb,
@@ -69,12 +72,10 @@ public interface MetastoreScannableTable extends
MetastoreTable {
* Open a cursor to loop over the entries belonging to a key range,
* which returns the specified <code>fields</code> for each entry.
*
- * <p>
- * Return Code:<br/>
+ * <p>Return Code:<br/>
* {@link MSException.Code.OK}: an opened cursor<br/>
* {@link MSException.Code.IllegalOp}/{@link MSException.Code.ServiceDown}:
* other issues
- * </p>
*
* @param firstKey
* Key to start scanning. If it is {@link EMPTY_START_KEY}, it
starts
@@ -95,7 +96,7 @@ public interface MetastoreScannableTable extends
MetastoreTable {
* @param ctx
* Callback context
*/
- public void openCursor(String firstKey, boolean firstInclusive,
+ void openCursor(String firstKey, boolean firstInclusive,
String lastKey, boolean lastInclusive,
Order order, Set<String> fields,
MetastoreCallback<MetastoreCursor> cb,
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTable.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTable.java
index cfc728b..d302b68 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTable.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTable.java
@@ -22,19 +22,22 @@ import java.util.Set;
import org.apache.bookkeeper.versioning.Version;
import org.apache.bookkeeper.versioning.Versioned;
+/**
+ * Metastore Table interface.
+ */
public interface MetastoreTable {
// select all fields when reading or scanning entries
- public static final Set<String> ALL_FIELDS = null;
+ Set<String> ALL_FIELDS = null;
// select non fields to return when reading/scanning entries
- public static final Set<String> NON_FIELDS = Collections.emptySet();
+ Set<String> NON_FIELDS = Collections.emptySet();
/**
* Get table name.
*
* @return table name
*/
- public String getName();
+ String getName();
/**
* Get all fields of a key.
@@ -53,7 +56,7 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void get(String key, MetastoreCallback<Versioned<Value>> cb, Object
ctx);
+ void get(String key, MetastoreCallback<Versioned<Value>> cb, Object ctx);
/**
* Get all fields of a key.
@@ -74,8 +77,8 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void get(String key, MetastoreWatcher watcher,
MetastoreCallback<Versioned<Value>> cb, Object ctx);
-
+ void get(String key, MetastoreWatcher watcher,
MetastoreCallback<Versioned<Value>> cb, Object ctx);
+
/**
* Get specified fields of a key.
*
@@ -95,8 +98,7 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void get(String key, Set<String> fields,
- MetastoreCallback<Versioned<Value>> cb, Object ctx);
+ void get(String key, Set<String> fields,
MetastoreCallback<Versioned<Value>> cb, Object ctx);
/**
* Update a key according to its version.
@@ -110,7 +112,7 @@ public interface MetastoreTable {
* <li>{@link MSException.Code.IllegalOp}/{@link
MSException.Code.ServiceDown}: other issues</li>
* </ul></p>
*
- * The key is updated only when the version matches its current version.
+ * <p>The key is updated only when the version matches its current version.
* In particular, if the provided version is:<ul>
* <li>{@link Version.ANY}: update the data without comparing its version.
* <b>Note this usage is not encouraged since it may mess up data
consistency.</b></li>
@@ -129,12 +131,12 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void put(String key, Value value, Version version,
MetastoreCallback<Version> cb, Object ctx);
+ void put(String key, Value value, Version version,
MetastoreCallback<Version> cb, Object ctx);
/**
* Remove a key by its version.
*
- * The key is removed only when the version matches its current version.
+ * <p>The key is removed only when the version matches its current version.
* If <code>version</code> is {@link Version.ANY}, the key would be
removed directly.
*
* <p>
@@ -154,8 +156,7 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void remove(String key, Version version,
- MetastoreCallback<Void> cb, Object ctx);
+ void remove(String key, Version version, MetastoreCallback<Void> cb,
Object ctx);
/**
* Open a cursor to loop over all the entries of the table,
@@ -168,7 +169,7 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void openCursor(MetastoreCallback<MetastoreCursor> cb, Object ctx);
+ void openCursor(MetastoreCallback<MetastoreCursor> cb, Object ctx);
/**
* Open a cursor to loop over all the entries of the table,
@@ -183,11 +184,10 @@ public interface MetastoreTable {
* @param ctx
* Callback context
*/
- public void openCursor(Set<String> fields,
- MetastoreCallback<MetastoreCursor> cb, Object ctx);
+ void openCursor(Set<String> fields, MetastoreCallback<MetastoreCursor> cb,
Object ctx);
/**
* Close the table.
*/
- public void close();
+ void close();
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTableItem.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTableItem.java
index c874b3f..349548b 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTableItem.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreTableItem.java
@@ -62,7 +62,7 @@ public class MetastoreTableItem {
/**
* Set the value of the item.
*
- * @return value of the item.
+ * @param value of the item.
*/
public void setValue(Versioned<Value> value) {
this.value = value;
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreUtils.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreUtils.java
index ab577f1..6e26f4d 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreUtils.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreUtils.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
*/
public class MetastoreUtils {
- protected final static Logger logger =
LoggerFactory.getLogger(MetastoreUtils.class);
+ private static final Logger logger =
LoggerFactory.getLogger(MetastoreUtils.class);
static class MultiMetastoreCallback<T> implements MetastoreCallback<T> {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreWatcher.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreWatcher.java
index 4c6ebc9..b751dfa 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreWatcher.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/MetastoreWatcher.java
@@ -17,6 +17,9 @@
*/
package org.apache.bookkeeper.metastore;
+/**
+ * Metastore watcher.
+ */
public interface MetastoreWatcher {
- public void process(MSWatchedEvent e);
+ void process(MSWatchedEvent e);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/Value.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/Value.java
index ae2423c..fef83db 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/Value.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/Value.java
@@ -17,24 +17,26 @@
*/
package org.apache.bookkeeper.metastore;
-import com.google.common.primitives.UnsignedBytes;
-import com.google.common.hash.Hasher;
+import static com.google.common.base.Charsets.UTF_8;
+import static org.apache.bookkeeper.metastore.MetastoreTable.ALL_FIELDS;
+
import com.google.common.hash.HashFunction;
+import com.google.common.hash.Hasher;
import com.google.common.hash.Hashing;
+import com.google.common.primitives.UnsignedBytes;
import java.nio.charset.Charset;
+import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import java.util.Collections;
-
-import static com.google.common.base.Charsets.UTF_8;
-
-import static org.apache.bookkeeper.metastore.MetastoreTable.ALL_FIELDS;
+/**
+ * A metastore value.
+ */
public class Value {
- static final Comparator<byte[]> comparator =
+ private static final Comparator<byte[]> comparator =
UnsignedBytes.lexicographicalComparator();
protected Map<String, byte[]> fields;
@@ -107,7 +109,7 @@ public class Value {
if (fields.size() != other.fields.size()) {
return false;
}
- for (Map.Entry<String,byte[]> entry : fields.entrySet()) {
+ for (Map.Entry<String, byte[]> entry : fields.entrySet()) {
String f = entry.getKey();
byte[] v1 = entry.getValue();
byte[] v2 = other.fields.get(f);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/package-info.java
similarity index 63%
copy from
bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
copy to
bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/package-info.java
index 791f106..61773bf 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/metastore/package-info.java
@@ -1,5 +1,4 @@
-/**
- *
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -16,27 +15,9 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- *
*/
-package org.apache.bookkeeper.sasl;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import org.apache.bookkeeper.conf.AbstractConfiguration;
-
-public interface JAASCredentialsContainer {
-
- Subject getSubject();
-
- LoginContext getLogin();
- void setLogin(LoginContext login);
-
- boolean isUsingTicketCache();
-
- String getPrincipal();
-
- AbstractConfiguration getConfiguration();
-
- String getLoginContextName();
-}
+/**
+ * MetaStore-related classes.
+ */
+package org.apache.bookkeeper.metastore;
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/AbstractDNSToSwitchMapping.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/AbstractDNSToSwitchMapping.java
index 99ed038..84e9bd4 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/AbstractDNSToSwitchMapping.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/AbstractDNSToSwitchMapping.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.bookkeeper.net;
import java.util.HashSet;
@@ -26,13 +25,13 @@ import org.apache.bookkeeper.conf.Configurable;
import org.apache.commons.configuration.Configuration;
/**
- * This is a base class for DNS to Switch mappings. <p/> It is not mandatory to
- * derive {@link DNSToSwitchMapping} implementations from it, but it is
strongly
+ * This is a base class for DNS to Switch mappings.
+ *
+ * <p>It is not mandatory to derive {@link DNSToSwitchMapping} implementations
from it, but it is strongly
* recommended, as it makes it easy for the Hadoop developers to add new
methods
* to this base class that are automatically picked up by all implementations.
- * <p/>
*
- * This class does not extend the <code>Configured</code>
+ * <p>This class does not extend the <code>Configured</code>
* base class, and should not be changed to do so, as it causes problems
* for subclasses. The constructor of the <code>Configured</code> calls
* the {@link #setConf(Configuration)} method, which will call into the
@@ -44,7 +43,7 @@ public abstract class AbstractDNSToSwitchMapping implements
DNSToSwitchMapping,
private Configuration conf;
/**
- * Create an unconfigured instance
+ * Create an unconfigured instance.
*/
protected AbstractDNSToSwitchMapping() {
}
@@ -73,12 +72,9 @@ public abstract class AbstractDNSToSwitchMapping implements
DNSToSwitchMapping,
* multi-rack. Subclasses may override this with methods that are more
aware
* of their topologies.
*
- * <p/>
- *
- * This method is used when parts of Hadoop need know whether to apply
+ * <p>This method is used when parts of Hadoop need know whether to apply
* single rack vs multi-rack policies, such as during block placement.
* Such algorithms behave differently if they are on multi-switch systems.
- * </p>
*
* @return true if the mapping thinks that it is on a single switch
*/
@@ -87,7 +83,7 @@ public abstract class AbstractDNSToSwitchMapping implements
DNSToSwitchMapping,
}
/**
- * Get a copy of the map (for diagnostics)
+ * Get a copy of the map (for diagnostics).
* @return a clone of the map or null for none known
*/
public Map<String, String> getSwitchMap() {
@@ -127,9 +123,10 @@ public abstract class AbstractDNSToSwitchMapping
implements DNSToSwitchMapping,
/**
* Query for a {@link DNSToSwitchMapping} instance being on a single
* switch.
- * <p/>
- * This predicate simply assumes that all mappings not derived from
+ *
+ * <p>This predicate simply assumes that all mappings not derived from
* this class are multi-switch.
+ *
* @param mapping the mapping to query
* @return true if the base class says it is single switch, or the mapping
* is not derived from this class.
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
index 382c221..e7f9804 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/BookieSocketAddress.java
@@ -20,18 +20,18 @@
*/
package org.apache.bookkeeper.net;
-import java.net.InetSocketAddress;
-import java.net.UnknownHostException;
+import static org.apache.bookkeeper.util.BookKeeperConstants.COLON;
import io.netty.channel.local.LocalAddress;
-import static org.apache.bookkeeper.util.BookKeeperConstants.COLON;
+import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
/**
* This is a data wrapper class that is an InetSocketAddress, it would use the
hostname
* provided in constructors directly.
- * <p>
- * The string representation of a BookieSocketAddress is : <hostname>:<port>
+ *
+ * <p>The string representation of a BookieSocketAddress is :
<hostname>:<port>
*/
public class BookieSocketAddress {
@@ -78,7 +78,7 @@ public class BookieSocketAddress {
}
/**
- * Maps the socketAddress to a "local" address
+ * Maps the socketAddress to a "local" address.
*/
public LocalAddress getLocalAddress() {
return new LocalAddress(socketAddress.toString());
@@ -95,8 +95,9 @@ public class BookieSocketAddress {
// Implement an equals method comparing two BookiSocketAddress objects.
@Override
public boolean equals(Object obj) {
- if (!(obj instanceof BookieSocketAddress))
+ if (!(obj instanceof BookieSocketAddress)) {
return false;
+ }
BookieSocketAddress that = (BookieSocketAddress) obj;
return this.hostname.equals(that.hostname) && (this.port == that.port);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CachedDNSToSwitchMapping.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CachedDNSToSwitchMapping.java
index 8176831..ac9aa32 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CachedDNSToSwitchMapping.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CachedDNSToSwitchMapping.java
@@ -34,12 +34,12 @@ public class CachedDNSToSwitchMapping extends
AbstractDNSToSwitchMapping {
private Map<String, String> cache = new ConcurrentHashMap<String, String>();
/**
- * The uncached mapping
+ * The uncached mapping.
*/
protected final DNSToSwitchMapping rawMapping;
/**
- * cache a raw DNS mapping
+ * Cache a raw DNS mapping.
* @param rawMapping the raw mapping to cache
*/
public CachedDNSToSwitchMapping(DNSToSwitchMapping rawMapping) {
@@ -79,7 +79,7 @@ public class CachedDNSToSwitchMapping extends
AbstractDNSToSwitchMapping {
List<String> resolvedHosts) {
// Cache the result
if (resolvedHosts != null) {
- for (int i=0; i<uncachedHosts.size(); i++) {
+ for (int i = 0; i < uncachedHosts.size(); i++) {
cache.put(uncachedHosts.get(i), resolvedHosts.get(i));
}
}
@@ -131,7 +131,7 @@ public class CachedDNSToSwitchMapping extends
AbstractDNSToSwitchMapping {
*/
@Override
public Map<String, String> getSwitchMap() {
- Map<String, String > switchMap = new HashMap<String, String>(cache);
+ Map<String, String> switchMap = new HashMap<String, String>(cache);
return switchMap;
}
@@ -143,7 +143,7 @@ public class CachedDNSToSwitchMapping extends
AbstractDNSToSwitchMapping {
/**
* Delegate the switch topology query to the raw mapping, via
- * {@link
AbstractDNSToSwitchMapping#isMappingSingleSwitch(DNSToSwitchMapping)}
+ * {@link
AbstractDNSToSwitchMapping#isMappingSingleSwitch(DNSToSwitchMapping)}.
* @return true iff the raw mapper is considered single-switch.
*/
@Override
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CommonConfigurationKeys.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CommonConfigurationKeys.java
index 12a3f1a..4a8fa56 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CommonConfigurationKeys.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/CommonConfigurationKeys.java
@@ -20,12 +20,15 @@
*/
package org.apache.bookkeeper.net;
+/**
+ * Common Configuration Keys.
+ */
public interface CommonConfigurationKeys {
// script file name to resolve network topology
- public static final String NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY =
"networkTopologyScriptFileName";
+ String NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY = "networkTopologyScriptFileName";
// number of arguments that network topology resolve script used
- public static final String NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY =
"networkTopologyScriptNumberArgs";
+ String NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY =
"networkTopologyScriptNumberArgs";
// default value of NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY
- public static final int NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_DEFAULT = 100;
+ int NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_DEFAULT = 100;
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNS.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNS.java
index d09e422..6ae5a81 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNS.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNS.java
@@ -18,9 +18,6 @@
// This code has been copied from hadoop-common 2.0.4-alpha
package org.apache.bookkeeper.net;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
@@ -35,6 +32,9 @@ import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* A class that provides direct and reverse lookup functionalities, allowing
* the querying of specific network interfaces or nameservers.
@@ -69,7 +69,7 @@ public class DNS {
// This is formed by reversing the IP numbers and appending
in-addr.arpa
//
String[] parts = hostIp.getHostAddress().split("\\.");
- if(parts.length !=4) {
+ if (parts.length != 4) {
//Not proper address. May be IPv6
throw new NamingException("IPV6");
}
@@ -80,9 +80,9 @@ public class DNS {
Attributes attribute;
try {
attribute = ictx.getAttributes("dns://" // Use
"dns:///" if the default
- + ((ns == null) ? "" : ns) +
+ + ((ns == null) ? "" : ns)
// nameserver is to be used
- "/" + reverseIP, new String[]{"PTR"});
+ + "/" + reverseIP, new String[]{"PTR"});
} finally {
ictx.close();
}
@@ -130,7 +130,7 @@ public class DNS {
}
/**
- * Like {@link DNS#getIPs(String, boolean), but returns all
+ * Like {@link DNS#getIPs(String, boolean)}, but returns all
* IPs associated with the given interface and its subinterfaces.
*/
public static String[] getIPs(String strInterface)
@@ -164,8 +164,7 @@ public class DNS {
netIf = getSubinterface(strInterface);
}
} catch (SocketException e) {
- LOG.warn("I/O error finding interface " + strInterface +
- ": " + e.getMessage());
+ LOG.warn("I/O error finding interface {}: {}", strInterface,
e.getMessage());
return new String[]{cachedHostAddress};
}
if (netIf == null) {
@@ -208,7 +207,7 @@ public class DNS {
/**
* Returns all the host names associated by the provided nameserver with
the
- * address bound to the specified network interface
+ * address bound to the specified network interface.
*
* @param strInterface The name of the network interface or subinterface
to query
* (e.g. eth0 or eth0:0)
@@ -240,7 +239,7 @@ public class DNS {
/**
* Determine the local hostname; retrieving it from cache if it is known
- * If we cannot determine our host name, return "localhost"
+ * If we cannot determine our host name, return "localhost".
*
* @return the local hostname or "localhost"
*/
@@ -280,8 +279,8 @@ public class DNS {
} catch (UnknownHostException noLocalHostAddressException) {
//at this point, deep trouble
LOG.error("Unable to determine local loopback address "
- + "of \"" + LOCALHOST + "\" " +
- "-this system's network configuration is unsupported",
e);
+ + "of \"" + LOCALHOST + "\" "
+ + "-this system's network configuration is
unsupported", e);
address = null;
}
}
@@ -290,7 +289,7 @@ public class DNS {
/**
* Returns all the host names associated by the default nameserver with the
- * address bound to the specified network interface
+ * address bound to the specified network interface.
*
* @param strInterface The name of the network interface to query (e.g.
eth0)
* @return The list of host names associated with IPs bound to the network
@@ -304,7 +303,7 @@ public class DNS {
/**
* Returns the default (first) host name associated by the provided
- * nameserver with the address bound to the specified network interface
+ * nameserver with the address bound to the specified network interface.
*
* @param strInterface The name of the network interface to query (e.g.
eth0)
* @param nameserver The DNS host name
@@ -328,7 +327,7 @@ public class DNS {
/**
* Returns the default (first) host name associated by the default
- * nameserver with the address bound to the specified network interface
+ * nameserver with the address bound to the specified network interface.
*
* @param strInterface The name of the network interface to query (e.g.
eth0).
* Must not be null.
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNSToSwitchMapping.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNSToSwitchMapping.java
index 96df655..bdf9ce5 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNSToSwitchMapping.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/DNSToSwitchMapping.java
@@ -17,10 +17,10 @@
*/
package org.apache.bookkeeper.net;
-import java.util.List;
-
import com.google.common.annotations.Beta;
+import java.util.List;
+
/**
* An interface that must be implemented to allow pluggable
* DNS-name/IP-address to RackID resolvers.
@@ -38,9 +38,8 @@ public interface DNSToSwitchMapping {
* Note the hostname/ip-address is not part of the returned path.
* The network topology of the cluster would determine the number of
* components in the network path.
- * <p/>
*
- * If a name cannot be resolved to a rack, the implementation
+ * <p>If a name cannot be resolved to a rack, the implementation
* should return {@link NetworkTopology#DEFAULT_REGION_AND_RACK}. This
* is what the bundled implementations do, though it is not a formal
requirement
*
@@ -48,21 +47,21 @@ public interface DNSToSwitchMapping {
* @return list of resolved network paths.
* If <i>names</i> is empty, the returned list is also empty
*/
- public List<String> resolve(List<String> names);
+ List<String> resolve(List<String> names);
/**
* Reload all of the cached mappings.
*
- * If there is a cache, this method will clear it, so that future accesses
+ * <p>If there is a cache, this method will clear it, so that future
accesses
* will get a chance to see the new data.
*/
- public void reloadCachedMappings();
+ void reloadCachedMappings();
/**
* Hints what to use with implementation when InetSocketAddress is
converted
* to String:
* hostname (addr.getHostName(), default)
- * or IP address (addr.getAddress().getHostAddress())
+ * or IP address (addr.getAddress().getHostAddress()).
* @return true if hostname, false if IP address. Default is true.
*/
default boolean useHostName() {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetUtils.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetUtils.java
index 6172e73..9776293 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetUtils.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetUtils.java
@@ -17,6 +17,9 @@
*/
package org.apache.bookkeeper.net;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
@@ -24,10 +27,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import com.google.common.base.Preconditions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Network Utilities.
+ */
public class NetUtils {
private static final Logger logger =
LoggerFactory.getLogger(NetUtils.class);
@@ -68,15 +73,14 @@ public class NetUtils {
if (dnsResolver.useHostName()) {
names.add(addr.getHostName());
- }
- else {
+ } else {
names.add(addr.getAddress().getHostAddress());
}
// resolve network addresses
List<String> rNames = dnsResolver.resolve(names);
- Preconditions.checkNotNull(rNames, "DNS Resolver should not return
null response.");
- Preconditions.checkState(rNames.size() == 1, "Expected exactly one
element");
+ checkNotNull(rNames, "DNS Resolver should not return null response.");
+ checkState(rNames.size() == 1, "Expected exactly one element");
return rNames.get(0);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopology.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopology.java
index 073be16..a6bcf77 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopology.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopology.java
@@ -20,16 +20,16 @@ package org.apache.bookkeeper.net;
import java.util.Set;
/**
- * Network Topology Interface
+ * Network Topology Interface.
*/
public interface NetworkTopology {
- public final static String DEFAULT_REGION = "/default-region";
- public final static String DEFAULT_RACK = "/default-rack";
- public final static String DEFAULT_REGION_AND_RACK = DEFAULT_REGION +
DEFAULT_RACK;
+ String DEFAULT_REGION = "/default-region";
+ String DEFAULT_RACK = "/default-rack";
+ String DEFAULT_REGION_AND_RACK = DEFAULT_REGION + DEFAULT_RACK;
/**
- * Add a node to the network topology
+ * Add a node to the network topology.
*
* @param node
* add the node to network topology
@@ -37,7 +37,7 @@ public interface NetworkTopology {
void add(Node node);
/**
- * Remove a node from nework topology
+ * Remove a node from nework topology.
*
* @param node
* remove the node from network topology
@@ -54,7 +54,7 @@ public interface NetworkTopology {
boolean contains(Node node);
/**
- * Retrieve a node from the network topology
+ * Retrieve a node from the network topology.
* @param loc
* @return
*/
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopologyImpl.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopologyImpl.java
index 59e6349..f004879 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopologyImpl.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NetworkTopologyImpl.java
@@ -41,9 +41,12 @@ import org.slf4j.LoggerFactory;
*/
public class NetworkTopologyImpl implements NetworkTopology {
- public final static int DEFAULT_HOST_LEVEL = 2;
+ public static final int DEFAULT_HOST_LEVEL = 2;
public static final Logger LOG =
LoggerFactory.getLogger(NetworkTopologyImpl.class);
+ /**
+ * A marker for an InvalidTopology Exception.
+ */
public static class InvalidTopologyException extends RuntimeException {
private static final long serialVersionUID = 1L;
@@ -59,33 +62,43 @@ public class NetworkTopologyImpl implements NetworkTopology
{
protected List<Node> children = new ArrayList<Node>();
private int numOfLeaves;
- /** Construct an InnerNode from a path-like string */
+ /**
+ * Construct an InnerNode from a path-like string.
+ */
InnerNode(String path) {
super(path);
}
- /** Construct an InnerNode from its name and its network location */
+ /**
+ * Construct an InnerNode from its name and its network location.
+ */
InnerNode(String name, String location) {
super(name, location);
}
- /** Construct an InnerNode
- * from its name, its network location, its parent, and its level */
+ /**
+ * Construct an InnerNode from its name, its network location, its
parent, and its level.
+ */
InnerNode(String name, String location, InnerNode parent, int level) {
super(name, location, parent, level);
}
- /** @return its children */
+ /**
+ * @return its children
+ */
List<Node> getChildren() {
return children;
}
- /** @return the number of children this node has */
+ /**
+ * @return the number of children this node has
+ */
int getNumOfChildren() {
return children.size();
}
- /** Judge if this node represents a rack
+ /**
+ * Judge if this node represents a rack.
* @return true if it has no child or its children are not InnerNodes
*/
boolean isRack() {
@@ -101,7 +114,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
return true;
}
- /** Judge if this node is an ancestor of node <i>n</i>
+ /**
+ * Judge if this node is an ancestor of node <i>n</i>.
*
* @param n a node
* @return true if this node is an ancestor of <i>n</i>
@@ -112,7 +126,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
+ NodeBase.PATH_SEPARATOR_STR);
}
- /** Judge if this node is the parent of node <i>n</i>
+ /**
+ * Judge if this node is the parent of node <i>n</i>.
*
* @param n a node
* @return true if this node is the parent of <i>n</i>
@@ -121,7 +136,9 @@ public class NetworkTopologyImpl implements NetworkTopology
{
return n.getNetworkLocation().equals(getPath(this));
}
- /* Return a child name of this node who is an ancestor of node
<i>n</i> */
+ /**
+ * Return a child name of this node who is an ancestor of node
<i>n</i>.
+ */
private String getNextAncestorName(Node n) {
if (!isAncestor(n)) {
throw new IllegalArgumentException(this + "is not an ancestor
of " + n);
@@ -131,19 +148,22 @@ public class NetworkTopologyImpl implements
NetworkTopology {
name = name.substring(1);
}
int index = name.indexOf(PATH_SEPARATOR);
- if (index != -1)
+ if (index != -1) {
name = name.substring(0, index);
+ }
return name;
}
- /** Add node <i>n</i> to the subtree of this node
+ /**
+ * Add node <i>n</i> to the subtree of this node.
* @param n node to be added
* @return true if the node is added; false otherwise
*/
boolean add(Node n) {
- if (!isAncestor(n))
+ if (!isAncestor(n)) {
throw new IllegalArgumentException(n.getName() + ", which is
located at " + n.getNetworkLocation()
+ ", is not a decendent of " + getPath(this));
+ }
if (isParent(n)) {
// this node is the parent of n; add n directly
n.setParent(this);
@@ -198,16 +218,18 @@ public class NetworkTopologyImpl implements
NetworkTopology {
return new InnerNode(parentName, getPath(this), this,
this.getLevel() + 1);
}
- /** Remove node <i>n</i> from the subtree of this node
+ /**
+ * Remove node <i>n</i> from the subtree of this node.
* @param n node to be deleted
* @return true if the node is deleted; false otherwise
*/
boolean remove(Node n) {
String parent = n.getNetworkLocation();
String currentPath = getPath(this);
- if (!isAncestor(n))
+ if (!isAncestor(n)) {
throw new IllegalArgumentException(n.getName() + ", which is
located at " + parent
+ ", is not a descendent of " + currentPath);
+ }
if (isParent(n)) {
// this node is the parent of n; remove n directly
for (int i = 0; i < children.size(); i++) {
@@ -246,14 +268,16 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
} // end of remove
- /** Given a node's string representation, return a reference to the
node
+ /**
+ * Given a node's string representation, return a reference to the
node.
* @param loc string location of the form /rack/node
* @return null if the node is not found or the childnode is there but
* not an instance of {@link InnerNode}
*/
private Node getLoc(String loc) {
- if (loc == null || loc.length() == 0)
+ if (loc == null || loc.length() == 0) {
return this;
+ }
String[] path = loc.split(PATH_SEPARATOR_STR, 2);
Node childnode = null;
@@ -262,19 +286,20 @@ public class NetworkTopologyImpl implements
NetworkTopology {
childnode = children.get(i);
}
}
- if (childnode == null)
+ if (childnode == null) {
return null; // non-existing node
- if (path.length == 1)
+ } else if (path.length == 1) {
return childnode;
- if (childnode instanceof InnerNode) {
+ } else if (childnode instanceof InnerNode) {
return ((InnerNode) childnode).getLoc(path[1]);
} else {
return null;
}
}
- /** get <i>leafIndex</i> leaf of this subtree
- * if it is not in the <i>excludedNode</i>
+ /**
+ * Get <i>leafIndex</i> leaf of this subtree
+ * if it is not in the <i>excludedNode</i>.
*
* @param leafIndex an indexed leaf of the node
* @param excludedNode an excluded node (can be null)
@@ -329,7 +354,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
}
/**
- * Determine if children a leaves, default implementation calls
{@link #isRack()}
+ * Determine if children a leaves, default implementation calls
{@link #isRack()}.
+ *
* <p>To be overridden in subclasses for specific InnerNode
implementations,
* as alternative to overriding the full {@link #getLeaf(int, Node)}
method.
*
@@ -348,29 +374,37 @@ public class NetworkTopologyImpl implements
NetworkTopology {
} // end of InnerNode
/**
- * the root cluster map
+ * The root cluster map.
*/
InnerNode clusterMap;
- /** Depth of all leaf nodes */
+ /**
+ * Depth of all leaf nodes.
+ */
private int depthOfAllLeaves = -1;
- /** rack counter */
+ /**
+ * Rack counter.
+ */
protected int numOfRacks = 0;
- /** the lock used to manage access */
+ /**
+ * The lock used to manage access.
+ */
protected ReadWriteLock netlock = new ReentrantReadWriteLock();
public NetworkTopologyImpl() {
clusterMap = new InnerNode(InnerNode.ROOT);
}
- /** Add a leaf node
- * Update node counter & rack counter if necessary
+ /**
+ * Add a leaf node.
+ * Update node counter and rack counter if necessary
* @param node node to be added; can be null
* @exception IllegalArgumentException if add a node to a leave
or node to be added is not a leaf
*/
public void add(Node node) {
- if (node == null)
+ if (node == null) {
return;
+ }
String oldTopoStr = this.toString();
if (node instanceof InnerNode) {
throw new IllegalArgumentException("Not allow to add an inner
node: " + NodeBase.getPath(node));
@@ -428,7 +462,7 @@ public class NetworkTopologyImpl implements NetworkTopology
{
}
/**
- * Given a string representation of a rack, return its children
+ * Given a string representation of a rack, return its children.
* @param loc a path-like string representation of a rack
* @return a newly allocated list with all the node's children
*/
@@ -449,15 +483,17 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
}
- /** Remove a node
- * Update node counter and rack counter if necessary
+ /**
+ * Remove a node.
+ * Update node counter and rack counter if necessary.
+ *
* @param node node to be removed; can be null
*/
@Override
public void remove(Node node) {
- if (node == null)
+ if (node == null) {
return;
- if (node instanceof InnerNode) {
+ } else if (node instanceof InnerNode) {
throw new IllegalArgumentException("Not allow to remove an inner
node: " + NodeBase.getPath(node));
}
LOG.info("Removing a node: " + NodeBase.getPath(node));
@@ -477,15 +513,17 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
}
- /** Check if the tree contains node <i>node</i>
+ /**
+ * Check if the tree contains node <i>node</i>.
*
* @param node a node
* @return true if <i>node</i> is already in the tree; false otherwise
*/
@Override
public boolean contains(Node node) {
- if (node == null)
+ if (node == null) {
return false;
+ }
netlock.readLock().lock();
try {
Node parent = node.getParent();
@@ -500,7 +538,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
return false;
}
- /** Given a string representation of a node, return its reference
+ /**
+ * Given a string representation of a node, return its reference.
*
* @param loc
* a path-like string representation of a node
@@ -511,18 +550,19 @@ public class NetworkTopologyImpl implements
NetworkTopology {
netlock.readLock().lock();
try {
loc = NodeBase.normalize(loc);
- if (!NodeBase.ROOT.equals(loc))
+ if (!NodeBase.ROOT.equals(loc)) {
loc = loc.substring(1);
+ }
return clusterMap.getLoc(loc);
} finally {
netlock.readLock().unlock();
}
}
- /** Given a string representation of a rack for a specific network
- * location
+ /**
+ * Given a string representation of a rack for a specific network location.
*
- * To be overridden in subclasses for specific NetworkTopology
+ * <p>To be overridden in subclasses for specific NetworkTopology
* implementations, as alternative to overriding the full
* {@link #getRack(String)} method.
* @param loc
@@ -554,8 +594,10 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
}
- /** Return the distance between two nodes
- * It is assumed that the distance from one node to its parent is 1
+ /**
+ * Return the distance between two nodes.
+ *
+ * <p>It is assumed that the distance from one node to its parent is 1
* The distance between two nodes is calculated by summing up their
distances
* to their closest common ancestor.
* @param node1 one node
@@ -601,7 +643,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
return dis + 2;
}
- /** Check if two nodes are on the same rack
+ /**
+ * Check if two nodes are on the same rack.
* @param node1 one node (can be null)
* @param node2 another node (can be null)
* @return true if node1 and node2 are on the same rack; false otherwise
@@ -622,21 +665,21 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
/**
- * Check if network topology is aware of NodeGroup
+ * Check if network topology is aware of NodeGroup.
*/
public boolean isNodeGroupAware() {
return false;
}
/**
- * Return false directly as not aware of NodeGroup, to be override in
sub-class
+ * Return false directly as not aware of NodeGroup, to be override in
sub-class.
*/
public boolean isOnSameNodeGroup(Node node1, Node node2) {
return false;
}
/**
- * Compare the parents of each node for equality
+ * Compare the parents of each node for equality.
*
* <p>To be overridden in subclasses for specific NetworkTopology
* implementations, as alternative to overriding the full
@@ -652,11 +695,13 @@ public class NetworkTopologyImpl implements
NetworkTopology {
return node1.getParent() == node2.getParent();
}
- final protected static Random r = new Random();
+ private static final Random r = new Random();
- /** randomly choose one node from <i>scope</i>
- * if scope starts with ~, choose one from the all nodes except for the
- * ones in <i>scope</i>; otherwise, choose one from <i>scope</i>
+ /**
+ * Randomly choose one node from <i>scope</i>.
+ *
+ * <p>If scope starts with ~, choose one from the all nodes except for the
+ * ones in <i>scope</i>; otherwise, choose one from <i>scope</i>.
* @param scope range of nodes from which a node will be chosen
* @return the chosen node
*/
@@ -702,7 +747,8 @@ public class NetworkTopologyImpl implements NetworkTopology
{
return innerNode.getLeaf(leaveIndex, node);
}
- /** return leaves in <i>scope</i>
+ /**
+ * Return leaves in <i>scope</i>.
* @param scope a path string
* @return leaves nodes under specific scope
*/
@@ -737,8 +783,10 @@ public class NetworkTopologyImpl implements
NetworkTopology {
}
}
- /** return the number of leaves in <i>scope</i> but not in
<i>excludedNodes</i>
- * if scope starts with ~, return the number of nodes that are not
+ /**
+ * Return the number of leaves in <i>scope</i> but not in
<i>excludedNodes</i>.
+ *
+ * <p>If scope starts with ~, return the number of nodes that are not
* in <i>scope</i> and <i>excludedNodes</i>;
* @param scope a path string that may start with ~
* @param excludedNodes a list of nodes
@@ -775,7 +823,9 @@ public class NetworkTopologyImpl implements NetworkTopology
{
}
}
- /** convert a network tree to a string */
+ /**
+ * Convert a network tree to a string.
+ */
@Override
public String toString() {
// print the number of racks
@@ -820,8 +870,10 @@ public class NetworkTopologyImpl implements
NetworkTopology {
return networkLocation.substring(index);
}
- /** swap two array items */
- static protected void swap(Node[] nodes, int i, int j) {
+ /**
+ * Swap two array items.
+ */
+ protected static void swap(Node[] nodes, int i, int j) {
Node tempNode;
tempNode = nodes[j];
nodes[j] = nodes[i];
@@ -860,8 +912,9 @@ public class NetworkTopologyImpl implements NetworkTopology
{
} else if (localRackNode == -1 && isOnSameRack(reader,
nodes[i])) {
//local rack
localRackNode = i;
- if (tempIndex != 0)
+ if (tempIndex != 0) {
break;
+ }
}
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/Node.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/Node.java
index 62ec6c0..fe2d9ce 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/Node.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/Node.java
@@ -31,34 +31,37 @@ import com.google.common.annotations.Beta;
@Beta
public interface Node {
/** @return the string representation of this node's network location at
the specified level in the hierarchy*/
- public String getNetworkLocation(int level);
+ String getNetworkLocation(int level);
/** @return the string representation of this node's network location */
- public String getNetworkLocation();
+ String getNetworkLocation();
- /** Set this node's network location
+ /**
+ * Set this node's network location.
* @param location the location
*/
- public void setNetworkLocation(String location);
+ void setNetworkLocation(String location);
/** @return this node's name */
- public String getName();
+ String getName();
/** @return this node's parent */
- public Node getParent();
+ Node getParent();
- /** Set this node's parent
+ /**
+ * Set this node's parent.
* @param parent the parent
*/
- public void setParent(Node parent);
+ void setParent(Node parent);
/** @return this node's level in the tree.
* E.g. the root of a tree returns 0 and its children return 1
*/
- public int getLevel();
+ int getLevel();
- /** Set this node's level in the tree
+ /**
+ * Set this node's level in the tree.
* @param i the level
*/
- public void setLevel(int i);
+ void setLevel(int i);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NodeBase.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NodeBase.java
index 13ddfce..3373b2e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NodeBase.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/NodeBase.java
@@ -17,27 +17,36 @@
*/
package org.apache.bookkeeper.net;
-/** A base class that implements interface Node
- *
+/**
+ * A base class that implements interface Node.
*/
public class NodeBase implements Node {
- /** Path separator {@value} */
- public final static char PATH_SEPARATOR = '/';
- /** Path separator as a string {@value} */
- public final static String PATH_SEPARATOR_STR = "/";
- /** string representation of root {@value} */
- public final static String ROOT = "";
+ /**
+ * Path separator {@value}.
+ */
+ public static final char PATH_SEPARATOR = '/';
+ /**
+ * Path separator as a string {@value}.
+ */
+ public static final String PATH_SEPARATOR_STR = "/";
+ /**
+ * String representation of root {@value}.
+ */
+ public static final String ROOT = "";
protected String name; //host:port#
protected String location; //string representation of this node's location
protected int level; //which level of the tree the node resides
protected Node parent; //its parent
- /** Default constructor */
+ /**
+ * Default constructor.
+ */
public NodeBase() {
}
- /** Construct a node from its path
+ /**
+ * Construct a node from its path.
* @param path
* a concatenation of this node's location, the path seperator, and its
name
*/
@@ -51,7 +60,8 @@ public class NodeBase implements Node {
}
}
- /** Construct a node from its name and its location
+ /**
+ * Construct a node from its name and its location.
* @param name this node's name (can be null, must not contain {@link
#PATH_SEPARATOR})
* @param location this node's location
*/
@@ -59,7 +69,8 @@ public class NodeBase implements Node {
set(name, normalize(location));
}
- /** Construct a node from its name and its location
+ /**
+ * Construct a node from its name and its location.
* @param name this node's name (can be null, must not contain {@link
#PATH_SEPARATOR})
* @param location this node's location
* @param parent this node's parent node
@@ -72,13 +83,14 @@ public class NodeBase implements Node {
}
/**
- * set this node's name and location
+ * Set this node's name and location.
* @param name the (nullable) name -which cannot contain the {@link
#PATH_SEPARATOR}
* @param location the location
*/
private void set(String name, String location) {
- if (name != null && name.contains(PATH_SEPARATOR_STR))
+ if (name != null && name.contains(PATH_SEPARATOR_STR)) {
throw new IllegalArgumentException("Network location name contains
/: " + name);
+ }
this.name = (name == null) ? "" : name;
this.location = location;
}
@@ -95,7 +107,8 @@ public class NodeBase implements Node {
return location;
}
- /** Set this node's network location
+ /**
+ * Set this node's network location.
* @param location the location
*/
@Override
@@ -104,7 +117,7 @@ public class NodeBase implements Node {
}
/**
- * Get the path of a node
+ * Get the path of a node.
* @param node a non-null node
* @return the path of a node
*/
@@ -118,7 +131,8 @@ public class NodeBase implements Node {
return getPath(this);
}
- /** Normalize a path by stripping off any trailing {@link #PATH_SEPARATOR}
+ /**
+ * Normalize a path by stripping off any trailing {@link #PATH_SEPARATOR}.
* @param path path to normalize.
* @return the normalised path
* If <i>path</i>is null or empty {@link #ROOT} is returned
@@ -126,8 +140,9 @@ public class NodeBase implements Node {
* is not {@link #PATH_SEPARATOR}
*/
public static String normalize(String path) {
- if (path == null || path.length() == 0)
+ if (path == null || path.length() == 0) {
return ROOT;
+ }
if (path.charAt(0) != PATH_SEPARATOR) {
throw new IllegalArgumentException("Network Location path does not
start with " + PATH_SEPARATOR_STR + ": "
@@ -147,7 +162,8 @@ public class NodeBase implements Node {
return parent;
}
- /** Set this node's parent
+ /**
+ * Set this node's parent.
* @param parent the parent
*/
@Override
@@ -163,7 +179,8 @@ public class NodeBase implements Node {
return level;
}
- /** Set this node's level in the tree
+ /**
+ * Set this node's level in the tree.
* @param level the level
*/
@Override
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/ScriptBasedMapping.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/ScriptBasedMapping.java
index d9cd000..49f3c9a 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/ScriptBasedMapping.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/ScriptBasedMapping.java
@@ -45,34 +45,34 @@ import org.apache.commons.logging.LogFactory;
public final class ScriptBasedMapping extends CachedDNSToSwitchMapping {
/**
- * Minimum number of arguments: {@value}
+ * Minimum number of arguments: {@value}.
*/
static final int MIN_ALLOWABLE_ARGS = 1;
/**
- * Default number of arguments: {@value}
+ * Default number of arguments: {@value}.
*/
static final int DEFAULT_ARG_COUNT =
CommonConfigurationKeys.NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_DEFAULT;
/**
- * key to the script filename {@value}
+ * Key to the script filename {@value}.
*/
static final String SCRIPT_FILENAME_KEY =
CommonConfigurationKeys.NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY;
/**
- * key to the argument count that the script supports
- * {@value}
+ * Key to the argument count that the script supports
+ * {@value}.
*/
static final String SCRIPT_ARG_COUNT_KEY =
CommonConfigurationKeys.NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY;
/**
* Text used in the {@link #toString()} method if there is no string
- * {@value}
+ * {@value}.
*/
public static final String NO_SCRIPT = "no script";
/**
* Create an instance with the default configuration.
- * </p>
- * Calling {@link #setConf(Configuration)} will trigger a
+ *
+ * <p>Calling {@link #setConf(Configuration)} will trigger a
* re-evaluation of the configuration settings and so be used to
* set up the mapping script.
*
@@ -82,7 +82,7 @@ public final class ScriptBasedMapping extends
CachedDNSToSwitchMapping {
}
/**
- * Create an instance from the given configuration
+ * Create an instance from the given configuration.
* @param conf configuration
*/
public ScriptBasedMapping(Configuration conf) {
@@ -91,7 +91,7 @@ public final class ScriptBasedMapping extends
CachedDNSToSwitchMapping {
}
/**
- * Get the cached mapping and convert it to its real type
+ * Get the cached mapping and convert it to its real type.
* @return the inner raw script mapping.
*/
private RawScriptBasedMapping getRawMapping() {
@@ -110,8 +110,8 @@ public final class ScriptBasedMapping extends
CachedDNSToSwitchMapping {
/**
* {@inheritDoc}
- * <p/>
- * This will get called in the superclass constructor, so a check is needed
+ *
+ * <p>This will get called in the superclass constructor, so a check is
needed
* to ensure that the raw mapping is defined before trying to relaying a
null
* configuration.
* @param conf
@@ -124,7 +124,7 @@ public final class ScriptBasedMapping extends
CachedDNSToSwitchMapping {
/**
* This is the uncached script mapping that is fed into the cache managed
- * by the superclass {@link CachedDNSToSwitchMapping}
+ * by the superclass {@link CachedDNSToSwitchMapping}.
*/
private static final class RawScriptBasedMapping extends
AbstractDNSToSwitchMapping {
private String scriptName;
@@ -132,7 +132,7 @@ public final class ScriptBasedMapping extends
CachedDNSToSwitchMapping {
private static final Log LOG =
LogFactory.getLog(ScriptBasedMapping.class);
/**
- * Set the configuration and extract the configuration parameters of
interest
+ * Set the configuration and extract the configuration parameters of
interest.
* @param conf the new configuration
*/
@Override
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/StabilizeNetworkTopology.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/StabilizeNetworkTopology.java
index e438634..a00cbe3 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/StabilizeNetworkTopology.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/StabilizeNetworkTopology.java
@@ -17,10 +17,6 @@
*/
package org.apache.bookkeeper.net;
-import org.apache.bookkeeper.util.MathUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import io.netty.util.HashedWheelTimer;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;
@@ -30,6 +26,10 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.TimeUnit;
+import org.apache.bookkeeper.util.MathUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* This is going to provide a stabilize network topology regarding to flapping
zookeeper registration.
*/
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/package-info.java
similarity index 63%
copy from
bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
copy to
bookkeeper-server/src/main/java/org/apache/bookkeeper/net/package-info.java
index 791f106..d6c024b 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/net/package-info.java
@@ -1,5 +1,4 @@
-/**
- *
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -16,27 +15,9 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- *
*/
-package org.apache.bookkeeper.sasl;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import org.apache.bookkeeper.conf.AbstractConfiguration;
-
-public interface JAASCredentialsContainer {
-
- Subject getSubject();
-
- LoginContext getLogin();
- void setLogin(LoginContext login);
-
- boolean isUsingTicketCache();
-
- String getPrincipal();
-
- AbstractConfiguration getConfiguration();
-
- String getLoginContextName();
-}
+/**
+ * Network-related classes.
+ */
+package org.apache.bookkeeper.net;
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
index 791f106..7523e40 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
@@ -24,6 +24,9 @@ import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import org.apache.bookkeeper.conf.AbstractConfiguration;
+/**
+ * JAAS Credentials Container.
+ */
public interface JAASCredentialsContainer {
Subject getSubject();
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProvider.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProvider.java
index cb0ca23..6a81219 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProvider.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProvider.java
@@ -25,15 +25,19 @@ import java.util.regex.Pattern;
import javax.security.auth.Subject;
import javax.security.auth.login.LoginException;
import javax.security.sasl.SaslException;
+
import org.apache.bookkeeper.auth.AuthCallbacks;
import org.apache.bookkeeper.auth.AuthToken;
import org.apache.bookkeeper.auth.BookieAuthProvider;
-import org.apache.bookkeeper.proto.BookieConnectionPeer;
import org.apache.bookkeeper.client.BKException;
import org.apache.bookkeeper.conf.ServerConfiguration;
+import org.apache.bookkeeper.proto.BookieConnectionPeer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * SASL Bookie Authentication Provider.
+ */
public class SASLBookieAuthProvider implements BookieAuthProvider {
private static final Logger LOG =
LoggerFactory.getLogger(SASLBookieAuthProvider.class);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProviderFactory.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProviderFactory.java
index c2e9ae3..a5fe1d8 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProviderFactory.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLBookieAuthProviderFactory.java
@@ -23,6 +23,7 @@ package org.apache.bookkeeper.sasl;
import java.io.IOException;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
+
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
@@ -37,15 +38,16 @@ import javax.security.auth.login.LoginException;
import javax.security.sasl.AuthorizeCallback;
import javax.security.sasl.RealmCallback;
import javax.security.sasl.SaslException;
+
import org.apache.bookkeeper.auth.AuthCallbacks;
-import org.apache.bookkeeper.proto.BookieConnectionPeer;
import org.apache.bookkeeper.conf.AbstractConfiguration;
import org.apache.bookkeeper.conf.ServerConfiguration;
+import org.apache.bookkeeper.proto.BookieConnectionPeer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * BookieAuthProvider which uses JDK-bundled SASL
+ * BookieAuthProvider which uses JDK-bundled SASL.
*/
public class SASLBookieAuthProviderFactory implements
org.apache.bookkeeper.auth.BookieAuthProvider.Factory,
JAASCredentialsContainer {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientAuthProvider.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientAuthProvider.java
index 69b94f3..052c34c 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientAuthProvider.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientAuthProvider.java
@@ -26,6 +26,7 @@ import java.net.InetSocketAddress;
import java.net.SocketAddress;
import javax.security.auth.Subject;
import javax.security.sasl.SaslException;
+
import org.apache.bookkeeper.auth.AuthCallbacks;
import org.apache.bookkeeper.auth.AuthToken;
import org.apache.bookkeeper.auth.ClientAuthProvider;
@@ -33,6 +34,9 @@ import org.apache.bookkeeper.client.BKException;
import org.apache.bookkeeper.proto.ClientConnectionPeer;
import org.slf4j.LoggerFactory;
+/**
+ * SASL Client Authentication Provider.
+ */
public class SASLClientAuthProvider implements ClientAuthProvider {
private static final org.slf4j.Logger LOG =
LoggerFactory.getLogger(SASLClientAuthProvider.class);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientProviderFactory.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientProviderFactory.java
index c7b0f96..180a9d1 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientProviderFactory.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SASLClientProviderFactory.java
@@ -20,7 +20,14 @@
*/
package org.apache.bookkeeper.sasl;
+import static
org.apache.bookkeeper.conf.ClientConfiguration.CLIENT_ROLE_SYSTEM;
+import static
org.apache.bookkeeper.sasl.SaslConstants.JAAS_AUDITOR_SECTION_NAME;
+import static
org.apache.bookkeeper.sasl.SaslConstants.JAAS_CLIENT_SECTION_NAME;
+import static
org.apache.bookkeeper.sasl.SaslConstants.JAAS_DEFAULT_AUDITOR_SECTION_NAME;
+import static
org.apache.bookkeeper.sasl.SaslConstants.JAAS_DEFAULT_CLIENT_SECTION_NAME;
+
import java.io.IOException;
+
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosTicket;
import javax.security.auth.login.AppConfigurationEntry;
@@ -28,15 +35,16 @@ import javax.security.auth.login.Configuration;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
import javax.security.sasl.SaslException;
+
import org.apache.bookkeeper.auth.AuthCallbacks;
import org.apache.bookkeeper.auth.ClientAuthProvider;
-import org.apache.bookkeeper.proto.ClientConnectionPeer;
import org.apache.bookkeeper.conf.AbstractConfiguration;
import org.apache.bookkeeper.conf.ClientConfiguration;
+import org.apache.bookkeeper.proto.ClientConnectionPeer;
import org.slf4j.LoggerFactory;
/**
- * ClientAuthProvider which uses JDK-bundled SASL
+ * ClientAuthProvider which uses JDK-bundled SASL.
*/
public class SASLClientProviderFactory implements
org.apache.bookkeeper.auth.ClientAuthProvider.Factory,
JAASCredentialsContainer {
@@ -60,10 +68,10 @@ public class SASLClientProviderFactory implements
this.login = loginClient();
this.subject = login.getSubject();
this.isKrbTicket =
!subject.getPrivateCredentials(KerberosTicket.class).isEmpty();
- boolean systemRole =
ClientConfiguration.CLIENT_ROLE_SYSTEM.equals(clientConfiguration.getClientRole());
+ boolean systemRole =
CLIENT_ROLE_SYSTEM.equals(clientConfiguration.getClientRole());
this.loginContextName = systemRole
- ?
clientConfiguration.getString(SaslConstants.JAAS_AUDITOR_SECTION_NAME,
SaslConstants.JAAS_DEFAULT_AUDITOR_SECTION_NAME)
- :
clientConfiguration.getString(SaslConstants.JAAS_CLIENT_SECTION_NAME,
SaslConstants.JAAS_DEFAULT_CLIENT_SECTION_NAME);
+ ? clientConfiguration.getString(JAAS_AUDITOR_SECTION_NAME,
JAAS_DEFAULT_AUDITOR_SECTION_NAME)
+ : clientConfiguration.getString(JAAS_CLIENT_SECTION_NAME,
JAAS_DEFAULT_CLIENT_SECTION_NAME);
if (isKrbTicket) {
this.isUsingTicketCache =
SaslConstants.isUsingTicketCache(loginContextName);
this.principal = SaslConstants.getPrincipal(loginContextName);
@@ -88,8 +96,8 @@ public class SASLClientProviderFactory implements
private LoginContext loginClient() throws SaslException, LoginException {
boolean systemRole =
ClientConfiguration.CLIENT_ROLE_SYSTEM.equals(clientConfiguration.getClientRole());
String configurationEntry = systemRole
- ?
clientConfiguration.getString(SaslConstants.JAAS_AUDITOR_SECTION_NAME,
SaslConstants.JAAS_DEFAULT_AUDITOR_SECTION_NAME)
- :
clientConfiguration.getString(SaslConstants.JAAS_CLIENT_SECTION_NAME,
SaslConstants.JAAS_DEFAULT_CLIENT_SECTION_NAME);
+ ? clientConfiguration.getString(JAAS_AUDITOR_SECTION_NAME,
JAAS_DEFAULT_AUDITOR_SECTION_NAME)
+ : clientConfiguration.getString(JAAS_CLIENT_SECTION_NAME,
JAAS_DEFAULT_CLIENT_SECTION_NAME);
AppConfigurationEntry[] entries = Configuration.getConfiguration()
.getAppConfigurationEntry(configurationEntry);
if (entries == null) {
@@ -97,7 +105,8 @@ public class SASLClientProviderFactory implements
return null;
}
try {
- LoginContext loginContext = new LoginContext(configurationEntry,
new SaslClientState.ClientCallbackHandler(null));
+ LoginContext loginContext = new LoginContext(configurationEntry,
+ new SaslClientState.ClientCallbackHandler(null));
loginContext.login();
return loginContext;
} catch (LoginException error) {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslClientState.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslClientState.java
index 19dc4ac..324480c 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslClientState.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslClientState.java
@@ -37,6 +37,9 @@ import javax.security.sasl.SaslException;
import org.apache.zookeeper.server.auth.KerberosName;
import org.slf4j.LoggerFactory;
+/**
+ * A SASL Client State data object.
+ */
public class SaslClientState {
private static final org.slf4j.Logger LOG =
LoggerFactory.getLogger(SaslClientState.class);
@@ -100,8 +103,7 @@ public class SaslClientState {
}
if (clientSubject != null) {
try {
- final byte[] retval
- = Subject.doAs(clientSubject, new
PrivilegedExceptionAction<byte[]>() {
+ final byte[] retval = Subject.doAs(clientSubject, new
PrivilegedExceptionAction<byte[]>() {
@Override
public byte[] run() throws SaslException {
return saslClient.evaluateChallenge(saslToken);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslConstants.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslConstants.java
index 9688b70..98a83b7 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslConstants.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslConstants.java
@@ -23,6 +23,9 @@ package org.apache.bookkeeper.sasl;
import javax.security.auth.login.AppConfigurationEntry;
import javax.security.auth.login.Configuration;
+/**
+ * SASL Constants.
+ */
public class SaslConstants {
static final String PLUGIN_NAME = "sasl";
@@ -37,8 +40,8 @@ public class SaslConstants {
public static final String JAAS_DEFAULT_CLIENT_SECTION_NAME = "BookKeeper";
/**
- * This is a regexp which limits the range of possible ids which can
connect to the Bookie using SASL
- * By default only clients whose id contains the word 'bookkeeper' are
allowed to connect
+ * This is a regexp which limits the range of possible ids which can
connect to the Bookie using SASL.
+ * By default only clients whose id contains the word 'bookkeeper' are
allowed to connect.
*/
public static final String JAAS_CLIENT_ALLOWED_IDS =
"saslJaasClientAllowedIds";
public static final String JAAS_CLIENT_ALLOWED_IDS_DEFAULT =
".*bookkeeper.*";
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslServerState.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslServerState.java
index d2686ac..2291526 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslServerState.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/SaslServerState.java
@@ -26,6 +26,7 @@ import java.security.PrivilegedExceptionAction;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
+
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
@@ -40,12 +41,13 @@ import javax.security.sasl.RealmCallback;
import javax.security.sasl.Sasl;
import javax.security.sasl.SaslException;
import javax.security.sasl.SaslServer;
+
import org.apache.bookkeeper.conf.ServerConfiguration;
import org.apache.zookeeper.server.auth.KerberosName;
import org.slf4j.LoggerFactory;
/**
- * Server side Sasl implementation
+ * Server side Sasl implementation.
*/
public class SaslServerState {
@@ -95,8 +97,8 @@ public class SaslServerState {
public SaslServer run() {
try {
SaslServer saslServer;
- saslServer = Sasl.createSaslServer("GSSAPI",
servicePrincipalName, serviceHostname, null,
- callbackHandler);
+ saslServer = Sasl.createSaslServer("GSSAPI",
servicePrincipalName, serviceHostname,
+ null, callbackHandler);
return saslServer;
} catch (SaslException e) {
throw new RuntimeException(e);
@@ -144,13 +146,15 @@ public class SaslServerState {
private String userName;
private final Map<String, String> credentials = new HashMap<>();
- public SaslServerCallbackHandler(Configuration configuration,
ServerConfiguration serverConfiguration) throws IOException {
+ public SaslServerCallbackHandler(Configuration configuration,
ServerConfiguration serverConfiguration)
+ throws IOException {
String configurationEntry =
serverConfiguration.getString(SaslConstants.JAAS_BOOKIE_SECTION_NAME,
SaslConstants.JAAS_DEFAULT_BOOKIE_SECTION_NAME);
AppConfigurationEntry configurationEntries[] =
configuration.getAppConfigurationEntry(configurationEntry);
if (configurationEntries == null) {
- String errorMessage = "Could not find a '" +
configurationEntry + "' entry in this configuration: Server cannot start.";
+ String errorMessage = "Could not find a '" + configurationEntry
+ + "' entry in this configuration: Server cannot start.";
throw new IOException(errorMessage);
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/TGTRefreshThread.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/TGTRefreshThread.java
index d059562..480b9e8 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/TGTRefreshThread.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/TGTRefreshThread.java
@@ -33,7 +33,9 @@ import org.apache.zookeeper.common.Time;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-// copied from Apache ZooKeeper TGT refresh logic
+/**
+ * TGT Refresh Thread. Copied from Apache ZooKeeper TGT refresh logic.
+ */
class TGTRefreshThread extends Thread {
private static final Logger LOG =
LoggerFactory.getLogger(TGTRefreshThread.class);
@@ -77,7 +79,7 @@ class TGTRefreshThread extends Thread {
// and try to renew the ticket.
private static final float TICKET_RENEW_WINDOW = 0.80f;
/**
- * Percentage of random jitter added to the renewal time
+ * Percentage of random jitter added to the renewal time.
*/
private static final float TICKET_RENEW_JITTER = 0.05f;
// Regardless of TICKET_RENEW_WINDOW setting above and the ticket expiry
time,
@@ -175,7 +177,8 @@ class TGTRefreshThread extends Thread {
break;
}
if (container.isUsingTicketCache()) {
- String cmd =
container.getConfiguration().getString(SaslConstants.KINIT_COMMAND,
SaslConstants.KINIT_COMMAND_DEFAULT);
+ String cmd =
container.getConfiguration().getString(SaslConstants.KINIT_COMMAND,
+ SaslConstants.KINIT_COMMAND_DEFAULT);
String kinitArgs = "-R";
int retry = 1;
while (retry >= 0) {
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/package-info.java
similarity index 66%
copy from
bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
copy to
bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/package-info.java
index 791f106..b81f52d 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/JAASCredentialsContainer.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/sasl/package-info.java
@@ -1,5 +1,4 @@
-/**
- *
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -16,27 +15,9 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- *
*/
-package org.apache.bookkeeper.sasl;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import org.apache.bookkeeper.conf.AbstractConfiguration;
-
-public interface JAASCredentialsContainer {
-
- Subject getSubject();
-
- LoginContext getLogin();
- void setLogin(LoginContext login);
-
- boolean isUsingTicketCache();
-
- String getPrincipal();
-
- AbstractConfiguration getConfiguration();
-
- String getLoginContextName();
-}
+/**
+ * SASL and JAAS Authentication classes.
+ */
+package org.apache.bookkeeper.sasl;
diff --git a/buildtools/src/main/resources/bookkeeper/server-suppressions.xml
b/buildtools/src/main/resources/bookkeeper/server-suppressions.xml
index 3e08a64..4daaf89 100644
--- a/buildtools/src/main/resources/bookkeeper/server-suppressions.xml
+++ b/buildtools/src/main/resources/bookkeeper/server-suppressions.xml
@@ -24,10 +24,7 @@
<suppress checks=".*" files=".*[\\/]bookie[\\/].*"/>
<suppress checks=".*"
files=".*[\\/]client[\\/](?:[^\\/]+$|(?!api)|(?!impl)[^\\/]+[\\/])"/>
<suppress checks=".*" files=".*[\\/]http[\\/].*"/>
- <suppress checks=".*" files=".*[\\/]metastore[\\/].*"/>
- <suppress checks=".*" files=".*[\\/]net[\\/].*"/>
<suppress checks=".*" files=".*[\\/]replication[\\/].*"/>
- <suppress checks=".*" files=".*[\\/]sasl[\\/].*"/>
<suppress checks=".*" files=".*[\\/]test[\\/].*"/>
<suppress checks=".*" files=".*[\\/]util[\\/].*"/>
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].