@Test public void testAddColumnDefinitionWhenNoneOnConstructor() { ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition("blah-ks", "blah-cf", ComparatorType.BYTESTYPE); assertSame( Collections.emptyList(), cfDef.getColumnMetadata()); // // column defs are not required but are nice for validating data and displaying meaningful values in // cassandra-cli // BasicColumnDefinition cd = new BasicColumnDefinition(); cd.setName(ByteBuffer.wrap("colname".getBytes())); cd.setValidationClass("org.apache.cassandra.db.marshal.UTF8Type"); cfDef.addColumnDefinition(cd); assertEquals( 1, cfDef.getColumnMetadata().size()); assertEquals( cd, cfDef.getColumnMetadata().get(0)); }
keyCacheSavePeriodInSeconds = columnFamilyDefinition.getKeyCacheSavePeriodInSeconds(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnDefinitions = columnFamilyDefinition.getColumnMetadata() != null ? new ArrayList<ColumnDefinition>(columnFamilyDefinition.getColumnMetadata()) : new ArrayList<ColumnDefinition>(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds();
@Test public void testEditColumnFamily() throws Exception { BasicColumnFamilyDefinition columnFamilyDefinition = new BasicColumnFamilyDefinition(); columnFamilyDefinition.setKeyspaceName("DynKeyspace3"); columnFamilyDefinition.setName("DynamicCF"); ColumnFamilyDefinition cfDef = new ThriftCfDef(columnFamilyDefinition); KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition("DynKeyspace3", "org.apache.cassandra.locator.SimpleStrategy", 1, Arrays.asList(cfDef)); cassandraCluster.addKeyspace(keyspaceDefinition); KeyspaceDefinition fromCluster = cassandraCluster.describeKeyspace("DynKeyspace3"); cfDef = fromCluster.getCfDefs().get(0); columnFamilyDefinition = new BasicColumnFamilyDefinition(cfDef); BasicColumnDefinition columnDefinition = new BasicColumnDefinition(); columnDefinition.setName(StringSerializer.get().toByteBuffer("birthdate")); columnDefinition.setIndexName("birthdate_idx"); columnDefinition.setIndexType(ColumnIndexType.KEYS); columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName()); columnFamilyDefinition.addColumnDefinition(columnDefinition); columnDefinition = new BasicColumnDefinition(); columnDefinition.setName(StringSerializer.get().toByteBuffer("nonindexed_field")); columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName()); columnFamilyDefinition.addColumnDefinition(columnDefinition); cassandraCluster.updateColumnFamily(new ThriftCfDef(columnFamilyDefinition)); fromCluster = cassandraCluster.describeKeyspace("DynKeyspace3"); assertEquals("birthdate",StringSerializer.get().fromByteBuffer(fromCluster.getCfDefs().get(0).getColumnMetadata().get(0).getName())); assertEquals("birthdate_idx",fromCluster.getCfDefs().get(0).getColumnMetadata().get(0).getIndexName()); assertEquals("nonindexed_field",StringSerializer.get().fromByteBuffer(fromCluster.getCfDefs().get(0).getColumnMetadata().get(1).getName())); }
System.out.println("Default Validation:" + cfdef.getDefaultValidationClass()); System.out.println("Column MetaData:"); for (ColumnDefinition cdef: cfdef.getColumnMetadata()) { System.out.println(" Column Name: " + Charset.defaultCharset().decode(cdef.getName()).toString()); System.out.println(" Validation Class: " + cdef.getValidationClass());
/** * Private helper to initialize the schema */ protected void initializeSchema() throws Exception { if (keyspaceDefinitions.size() == 0) throw new IllegalStateException("no keyspace definitions founds, maybe add some entities to the factory"); for (KeyspaceDefinition keyspaceDefinition : ThriftKsDef.fromThriftList(new ArrayList<KsDef>(keyspaceDefinitions.values()))) { KeyspaceDefinition existingKeyspace = cluster.describeKeyspace(keyspaceDefinition.getName()); if (existingKeyspace == null) { cluster.addKeyspace(keyspaceDefinition, true); } else { for (ColumnFamilyDefinition columnFamilyDefinition : keyspaceDefinition.getCfDefs()) { if (keyspaceContainsColumnFamily(columnFamilyDefinition, existingKeyspace)) { log.debug(String.format("found column family %s, updating schema", columnFamilyDefinition.getName())); ColumnFamilyDefinition existingColumnFamilyDefinition = getColumnFamilyFromKeyspace(columnFamilyDefinition.getName(), existingKeyspace); existingColumnFamilyDefinition.getColumnMetadata().clear(); for (ColumnDefinition columnDefinition : columnFamilyDefinition.getColumnMetadata()) { existingColumnFamilyDefinition.addColumnDefinition(columnDefinition); } cluster.updateColumnFamily(existingColumnFamilyDefinition, true); } else { log.debug(String.format("not found column family %s, adding to schema", columnFamilyDefinition.getName())); cluster.addColumnFamily(columnFamilyDefinition, true); } } } } }
keyValidationAlias = columnFamilyDefinition.getKeyValidationAlias(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnMetadata = columnFamilyDefinition.getColumnMetadata(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds(); defaultValidationClass = columnFamilyDefinition.getDefaultValidationClass();
System.out.println(" CF Type: " +def.getColumnType()); System.out.println(" CF Name: " +def.getName()); System.out.println(" CF Metadata: " +def.getColumnMetadata());
keyCacheSavePeriodInSeconds = columnFamilyDefinition.getKeyCacheSavePeriodInSeconds(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnDefinitions = columnFamilyDefinition.getColumnMetadata() != null ? new ArrayList<ColumnDefinition>(columnFamilyDefinition.getColumnMetadata()) : new ArrayList<ColumnDefinition>(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds();
keyCacheSavePeriodInSeconds = columnFamilyDefinition.getKeyCacheSavePeriodInSeconds(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnDefinitions = columnFamilyDefinition.getColumnMetadata() != null ? new ArrayList<ColumnDefinition>(columnFamilyDefinition.getColumnMetadata()) : new ArrayList<ColumnDefinition>(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds();
keyValidationClass = columnFamilyDefinition.getKeyValidationClass(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnMetadata = columnFamilyDefinition.getColumnMetadata(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds(); defaultValidationClass = columnFamilyDefinition.getDefaultValidationClass();
keyValidationAlias = columnFamilyDefinition.getKeyValidationAlias(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnMetadata = columnFamilyDefinition.getColumnMetadata(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds(); defaultValidationClass = columnFamilyDefinition.getDefaultValidationClass();