diff --git a/GameServer/build.xml b/GameServer/build.xml
index 7f19538..c4b586a 100644
--- a/GameServer/build.xml
+++ b/GameServer/build.xml
@@ -4,11 +4,12 @@
+
-
+
@@ -18,6 +19,10 @@
+
+
+
+
@@ -29,6 +34,7 @@
+
diff --git a/GameServer/module/DataStoreCore.jar b/GameServer/module/DataStoreCore.jar
new file mode 100644
index 0000000..bfea6ab
Binary files /dev/null and b/GameServer/module/DataStoreCore.jar differ
diff --git a/GameServer/module/XMLUsingXStreamDataStore.jar b/GameServer/module/XMLUsingXStreamDataStore.jar
new file mode 100644
index 0000000..f85dcaa
Binary files /dev/null and b/GameServer/module/XMLUsingXStreamDataStore.jar differ
diff --git a/GameServer/moparclassic.jar b/GameServer/moparclassic.jar
new file mode 100644
index 0000000..edc4207
Binary files /dev/null and b/GameServer/moparclassic.jar differ
diff --git a/GameServer/src/org/moparscape/msc/gs/Instance.java b/GameServer/src/org/moparscape/msc/gs/Instance.java
index 8d48c67..67bbd72 100644
--- a/GameServer/src/org/moparscape/msc/gs/Instance.java
+++ b/GameServer/src/org/moparscape/msc/gs/Instance.java
@@ -6,7 +6,7 @@ import org.moparscape.msc.gs.db.DBConnection;
import org.moparscape.msc.gs.db.ReportHandlerQueries;
import org.moparscape.msc.gs.model.World;
import org.moparscape.msc.gs.persistence.DataStore;
-import org.moparscape.msc.gs.persistence.DataStoreFactory;
+import org.moparscape.msc.gs.persistence.impl.DataStoreFactory;
import org.moparscape.msc.gs.plugins.dependencies.PluginHandler;
/**
diff --git a/GameServer/src/org/moparscape/msc/gs/persistence/DataStoreFactory.java b/GameServer/src/org/moparscape/msc/gs/persistence/impl/DataStoreFactory.java
similarity index 65%
rename from GameServer/src/org/moparscape/msc/gs/persistence/DataStoreFactory.java
rename to GameServer/src/org/moparscape/msc/gs/persistence/impl/DataStoreFactory.java
index b444b1b..96bceba 100644
--- a/GameServer/src/org/moparscape/msc/gs/persistence/DataStoreFactory.java
+++ b/GameServer/src/org/moparscape/msc/gs/persistence/impl/DataStoreFactory.java
@@ -1,4 +1,6 @@
-package org.moparscape.msc.gs.persistence;
+package org.moparscape.msc.gs.persistence.impl;
+
+import org.moparscape.msc.gs.persistence.DataStore;
public class DataStoreFactory {
diff --git a/LoginServer/build.xml b/LoginServer/build.xml
index 5dc76a7..7bfe7e3 100644
--- a/LoginServer/build.xml
+++ b/LoginServer/build.xml
@@ -26,7 +26,7 @@
-
+
diff --git a/Modules/DataStore/DataStoreCore.jar b/Modules/DataStore/DataStoreCore.jar
new file mode 100644
index 0000000..f6cb33c
Binary files /dev/null and b/Modules/DataStore/DataStoreCore.jar differ
diff --git a/Modules/DataStore/XMLUsingXStream/build.xml b/Modules/DataStore/XMLUsingXStream/build.xml
new file mode 100644
index 0000000..f99a206
--- /dev/null
+++ b/Modules/DataStore/XMLUsingXStream/build.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GameServer/lib/xpp3.jar b/Modules/DataStore/XMLUsingXStream/lib/xpp3.jar
similarity index 100%
rename from GameServer/lib/xpp3.jar
rename to Modules/DataStore/XMLUsingXStream/lib/xpp3.jar
diff --git a/GameServer/lib/xstream.jar b/Modules/DataStore/XMLUsingXStream/lib/xstream.jar
similarity index 100%
rename from GameServer/lib/xstream.jar
rename to Modules/DataStore/XMLUsingXStream/lib/xstream.jar
diff --git a/GameServer/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java b/Modules/DataStore/XMLUsingXStream/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java
similarity index 95%
rename from GameServer/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java
rename to Modules/DataStore/XMLUsingXStream/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java
index 84220c0..1674d17 100644
--- a/GameServer/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java
+++ b/Modules/DataStore/XMLUsingXStream/src/org/moparscape/msc/gs/persistence/impl/XMLUsingXStream.java
@@ -36,12 +36,16 @@ import com.thoughtworks.xstream.XStream;
* A DataStore that parses XML using XStream.
*
* @author Joe Pritzel
- *
+ *
*/
@NotThreadSafe
@SuppressWarnings("unchecked")
public class XMLUsingXStream implements DataStore {
+ protected XMLUsingXStream() {
+ // To conform to the contract specified by the DataStore interface.
+ }
+
private static final XStream xstream = new XStream();
static {
diff --git a/Modules/DataStore/build.xml b/Modules/DataStore/build.xml
new file mode 100644
index 0000000..3837fa3
--- /dev/null
+++ b/Modules/DataStore/build.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules/DataStore/lib/jcip-annotations-1.0.jar b/Modules/DataStore/lib/jcip-annotations-1.0.jar
new file mode 100644
index 0000000..06e9066
Binary files /dev/null and b/Modules/DataStore/lib/jcip-annotations-1.0.jar differ
diff --git a/GameServer/src/org/moparscape/msc/gs/persistence/DataStore.java b/Modules/DataStore/src/org/moparscape/msc/gs/persistence/DataStore.java
similarity index 91%
rename from GameServer/src/org/moparscape/msc/gs/persistence/DataStore.java
rename to Modules/DataStore/src/org/moparscape/msc/gs/persistence/DataStore.java
index a4d836c..666d47c 100644
--- a/GameServer/src/org/moparscape/msc/gs/persistence/DataStore.java
+++ b/Modules/DataStore/src/org/moparscape/msc/gs/persistence/DataStore.java
@@ -13,12 +13,17 @@ import org.moparscape.msc.gs.npchandler.NpcHandlerDef;
import org.moparscape.msc.gs.phandler.PacketHandlerDef;
/**
- * Any retrieval of unchanging data should be done through this interface.
+ * Any retrieval of unchanging data should be done through this interface. All
+ * implementations should be only accessable by the
+ * org.moparscape.msc.gs.persistence.impl package.
+ * Implementations should also use JCIP annotations to specify their degree of thread
+ * saftey.
*
* @author Joe Pritzel
*
*/
-public interface DataStore {
+public abstract interface DataStore {
+
public PacketHandlerDef[] loadPacketHandlerDefs();
public PacketHandlerDef[] loadLSPacketHandlerDefs();