Changeset 4114
- Timestamp:
- 2010-07-05 07:57:19 (3 years ago)
- Location:
- projects/lily/trunk
- Files:
-
- 30 added
- 19 edited
-
import (added)
-
import/pom.xml (added)
-
import/sample.json (added)
-
import/src (added)
-
import/src/main (added)
-
import/src/main/java (added)
-
import/src/main/java/org (added)
-
import/src/main/java/org/lilycms (added)
-
import/src/main/java/org/lilycms/tools (added)
-
import/src/main/java/org/lilycms/tools/import_ (added)
-
import/src/main/java/org/lilycms/tools/import_/ImportTool.java (added)
-
pom.xml (modified) (3 diffs)
-
process/client/src/main/java/org/lilycms/client/Client.java (modified) (3 diffs)
-
process/server/README.txt (modified) (1 diff)
-
process/server/conf/hbase/hbase.xml (modified) (1 diff)
-
process/server/conf/indexer (added)
-
process/server/conf/indexer/indexer.xml (added)
-
process/server/conf/kauri/wiring.xml (modified) (1 diff)
-
process/server/conf/repository/repository.xml (modified) (1 diff)
-
process/server/hbase-module/pom.xml (modified) (1 diff)
-
process/server/indexer-module (added)
-
process/server/indexer-module/pom.xml (added)
-
process/server/indexer-module/src (added)
-
process/server/indexer-module/src/main (added)
-
process/server/indexer-module/src/main/java (added)
-
process/server/indexer-module/src/main/java/org (added)
-
process/server/indexer-module/src/main/java/org/lilycms (added)
-
process/server/indexer-module/src/main/java/org/lilycms/server (added)
-
process/server/indexer-module/src/main/java/org/lilycms/server/modules (added)
-
process/server/indexer-module/src/main/java/org/lilycms/server/modules/indexer (added)
-
process/server/indexer-module/src/main/java/org/lilycms/server/modules/indexer/IndexerSetup.java (added)
-
process/server/indexer-module/src/main/kauri (added)
-
process/server/indexer-module/src/main/kauri/conf (added)
-
process/server/indexer-module/src/main/kauri/conf/indexer.xml (added)
-
process/server/indexer-module/src/main/kauri/spring (added)
-
process/server/indexer-module/src/main/kauri/spring/services.xml (added)
-
process/server/indexerconf.xml (added)
-
process/server/pom.xml (modified) (1 diff)
-
process/server/repository-module/pom.xml (modified) (1 diff)
-
process/server/repository-module/src/main/java/org/lilycms/server/modules/repository/AvroServer.java (modified) (4 diffs)
-
process/server/repository-module/src/main/kauri/conf/repository.xml (modified) (1 diff)
-
process/server/repository-module/src/main/kauri/spring/services.xml (modified) (3 diffs)
-
repository/impl/src/main/avro/typeManager.avpr (modified) (1 diff)
-
repository/impl/src/main/java/org/lilycms/repository/impl/AbstractTypeManager.java (modified) (1 diff)
-
repository/impl/src/main/java/org/lilycms/repository/impl/RepositoryRemoteImpl.java (modified) (4 diffs)
-
repository/impl/src/main/java/org/lilycms/repository/impl/TypeManagerRemoteImpl.java (modified) (3 diffs)
-
repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroRepositoryTest.java (modified) (2 diffs)
-
repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroTypeManagerFieldTypeTest.java (modified) (2 diffs)
-
repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroTypeManagerRecordTypeTest.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
projects/lily/trunk/pom.xml
r4111 r4114 65 65 <module>process/server</module> 66 66 <module>process/client</module> 67 <module>import</module> 67 68 </modules> 68 69 … … 107 108 <dependency> 108 109 <groupId>org.lilycms</groupId> 109 <artifactId>lily-wal-api</artifactId>110 <version>0.1-dev</version>111 </dependency>112 <dependency>113 <groupId>org.lilycms</groupId>114 <artifactId>lily-wal-impl</artifactId>115 <version>0.1-dev</version>116 </dependency>117 <dependency>118 <groupId>org.lilycms</groupId>119 <artifactId>lily-mq-api</artifactId>120 <version>0.1-dev</version>121 </dependency>122 <dependency>123 <groupId>org.lilycms</groupId>124 <artifactId>lily-mq-impl</artifactId>125 <version>0.1-dev</version>126 </dependency>127 <dependency>128 <groupId>org.lilycms</groupId>129 110 <artifactId>lily-rowlog-api</artifactId> 130 111 <version>0.1-dev</version> … … 133 114 <groupId>org.lilycms</groupId> 134 115 <artifactId>lily-rowlog-impl</artifactId> 116 <version>0.1-dev</version> 117 </dependency> 118 <dependency> 119 <groupId>org.lilycms</groupId> 120 <artifactId>lily-indexer</artifactId> 121 <version>0.1-dev</version> 122 </dependency> 123 <dependency> 124 <groupId>org.lilycms</groupId> 125 <artifactId>lily-client</artifactId> 135 126 <version>0.1-dev</version> 136 127 </dependency> -
projects/lily/trunk/process/client/src/main/java/org/lilycms/client/Client.java
r4048 r4114 15 15 16 16 import java.io.IOException; 17 import java.io.UnsupportedEncodingException;18 17 import java.net.InetSocketAddress; 19 18 import java.net.SocketAddress; … … 60 59 AvroConverter remoteConverter = new AvroConverter(); 61 60 IdGeneratorImpl idGenerator = new IdGeneratorImpl(); 62 TypeManager typeManager = new TypeManagerRemoteImpl(parseAddressAndPort(server. repoAddressAndPort),61 TypeManager typeManager = new TypeManagerRemoteImpl(parseAddressAndPort(server.typeManagerAddressAndPort), 63 62 remoteConverter, idGenerator); 64 Repository repository = new RepositoryRemoteImpl(parseAddressAndPort(server. typeManagerAddressAndPort),63 Repository repository = new RepositoryRemoteImpl(parseAddressAndPort(server.repoAddressAndPort), 65 64 remoteConverter, (TypeManagerRemoteImpl)typeManager, idGenerator); 66 65 remoteConverter.setRepository(repository); … … 68 67 } 69 68 70 private SocketAddress parseAddressAndPort(String addressAndPort) {69 private InetSocketAddress parseAddressAndPort(String addressAndPort) { 71 70 int colonPos = addressAndPort.indexOf(":"); 72 71 if (colonPos == -1) { -
projects/lily/trunk/process/server/README.txt
r4055 r4114 61 61 62 62 With standard configuration: 63 /path/to/kauri-trunk/kauri.sh 63 /path/to/kauri-trunk/kauri.sh run -l warn 64 65 The '-l warn' argument makes that all warn-level logging is displayed on the console, which is useful 66 for local test usage. 64 67 65 68 With custom configuration: 66 /path/to/kauri-trunk/kauri.sh run - c myconf69 /path/to/kauri-trunk/kauri.sh run -l warn -c myconf:conf 67 70 68 71 You can start as many of these processes as you want. By default the server sockets -
projects/lily/trunk/process/server/conf/hbase/hbase.xml
r4048 r4114 3 3 conf:inherit="shallow"> 4 4 <!-- 5 <zookeeperQuorum>l at-kind</zookeeperQuorum>5 <zookeeperQuorum>localhost</zookeeperQuorum> 6 6 <zookeeperClientPort>2181</zookeeperClientPort> 7 7 --> -
projects/lily/trunk/process/server/conf/kauri/wiring.xml
r4048 r4114 10 10 </artifact> 11 11 12 <artifact id="indexer" groupId="org.lilycms" artifactId="lily-indexer-module" version="0.1-dev"> 13 </artifact> 14 12 15 </modules> 13 16 -
projects/lily/trunk/process/server/conf/repository/repository.xml
r4048 r4114 3 3 conf:inherit="shallow"> 4 4 <!-- 5 <zookeeperConnectString>l at-kind:2181</zookeeperConnectString>5 <zookeeperConnectString>localhost:2181</zookeeperConnectString> 6 6 --> 7 8 <!-- Filesystem to use to store blobs --> 9 <blobFileSystem>hdfs://localhost:9000</blobFileSystem> 7 10 </repository> -
projects/lily/trunk/process/server/hbase-module/pom.xml
r4050 r4114 27 27 <groupId>org.apache.hbase</groupId> 28 28 <artifactId>hbase</artifactId> 29 <exclusions> 30 <exclusion> 31 <groupId>org.apache.hadoop</groupId> 32 <artifactId>avro</artifactId> 33 </exclusion> 34 <exclusion> 35 <!-- also used by solr, but there with a different version of commons-codec, causing 36 commons-httpclient to be in Kauri's common classloader but commons-codec not --> 37 <groupId>commons-httpclient</groupId> 38 <artifactId>commons-httpclient</artifactId> 39 </exclusion> 40 <exclusion> 41 <!-- also used by solr, but there with a different version of commons-codec, causing 42 commons-httpclient to be in Kauri's common classloader but commons-codec not --> 43 <groupId>commons-codec</groupId> 44 <artifactId>commons-codec</artifactId> 45 </exclusion> 46 </exclusions> 29 47 </dependency> 30 48 </dependencies> -
projects/lily/trunk/process/server/pom.xml
r4054 r4114 26 26 <module>hbase-module</module> 27 27 <module>repository-module</module> 28 <module>indexer-module</module> 28 29 </modules> 29 30 -
projects/lily/trunk/process/server/repository-module/pom.xml
r4050 r4114 23 23 <groupId>org.lilycms</groupId> 24 24 <artifactId>lily-repository-impl</artifactId> 25 <exclusions> 26 <exclusion> 27 <!-- also used by solr, but there with a different version of commons-codec, causing 28 commons-httpclient to be in Kauri's common classloader but commons-codec not --> 29 <groupId>commons-httpclient</groupId> 30 <artifactId>commons-httpclient</artifactId> 31 </exclusion> 32 <exclusion> 33 <!-- also used by solr, but there with a different version of commons-codec, causing 34 commons-httpclient to be in Kauri's common classloader but commons-codec not --> 35 <groupId>commons-codec</groupId> 36 <artifactId>commons-codec</artifactId> 37 </exclusion> 38 </exclusions> 25 39 </dependency> 26 40 -
projects/lily/trunk/process/server/repository-module/src/main/java/org/lilycms/server/modules/repository/AvroServer.java
r4048 r4114 1 1 package org.lilycms.server.modules.repository; 2 2 3 import org.apache.avro.ipc.HttpServer; 3 4 import org.apache.avro.ipc.Responder; 4 import org.apache.avro.ipc.SocketServer;5 5 import org.apache.avro.specific.SpecificResponder; 6 6 import org.lilycms.repository.api.Repository; … … 10 10 import javax.annotation.PreDestroy; 11 11 import java.io.IOException; 12 import java.net.InetSocketAddress;13 12 14 13 public class AvroServer { … … 18 17 private int typeManagerPort; 19 18 20 private SocketServer repositoryServer;21 private SocketServer typeManagerServer;19 private HttpServer repositoryServer; 20 private HttpServer typeManagerServer; 22 21 23 22 public AvroServer(String bindAddress, Repository repository, int repositoryPort, int typeManagerPort) { … … 35 34 AvroRepositoryImpl avroRepository = new AvroRepositoryImpl(repository, avroConverter); 36 35 Responder repoResponder = new SpecificResponder(AvroRepository.class, avroRepository); 37 repositoryServer = new SocketServer(repoResponder, new InetSocketAddress(bindAddress, repositoryPort));36 repositoryServer = new HttpServer(repoResponder, repositoryPort); 38 37 39 38 AvroTypeManagerImpl avroTypeManager = new AvroTypeManagerImpl(repository.getTypeManager(), avroConverter); 40 39 Responder typeMgrResponder = new SpecificResponder(AvroTypeManager.class, avroTypeManager); 41 typeManagerServer = new SocketServer(typeMgrResponder, new InetSocketAddress(bindAddress, typeManagerPort));40 typeManagerServer = new HttpServer(typeMgrResponder, typeManagerPort); 42 41 } 43 42 -
projects/lily/trunk/process/server/repository-module/src/main/kauri/conf/repository.xml
r4048 r4114 10 10 <!-- Port on which to bind the type manager, 0 will bind to an ephemeral port. --> 11 11 <typeManagerPort>0</typeManagerPort> 12 13 <!-- Filesystem to use to store blobs --> 14 <blobFileSystem>hdfs://localhost:9000</blobFileSystem> 12 15 </repository> -
projects/lily/trunk/process/server/repository-module/src/main/kauri/spring/services.xml
r4048 r4114 23 23 service="org.lilycms.server.modules.hbase.HBaseConfigurationFactory"/> 24 24 25 <kauri:export-service 26 ref="repository" 27 service="org.lilycms.repository.api.Repository"/> 28 29 <kauri:export-service 30 ref="messageQueue" 31 service="org.lilycms.rowlog.api.RowLog"/> 32 25 33 <bean id="hbaseConf" 26 34 factory-bean="hbaseConfFactory" … … 41 49 <constructor-arg> 42 50 <bean class="java.net.URI"> 43 <constructor-arg value=" hdfs://lat-kind:9000"/>51 <constructor-arg value="${repository:blobFileSystem}"/> 44 52 </bean> 45 53 </constructor-arg> … … 59 67 <constructor-arg ref="hbaseConf"/> 60 68 </bean> 69 70 <bean id="messageQueue" factory-bean="repository" factory-method="getMessageQueue"/> 61 71 62 72 <bean id="address" class="org.lilycms.server.modules.repository.AddressResolver"> -
projects/lily/trunk/repository/impl/src/main/avro/typeManager.avpr
r4100 r4114 124 124 "request": [{"name": "name", "type": "AvroQName"}], 125 125 "response": "AvroFieldType", 126 "errors": ["Avro RepositoryException"]126 "errors": ["AvroFieldTypeNotFoundException", "AvroRepositoryException"] 127 127 } 128 128 } -
projects/lily/trunk/repository/impl/src/main/java/org/lilycms/repository/impl/AbstractTypeManager.java
r4100 r4114 48 48 49 49 public ValueType getValueType(String primitiveValueTypeName, boolean multivalue, boolean hierarchy) { 50 return new ValueTypeImpl(primitiveValueTypes.get(primitiveValueTypeName), multivalue, hierarchy); 50 PrimitiveValueType type = primitiveValueTypes.get(primitiveValueTypeName); 51 if (type == null) { 52 // TODO should probably be another kind of exception, this was just a quick fix to avoid NPE 53 throw new IllegalArgumentException("Primitive value type does not exist: " + primitiveValueTypeName); 54 } 55 return new ValueTypeImpl(type, multivalue, hierarchy); 51 56 } 52 57 -
projects/lily/trunk/repository/impl/src/main/java/org/lilycms/repository/impl/RepositoryRemoteImpl.java
r4100 r4114 4 4 import java.io.InputStream; 5 5 import java.io.OutputStream; 6 import java.net.SocketAddress; 6 import java.net.InetSocketAddress; 7 import java.net.URL; 7 8 import java.util.List; 8 9 import java.util.Set; … … 12 13 import org.apache.avro.generic.GenericData; 13 14 import org.apache.avro.ipc.AvroRemoteException; 14 import org.apache.avro.ipc. SocketTransceiver;15 import org.apache.avro.ipc.HttpTransceiver; 15 16 import org.apache.avro.specific.SpecificRequestor; 16 17 import org.apache.avro.util.Utf8; … … 35 36 private final TypeManager typeManager; 36 37 37 public RepositoryRemoteImpl( SocketAddress address, AvroConverter converter, TypeManagerRemoteImpl typeManager, IdGenerator idGenerator)38 public RepositoryRemoteImpl(InetSocketAddress address, AvroConverter converter, TypeManagerRemoteImpl typeManager, IdGenerator idGenerator) 38 39 throws IOException { 39 40 this.converter = converter; … … 41 42 //TODO idGenerator should not be available or used in the remote implementation 42 43 this.idGenerator = idGenerator; 43 SocketTransceiver client = new SocketTransceiver(address);44 HttpTransceiver client = new HttpTransceiver(new URL("http://" + address.getHostName() + ":" + address.getPort() + "/")); 44 45 45 46 repositoryProxy = (AvroRepository) SpecificRequestor.getClient( -
projects/lily/trunk/repository/impl/src/main/java/org/lilycms/repository/impl/TypeManagerRemoteImpl.java
r4100 r4114 2 2 3 3 import java.io.IOException; 4 import java.net.SocketAddress; 4 import java.net.InetSocketAddress; 5 import java.net.URL; 5 6 6 7 import org.apache.avro.ipc.AvroRemoteException; 7 import org.apache.avro.ipc. SocketTransceiver;8 import org.apache.avro.ipc.HttpTransceiver; 8 9 import org.apache.avro.specific.SpecificRequestor; 9 10 import org.apache.avro.util.Utf8; … … 30 31 private AvroConverter converter; 31 32 32 public TypeManagerRemoteImpl( SocketAddress address, AvroConverter converter, IdGenerator idGenerator)33 public TypeManagerRemoteImpl(InetSocketAddress address, AvroConverter converter, IdGenerator idGenerator) 33 34 throws IOException { 34 35 this.converter = converter; 35 36 //TODO idGenerator should not be available or used in the remote implementation 36 37 this.idGenerator = idGenerator; 37 SocketTransceiver client = new SocketTransceiver(address);38 HttpTransceiver client = new HttpTransceiver(new URL("http://" + address.getHostName() + ":" + address.getPort() + "/")); 38 39 39 40 typeManagerProxy = (AvroTypeManager) SpecificRequestor.getClient(AvroTypeManager.class, client); … … 142 143 try { 143 144 return converter.convert(typeManagerProxy.getFieldTypeByName(converter.convert(name))); 145 } catch (AvroFieldTypeNotFoundException fieldTypeNotFoundException) { 146 throw converter.convert(fieldTypeNotFoundException); 144 147 } catch (AvroRemoteException remoteException) { 145 148 // TODO define what we do here -
projects/lily/trunk/repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroRepositoryTest.java
r4100 r4114 19 19 import java.net.InetSocketAddress; 20 20 21 import org.apache.avro.ipc. SocketServer;21 import org.apache.avro.ipc.HttpServer; 22 22 import org.apache.avro.specific.SpecificResponder; 23 23 import org.junit.AfterClass; … … 58 58 AvroConverter serverConverter = new AvroConverter(); 59 59 serverConverter.setRepository(serverRepository); 60 SocketServer repositorySocketServer = new SocketServer(new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 61 new InetSocketAddress(0)); 62 SocketServer typeManagerSocketServer = new SocketServer(new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 63 new InetSocketAddress(0)); 60 HttpServer repositoryServer = new HttpServer( 61 new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 62 0); 63 HttpServer typeManagerServer = new HttpServer( 64 new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 65 0); 64 66 AvroConverter remoteConverter = new AvroConverter(); 65 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerS ocketServer.getPort()),67 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerServer.getPort()), 66 68 remoteConverter, idGenerator); 67 repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryS ocketServer.getPort()), remoteConverter,69 repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryServer.getPort()), remoteConverter, 68 70 (TypeManagerRemoteImpl)typeManager, idGenerator); 69 71 remoteConverter.setRepository(repository); -
projects/lily/trunk/repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroTypeManagerFieldTypeTest.java
r4100 r4114 20 20 import java.net.InetSocketAddress; 21 21 22 import org.apache.avro.ipc. SocketServer;22 import org.apache.avro.ipc.HttpServer; 23 23 import org.apache.avro.specific.SpecificResponder; 24 24 import org.junit.After; … … 61 61 AvroConverter serverConverter = new AvroConverter(); 62 62 serverConverter.setRepository(serverRepository); 63 SocketServer repositorySocketServer = new SocketServer(new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 64 new InetSocketAddress(0)); 65 SocketServer typeManagerSocketServer = new SocketServer(new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 66 new InetSocketAddress(0)); 63 HttpServer repositoryServer = new HttpServer( 64 new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 65 0); 66 HttpServer typeManagerServer = new HttpServer( 67 new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 68 0); 67 69 AvroConverter remoteConverter = new AvroConverter(); 68 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerS ocketServer.getPort()),70 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerServer.getPort()), 69 71 remoteConverter, idGenerator); 70 Repository repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryS ocketServer.getPort()),72 Repository repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryServer.getPort()), 71 73 remoteConverter, (TypeManagerRemoteImpl)typeManager, idGenerator); 72 74 remoteConverter.setRepository(repository); -
projects/lily/trunk/repository/impl/src/test/java/org/lilycms/repository/impl/test/AvroTypeManagerRecordTypeTest.java
r4100 r4114 19 19 import java.net.InetSocketAddress; 20 20 21 import org.apache.avro.ipc. SocketServer;21 import org.apache.avro.ipc.HttpServer; 22 22 import org.apache.avro.specific.SpecificResponder; 23 23 import org.junit.*; … … 61 61 AvroConverter serverConverter = new AvroConverter(); 62 62 serverConverter.setRepository(serverRepository); 63 SocketServer repositorySocketServer = new SocketServer(new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 64 new InetSocketAddress(0)); 65 SocketServer typeManagerSocketServer = new SocketServer(new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 66 new InetSocketAddress(0)); 63 HttpServer repositoryServer = new HttpServer( 64 new SpecificResponder(AvroRepository.class, new AvroRepositoryImpl(serverRepository, serverConverter)), 65 0); 66 HttpServer typeManagerServer = new HttpServer( 67 new SpecificResponder(AvroTypeManager.class, new AvroTypeManagerImpl(serverTypeManager, serverConverter)), 68 0); 67 69 AvroConverter remoteConverter = new AvroConverter(); 68 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerS ocketServer.getPort()),70 typeManager = new TypeManagerRemoteImpl(new InetSocketAddress(typeManagerServer.getPort()), 69 71 remoteConverter, idGenerator); 70 Repository repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryS ocketServer.getPort()),72 Repository repository = new RepositoryRemoteImpl(new InetSocketAddress(repositoryServer.getPort()), 71 73 remoteConverter, (TypeManagerRemoteImpl)typeManager, idGenerator); 72 74 remoteConverter.setRepository(repository);
Note: See TracChangeset
for help on using the changeset viewer.