diff --git a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java b/apps/addressbook/java/src/net/i2p/router/naming/BlockfileNamingService.java
similarity index 99%
rename from core/java/src/net/i2p/client/naming/BlockfileNamingService.java
rename to apps/addressbook/java/src/net/i2p/router/naming/BlockfileNamingService.java
index db30570da8..58790e7f05 100644
--- a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
+++ b/apps/addressbook/java/src/net/i2p/router/naming/BlockfileNamingService.java
@@ -5,7 +5,7 @@
* It probably won't make your computer catch on fire, or eat
* your children, but it might. Use at your own risk.
*/
-package net.i2p.client.naming;
+package net.i2p.router.naming;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
@@ -30,6 +30,11 @@ import java.util.StringTokenizer;
import java.util.TreeMap;
import net.i2p.I2PAppContext;
+import net.i2p.client.naming.DummyNamingService;
+import net.i2p.client.naming.HostsTxtNamingService;
+import net.i2p.client.naming.NamingService;
+import net.i2p.client.naming.NamingServiceListener;
+import net.i2p.client.naming.SingleFileNamingService;
import net.i2p.crypto.SigType;
import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
@@ -95,7 +100,7 @@ import net.metanotion.util.skiplist.SkipList;
*
* All host names are converted to lower case.
*
- * @since 0.8.7
+ * @since 0.8.7, moved from core to addressbook in 0.9.31
*/
public class BlockfileNamingService extends DummyNamingService {
diff --git a/core/java/src/net/metanotion/Dummy.java b/apps/addressbook/java/src/net/metanotion/Dummy.java
similarity index 100%
rename from core/java/src/net/metanotion/Dummy.java
rename to apps/addressbook/java/src/net/metanotion/Dummy.java
diff --git a/core/java/src/net/metanotion/README-I2P.txt b/apps/addressbook/java/src/net/metanotion/README-I2P.txt
similarity index 100%
rename from core/java/src/net/metanotion/README-I2P.txt
rename to apps/addressbook/java/src/net/metanotion/README-I2P.txt
diff --git a/core/java/src/net/metanotion/io/RAIFile.java b/apps/addressbook/java/src/net/metanotion/io/RAIFile.java
similarity index 100%
rename from core/java/src/net/metanotion/io/RAIFile.java
rename to apps/addressbook/java/src/net/metanotion/io/RAIFile.java
diff --git a/core/java/src/net/metanotion/io/RandomAccessInterface.java b/apps/addressbook/java/src/net/metanotion/io/RandomAccessInterface.java
similarity index 100%
rename from core/java/src/net/metanotion/io/RandomAccessInterface.java
rename to apps/addressbook/java/src/net/metanotion/io/RandomAccessInterface.java
diff --git a/core/java/src/net/metanotion/io/Serializer.java b/apps/addressbook/java/src/net/metanotion/io/Serializer.java
similarity index 100%
rename from core/java/src/net/metanotion/io/Serializer.java
rename to apps/addressbook/java/src/net/metanotion/io/Serializer.java
diff --git a/core/java/src/net/metanotion/io/block/BlockFile.java b/apps/addressbook/java/src/net/metanotion/io/block/BlockFile.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/BlockFile.java
rename to apps/addressbook/java/src/net/metanotion/io/block/BlockFile.java
diff --git a/core/java/src/net/metanotion/io/block/FreeListBlock.java b/apps/addressbook/java/src/net/metanotion/io/block/FreeListBlock.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/FreeListBlock.java
rename to apps/addressbook/java/src/net/metanotion/io/block/FreeListBlock.java
diff --git a/core/java/src/net/metanotion/io/block/index/BSkipLevels.java b/apps/addressbook/java/src/net/metanotion/io/block/index/BSkipLevels.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/index/BSkipLevels.java
rename to apps/addressbook/java/src/net/metanotion/io/block/index/BSkipLevels.java
diff --git a/core/java/src/net/metanotion/io/block/index/BSkipList.java b/apps/addressbook/java/src/net/metanotion/io/block/index/BSkipList.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/index/BSkipList.java
rename to apps/addressbook/java/src/net/metanotion/io/block/index/BSkipList.java
diff --git a/core/java/src/net/metanotion/io/block/index/BSkipSpan.java b/apps/addressbook/java/src/net/metanotion/io/block/index/BSkipSpan.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/index/BSkipSpan.java
rename to apps/addressbook/java/src/net/metanotion/io/block/index/BSkipSpan.java
diff --git a/core/java/src/net/metanotion/io/block/index/IBSkipIterator.java b/apps/addressbook/java/src/net/metanotion/io/block/index/IBSkipIterator.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/index/IBSkipIterator.java
rename to apps/addressbook/java/src/net/metanotion/io/block/index/IBSkipIterator.java
diff --git a/core/java/src/net/metanotion/io/block/index/IBSkipSpan.java b/apps/addressbook/java/src/net/metanotion/io/block/index/IBSkipSpan.java
similarity index 100%
rename from core/java/src/net/metanotion/io/block/index/IBSkipSpan.java
rename to apps/addressbook/java/src/net/metanotion/io/block/index/IBSkipSpan.java
diff --git a/core/java/src/net/metanotion/io/data/IdentityBytes.java b/apps/addressbook/java/src/net/metanotion/io/data/IdentityBytes.java
similarity index 100%
rename from core/java/src/net/metanotion/io/data/IdentityBytes.java
rename to apps/addressbook/java/src/net/metanotion/io/data/IdentityBytes.java
diff --git a/core/java/src/net/metanotion/io/data/IntBytes.java b/apps/addressbook/java/src/net/metanotion/io/data/IntBytes.java
similarity index 100%
rename from core/java/src/net/metanotion/io/data/IntBytes.java
rename to apps/addressbook/java/src/net/metanotion/io/data/IntBytes.java
diff --git a/core/java/src/net/metanotion/io/data/StringBytes.java b/apps/addressbook/java/src/net/metanotion/io/data/StringBytes.java
similarity index 100%
rename from core/java/src/net/metanotion/io/data/StringBytes.java
rename to apps/addressbook/java/src/net/metanotion/io/data/StringBytes.java
diff --git a/core/java/src/net/metanotion/io/data/UTF8StringBytes.java b/apps/addressbook/java/src/net/metanotion/io/data/UTF8StringBytes.java
similarity index 100%
rename from core/java/src/net/metanotion/io/data/UTF8StringBytes.java
rename to apps/addressbook/java/src/net/metanotion/io/data/UTF8StringBytes.java
diff --git a/core/java/src/net/metanotion/package.html b/apps/addressbook/java/src/net/metanotion/package.html
similarity index 100%
rename from core/java/src/net/metanotion/package.html
rename to apps/addressbook/java/src/net/metanotion/package.html
diff --git a/core/java/src/net/metanotion/util/skiplist/SkipIterator.java b/apps/addressbook/java/src/net/metanotion/util/skiplist/SkipIterator.java
similarity index 100%
rename from core/java/src/net/metanotion/util/skiplist/SkipIterator.java
rename to apps/addressbook/java/src/net/metanotion/util/skiplist/SkipIterator.java
diff --git a/core/java/src/net/metanotion/util/skiplist/SkipLevels.java b/apps/addressbook/java/src/net/metanotion/util/skiplist/SkipLevels.java
similarity index 100%
rename from core/java/src/net/metanotion/util/skiplist/SkipLevels.java
rename to apps/addressbook/java/src/net/metanotion/util/skiplist/SkipLevels.java
diff --git a/core/java/src/net/metanotion/util/skiplist/SkipList.java b/apps/addressbook/java/src/net/metanotion/util/skiplist/SkipList.java
similarity index 100%
rename from core/java/src/net/metanotion/util/skiplist/SkipList.java
rename to apps/addressbook/java/src/net/metanotion/util/skiplist/SkipList.java
diff --git a/core/java/src/net/metanotion/util/skiplist/SkipSpan.java b/apps/addressbook/java/src/net/metanotion/util/skiplist/SkipSpan.java
similarity index 100%
rename from core/java/src/net/metanotion/util/skiplist/SkipSpan.java
rename to apps/addressbook/java/src/net/metanotion/util/skiplist/SkipSpan.java
diff --git a/build.xml b/build.xml
index 35a6e3d882..4e046f326a 100644
--- a/build.xml
+++ b/build.xml
@@ -719,12 +719,12 @@
failonerror="true"
doctitle="I2P Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}"
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
-
+
-
+
diff --git a/core/java/src/net/i2p/client/naming/DummyNamingService.java b/core/java/src/net/i2p/client/naming/DummyNamingService.java
index fc902f65fc..73970a09dd 100644
--- a/core/java/src/net/i2p/client/naming/DummyNamingService.java
+++ b/core/java/src/net/i2p/client/naming/DummyNamingService.java
@@ -19,8 +19,10 @@ import net.i2p.util.SystemVersion;
/**
* A Dummy naming service that can only handle base64 and b32 destinations.
+ *
+ * @since public since 0.9.31
*/
-class DummyNamingService extends NamingService {
+public class DummyNamingService extends NamingService {
protected static final int BASE32_HASH_LENGTH = 52; // 1 + Hash.HASH_LENGTH * 8 / 5
public final static String PROP_B32 = "i2p.naming.hostsTxt.useB32";
diff --git a/core/java/src/net/i2p/client/naming/NamingService.java b/core/java/src/net/i2p/client/naming/NamingService.java
index 5bfa3082ee..3ac31488e8 100644
--- a/core/java/src/net/i2p/client/naming/NamingService.java
+++ b/core/java/src/net/i2p/client/naming/NamingService.java
@@ -37,7 +37,8 @@ public abstract class NamingService {
/** what classname should be used as the naming service impl? */
public static final String PROP_IMPL = "i2p.naming.impl";
- private static final String DEFAULT_IMPL = "net.i2p.client.naming.BlockfileNamingService";
+ private static final String DEFAULT_IMPL = "net.i2p.router.naming.BlockfileNamingService";
+ private static final String OLD_DEFAULT_IMPL = "net.i2p.client.naming.BlockfileNamingService";
private static final String BACKUP_IMPL = "net.i2p.client.naming.HostsTxtNamingService";
/**
@@ -751,7 +752,10 @@ public abstract class NamingService {
*/
public static final synchronized NamingService createInstance(I2PAppContext context) {
NamingService instance = null;
+ String dflt = context.isRouterContext() ? DEFAULT_IMPL : BACKUP_IMPL;
String impl = context.getProperty(PROP_IMPL, DEFAULT_IMPL);
+ if (impl.equals(OLD_DEFAULT_IMPL))
+ impl = dflt;
try {
Class> cls = Class.forName(impl);
Constructor> con = cls.getConstructor(I2PAppContext.class);
diff --git a/core/java/src/net/i2p/client/naming/SingleFileNamingService.java b/core/java/src/net/i2p/client/naming/SingleFileNamingService.java
index 74d05224c1..835c3dbdd5 100644
--- a/core/java/src/net/i2p/client/naming/SingleFileNamingService.java
+++ b/core/java/src/net/i2p/client/naming/SingleFileNamingService.java
@@ -268,9 +268,9 @@ public class SingleFileNamingService extends NamingService {
* Does not write a newline.
*
* @param options non-null
- * @since 0.9.26, package private since 0.9.30
+ * @since 0.9.26, package private since 0.9.30, public since 0.9.31
*/
- static void writeOptions(Properties options, Writer out) throws IOException {
+ public static void writeOptions(Properties options, Writer out) throws IOException {
boolean started = false;
for (Map.Entry