Fix code style issues
Fix e-mails in JavaDoc
Fix visibility warnings in MockForwarder
Add test ensuring public methods should be public.
Simplify logic of PitImpl
Remove redundant code: unused imports, unnecessary casts
Bump gradle version
Fix code analysis issues
Disable checkstyle code analysis; TODO configure to IntelliJ-style settings and re-enable
Add new logging statements
diff --git a/src/main/java/com/intel/jndn/mock/MockFace.java b/src/main/java/com/intel/jndn/mock/MockFace.java
index 16ffd52..dc1661a 100644
--- a/src/main/java/com/intel/jndn/mock/MockFace.java
+++ b/src/main/java/com/intel/jndn/mock/MockFace.java
@@ -36,8 +36,8 @@
/**
* A client-side face for unit testing.
*
- * @author Alexander Afanasyev, <aa@cs.ucla.edu>
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Alexander Afanasyev, aa@cs.ucla.edu
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public class MockFace extends Face {
/**
@@ -163,7 +163,7 @@
*
* @throws SecurityException should not be thrown by this test class
*/
- public MockFace() throws SecurityException {
+ public MockFace() {
this(DEFAULT_OPTIONS);
}
diff --git a/src/main/java/com/intel/jndn/mock/MockForwarder.java b/src/main/java/com/intel/jndn/mock/MockForwarder.java
index f2f2316..11ea73e 100644
--- a/src/main/java/com/intel/jndn/mock/MockForwarder.java
+++ b/src/main/java/com/intel/jndn/mock/MockForwarder.java
@@ -23,13 +23,9 @@
import net.named_data.jndn.Face;
import net.named_data.jndn.ForwardingFlags;
import net.named_data.jndn.Interest;
-import net.named_data.jndn.InterestFilter;
import net.named_data.jndn.Name;
import net.named_data.jndn.OnData;
-import net.named_data.jndn.OnInterestCallback;
import net.named_data.jndn.OnNetworkNack;
-import net.named_data.jndn.OnRegisterFailed;
-import net.named_data.jndn.OnRegisterSuccess;
import net.named_data.jndn.OnTimeout;
import net.named_data.jndn.encoding.WireFormat;
import net.named_data.jndn.security.KeyChain;
@@ -43,6 +39,9 @@
import java.util.logging.Logger;
/**
+ * A mock forwarder for use in testing applications without network IO. It does not fully implement NFD functionality
+ * but currently does allow registering prefixes (to receive sent interests) and limited forwarding flag support.
+ *
* @author Andrew Brown, andrew.brown@intel.com
*/
public class MockForwarder {
@@ -53,7 +52,7 @@
private final Pit pit = new PitImpl();
/**
- * Forwarding information base API; use this for recording FIB entries
+ * Forwarding information base API; use this for recording FIB entries.
*/
public interface Fib {
/**
@@ -70,7 +69,7 @@
}
/**
- * Entry in the FIB; use this for forwarding interest packets
+ * Entry in the FIB; use this for forwarding interest packets.
*/
public interface FibEntry {
/**
@@ -91,7 +90,7 @@
}
/**
- * Pending interest table API; use this for recording incoming interests
+ * Pending interest table API; use this for recording incoming interests.
*/
public interface Pit {
/**
@@ -113,7 +112,7 @@
}
/**
- * Entry in the PIT; use this for forwarding data packets
+ * Entry in the PIT; use this for forwarding data packets.
*/
public interface PitEntry {
/**
@@ -136,6 +135,15 @@
* Mock-specific API for recording the source and destination of incoming interests
*/
public interface OnInterestReceived {
+ /**
+ * Called when the mock forwarder receives incoming interests from a face; see {@link #register(Name,
+ * OnInterestReceived, ForwardingFlags)}.
+ *
+ * @param interest the incoming interest
+ * @param destinationTransport the transport that sent the interest; necessary for the forwarder to be able to
+ * register prefixes (TODO in the future this should also be a {@link Face}, perhaps rename as remoteFace).
+ * @param sourceFace the face receiving the interest; use {@link Face#putData(Data)} to reply
+ */
void in(Interest interest, Transport destinationTransport, Face sourceFace);
}
@@ -155,7 +163,7 @@
public Face connect() {
MockForwarderFace face = new MockForwarderFace();
face.setCommandSigningInfo(keyChain, certName);
- LOGGER.info("Connected face with: " + face.getTransport());
+ LOGGER.info("Connected new face using transport: " + face.getTransport());
return face;
}
@@ -163,13 +171,14 @@
Face registrationFace = this.connect();
FibEntry registrationEntry = new LocalFibEntry(prefix, callback, registrationFace, flags);
fib.add(registrationEntry);
+ LOGGER.info("Registered new prefix to receive interests: " + prefix);
}
private class MockForwarderFace extends Face implements MeasurableFace {
- Collection<Interest> sentInterests = new ArrayList<>();
- Collection<Data> sentDatas = new ArrayList<>();
- Collection<Interest> receivedInterests = new ArrayList<>();
- Collection<Data> receivedDatas = new ArrayList<>();
+ final Collection<Interest> sentInterests = new ArrayList<>();
+ final Collection<Data> sentDatas = new ArrayList<>();
+ final Collection<Interest> receivedInterests = new ArrayList<>();
+ final Collection<Data> receivedDatas = new ArrayList<>();
MockForwarderFace() {
super(new MockTransport(), null);
diff --git a/src/main/java/com/intel/jndn/mock/MockKeyChain.java b/src/main/java/com/intel/jndn/mock/MockKeyChain.java
index 7adc270..30710e1 100644
--- a/src/main/java/com/intel/jndn/mock/MockKeyChain.java
+++ b/src/main/java/com/intel/jndn/mock/MockKeyChain.java
@@ -26,7 +26,7 @@
/**
* Create an in-memory key chain for use in NDN-related tests.
*
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public final class MockKeyChain {
/**
diff --git a/src/main/java/com/intel/jndn/mock/MockTransport.java b/src/main/java/com/intel/jndn/mock/MockTransport.java
index da891d3..7e788a0 100644
--- a/src/main/java/com/intel/jndn/mock/MockTransport.java
+++ b/src/main/java/com/intel/jndn/mock/MockTransport.java
@@ -28,8 +28,8 @@
* Non-public class for handling data buffering in NDN unit tests; works in
* conjunction with {@link MockFace}.
*
- * @author Alexander Afanasyev, <aa@cs.ucla.edu>
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Alexander Afanasyev, aa@cs.ucla.edu
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public class MockTransport extends Transport {
private OnSendBlockSignal onSendBlock;
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java b/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
index 2c54957..d5e3a5b 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
@@ -27,7 +27,7 @@
final class PitEntryImpl implements MockForwarder.PitEntry {
private static final Logger LOGGER = Logger.getLogger(PitEntryImpl.class.getName());
- public final Interest interest;
+ private final Interest interest;
private final MockTransport transport;
private boolean satisfied = false;
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
index f867ac8..81eb15f 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
@@ -24,6 +24,8 @@
import java.util.concurrent.ConcurrentHashMap;
/**
+ * Naive implementation of a pending interest table
+ *
* @author Andrew Brown, andrew.brown@intel.com
*/
public class PitImpl implements MockForwarder.Pit {
@@ -52,16 +54,6 @@
public boolean has(Interest interest) {
List<MockForwarder.PitEntry> entries = pit.get(interest.getName());
-
- // TODO simplify
- if (entries != null && entries.size() > 0) {
- return true;
-// for(int i = 0; i < entries.size(); i++){
-// if(entries.get(i).interest.equals(interest)){
-// return true;
-// }
-// }
- }
- return false;
+ return entries != null && !entries.isEmpty();
}
}