changeset 46:fd3643699f83

modified pom.xml. fix conflict log4j libraries
author one
date Fri, 12 Jul 2013 11:27:00 +0900
parents bf3dc481cc9b
children 686057add8a4
files .classpath pom.xml src/alice/jungle/codesegment/LogUpdateCodeSegment.java src/alice/jungle/transaction/NetworkDefaultJungleTree.java src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java src/alice/jungle/transaction/NetworkTransactionManager.java src/jungle/test/bbs/DistributeApp.java src/jungle/test/bbs/NetworkJungleBulletinBoard.java src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java
diffstat 9 files changed, 102 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- a/.classpath	Fri Jul 12 09:47:22 2013 +0900
+++ b/.classpath	Fri Jul 12 11:27:00 2013 +0900
@@ -6,7 +6,6 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="lib" path="/Users/nobuyasu/workspace/Alice/Alice.jar"/>
 	<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
 	<classpathentry kind="lib" path="lib/functionaljava.jar"/>
 	<classpathentry kind="lib" path="lib/guava-12.0-sources.jar"/>
@@ -21,5 +20,6 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
+	<classpathentry kind="lib" path="/Alice/Alice.jar"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
--- a/pom.xml	Fri Jul 12 09:47:22 2013 +0900
+++ b/pom.xml	Fri Jul 12 11:27:00 2013 +0900
@@ -39,16 +39,27 @@
   		<groupId>org.apache.cassandra</groupId>
   		<artifactId>cassandra-all</artifactId>
   		<version>1.2.1</version>
-  	</dependency>
-  	<dependency>
-  		<groupId>com.eaio.uuid</groupId>
-  		<artifactId>uuid</artifactId>
-  		<version>3.2</version>
+  		<exclusions>
+  			<exclusion>
+  				<groupId>org.slf4j</groupId>
+  				<artifactId>slf4j-log4j12</artifactId>
+  			</exclusion>
+  			<exclusion>
+  				<groupId>log4j</groupId>
+  				<artifactId>log4j</artifactId>
+  			</exclusion>
+  		</exclusions>
+  		
   	</dependency>
   	<dependency>
   		<groupId>jungle</groupId>
   		<artifactId>jungle-core</artifactId>
   		<version>0.0.1-SNAPSHOT</version>
   	</dependency>
+  	<dependency>
+  		<groupId>com.github.stephenc.eaio-uuid</groupId>
+  		<artifactId>uuid</artifactId>
+  		<version>3.3.0</version>
+  	</dependency>
   </dependencies>
 </project>
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Fri Jul 12 11:27:00 2013 +0900
@@ -12,6 +12,7 @@
 import alice.datasegment.CommandType;
 import alice.datasegment.Receiver;
 import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
+import alice.jungle.transaction.NetworkDefaultJungleTreeEditor;
 
 public class LogUpdateCodeSegment extends CodeSegment {
 	
@@ -28,7 +29,7 @@
 		System.out.println("--LogUpdateCodeSegment--");
 		int index = arg1.index;
 		DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class);
-		if(!updaterIsMe(container)) {
+		if(updaterIsMe(container)) {
 			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
 			updateCS.arg1.setKey(rh, key, index+1);
 			return;
@@ -39,7 +40,6 @@
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
-		//JungleManager jm = new JungleManager();
 		JungleTree tree = JungleManager.getJungle().getTreeByName("boards");
 		JungleTreeEditor editor = tree.getTreeEditor();
 		Either<Error, JungleTreeEditor> either = JungleManager.edit(editor, log);
@@ -47,14 +47,17 @@
 			throw new IllegalStateException();
 		}
 		editor = either.b();
-		editor.success();
+		either = editor.success();
+		if(either.isA()) {
+			throw new IllegalStateException();			
+		}
 		LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
 		updateCS.arg1.setKey(rh, key, index+1);
 	}
 	
 	private boolean updaterIsMe(DefaultTreeOperationLogContainer container) {
 
-		return true;
+		return false;
 	}
 	
 	
--- a/src/alice/jungle/transaction/NetworkDefaultJungleTree.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkDefaultJungleTree.java	Fri Jul 12 11:27:00 2013 +0900
@@ -35,7 +35,7 @@
 		TreeContext<T> tc = repository.get();
 		NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid, serverName);
 		T root = tc.getTreeNode();
-		return new NetworkDefaultJungleTreeEditor<T>(treeName, root,txManager,editor);
+		return new NetworkDefaultJungleTreeEditor<T>(serverName, treeName, root,txManager,editor);
 	}
 
 	@Override
--- a/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Fri Jul 12 11:27:00 2013 +0900
@@ -37,14 +37,16 @@
 	private final String treeName;
 	private final TreeEditor editor;
 	private final TreeOperationLog log;
+	private final String serverName;
 
-	public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor)
+	public NetworkDefaultJungleTreeEditor(String _serverName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor)
 	{
-		this(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
+		this(_serverName, _treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
 	}
 	
-	public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor,TreeOperationLog _log)
+	public NetworkDefaultJungleTreeEditor(String _serverName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor, TreeOperationLog _log)
 	{
+		serverName = _serverName;
 		treeName = _treeName;
 		root = _root;
 		txManager = _txManager;
@@ -74,7 +76,7 @@
 		DefaultTreeOperationLog treeOperationLog = new DefaultTreeOperationLog(iterable,newLog.length());
 		TreeOperationLog newTreeOpLog = log.append(treeOperationLog);
 		
-		JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor<T>(treeName, newNode,txManager,editor,newTreeOpLog);
+		JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor<T>(serverName, treeName, newNode,txManager,editor,newTreeOpLog);
 		return DefaultEither.newB(newEditor);
 	}
 	
@@ -121,7 +123,7 @@
 		}
 		
 		TransactionManager<T> newTxManager = either.b();
-		JungleTreeEditor newTreeEditor = new NetworkDefaultJungleTreeEditor<T>(treeName, root,newTxManager,editor);
+		JungleTreeEditor newTreeEditor = new NetworkDefaultJungleTreeEditor<T>(serverName, treeName, root,newTxManager,editor);
 		
 		return DefaultEither.newB(newTreeEditor);
 	}
@@ -147,6 +149,14 @@
 	public TreeOperationLog getTreeOperationLog() {
 		return log;
 	}
+	
+	public String getTreeName() {
+		return treeName;
+	}
+	
+	public String getServerName() {
+		return serverName;
+	}
 
 	
 }
--- a/src/alice/jungle/transaction/NetworkTransactionManager.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkTransactionManager.java	Fri Jul 12 11:27:00 2013 +0900
@@ -73,26 +73,10 @@
 		if(r != Result.SUCCESS) {
 			return DefaultEither.newA((Error)new DefaultError());
 		}
-		try {
-			putDataSegment(uuid, treeName, serverName, list, nextRevision);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
 		reservation.confirm();
 		TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid, serverName);
 		return DefaultEither.newB(txManager);
 	}
-	
-	private void putDataSegment(String _uuid, String _treeName, String _serverName, Iterable<TreeOperation> _log, long nextRevision) throws IOException {
-		DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
-		container.setTreeName(_treeName);
-		container.setUUID(_uuid);
-		container.setServerName(_serverName);
-		container.setRevision(nextRevision);
-		container.unconvert(_log);
-		NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate();
-		cs.ods.put("local", "log", container);
-	}
 
 	@Override
 	public long getRevision() 
--- a/src/jungle/test/bbs/DistributeApp.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/jungle/test/bbs/DistributeApp.java	Fri Jul 12 11:27:00 2013 +0900
@@ -25,23 +25,7 @@
 {
     public static void main( String[] args ) throws Exception
     {
-
    		RemoteConfig conf = new RemoteConfig(args);
    		new TopologyNode(conf, new StartBBSCodeSegment());
-/*
-   		if(conf.hostname == null) {
-   			new AliceDaemon(conf).listen();
-   			PutHostLogCodeSegment cs = new PutHostLogCodeSegment();
-   			cs.arg1.setKey("local","log");
-   			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment("local", "anotherLog");
-   			updateCS.arg1.setKey("local", "anotherLog");
-   		} else {
-   			DataSegment.connect(conf.key, "", conf.hostname, conf.connectPort);
-   			PutAnotherLogCodeSegment cs = new PutAnotherLogCodeSegment();
-   			cs.arg1.setKey("local", "log");
-   			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment("remote", "hostLog");
-   			updateCS.arg1.setKey("remote", "hostLog");
-   		}
-*/		
     }
 }
--- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Fri Jul 12 11:27:00 2013 +0900
@@ -1,9 +1,12 @@
 package jungle.test.bbs;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import alice.jungle.core.NetworkDefaultJungle;
+import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
+import alice.jungle.transaction.NetworkDefaultJungleTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
@@ -12,6 +15,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
@@ -19,6 +23,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
+import jungle.test.bbs.codesegment.NullCodeSegmentForUpdate;
 
 public class NetworkJungleBulletinBoard implements BulletinBoard
 {
@@ -29,7 +34,7 @@
 	{
 		Jungle _j = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()), _serverName);	
 		JungleManager.setJungle(_j);
-		jungle = jm.getJungle();
+		jungle = JungleManager.getJungle();
 		jungle.createNewTree("boards");
 	}
 
@@ -73,6 +78,12 @@
 		if(result.isA()){
 			throw new IllegalStateException();
 		}
+		/* Put DataSegment */
+		try {
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)result.b());
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
 		
 		tree = jungle.getTreeByName(_name);
 		editor = tree.getTreeEditor();
@@ -97,6 +108,13 @@
 		}
 		editor = either.b();
 		editor.success();
+		/* Put DataSegment */
+		try {
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)result.b());
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
+		
 	}
 
 	public void createBoardMessage(final String _board,final String _author,final String _message,final String _editKey)
@@ -107,13 +125,14 @@
 		}
 		
 		JungleTreeEditor editor;
+		Either<Error, JungleTreeEditor> either;
 		do{
 			Node node = tree.getRootNode();
 			int size = node.getChildren().size();
 			DefaultNodePath path = new DefaultNodePath();
 		
 			editor = tree.getTreeEditor();
-			Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path,size);
+			either = editor.addNewChildAt(path,size);
 			if(either.isA()){
 				throw new IllegalStateException();
 			}
@@ -134,12 +153,21 @@
 				throw new IllegalStateException();
 			}
 			editor = either.b();
-		}while(editor.success().isA());
+
+			either = editor.success();
+			/* Put DataSegment */
+			try {
+				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor);
+			} catch (IOException e1) {
+				e1.printStackTrace();
+			}
+		}while(either.isA());
 	}
 
 	public void editMessage(String _board,String _uuid,final String _author,final String _message,final String _editKey)
 	{
 		JungleTreeEditor editor = null;
+		Either<Error,JungleTreeEditor>  either = null;
 		do{
 			DefaultNodePath path = new DefaultNodePath();
 			path = path.add(Integer.parseInt(_uuid));
@@ -155,12 +183,19 @@
 				}
 			};
 		
-			Either<Error,JungleTreeEditor> either = editor.edit(path,e);
+			either = editor.edit(path,e);
 			if(either.isA()){
 				throw new IllegalStateException();
 			}
 			editor = either.b();
-		}while(editor.success().isA());
+			either = editor.success();
+			/* Put DataSegment */
+			try {
+				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor);
+			} catch (IOException e1) {
+				e1.printStackTrace();
+			}
+		}while(either.isA());
 	}
 
 	public Iterable<BoardMessage> getMessages(String _boardName)
@@ -183,6 +218,27 @@
 		return new IterableConverter<BoardMessage,Node>(chs,converter);
 	}
 	
+	private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor) throws IOException {
+		String uuid = editor.getID();
+		String treeName = editor.getTreeName();
+		String serverName = editor.getServerName();
+		long revision = Long.parseLong(editor.getRevision());
+		Iterable<TreeOperation> log = editor.getTreeOperationLog();
+		putDataSegment(uuid, treeName, serverName, log, revision);
+	}
+	
+	private void putDataSegment(String _uuid, String _treeName, String _serverName, Iterable<TreeOperation> _log, long nextRevision) throws IOException {
+		DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
+		container.setTreeName(_treeName);
+		container.setUUID(_uuid);
+		container.setServerName(_serverName);
+		container.setRevision(nextRevision);
+		container.unconvert(_log);
+		NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate();
+		cs.ods.put("local", "log", container);
+	}
+
+	
 	private static class BoardMessageImpl implements BoardMessage
 	{
 		private final String author;
--- a/src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java	Fri Jul 12 09:47:22 2013 +0900
+++ b/src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java	Fri Jul 12 11:27:00 2013 +0900
@@ -34,6 +34,7 @@
 	public void run() {
 		System.out.println("StartBBSCodeSegment");
 		String name = host.asString();
+		System.out.println("name : "+ name);
 		Matcher matcher = pattern.matcher(name);
 		matcher.find();
 		String type = matcher.group(1);