Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
DATAMONGO-1025 - Fix creation of nested named index.
Deprecated `collection` attribute for @indexed, @CompoundIndex, @GeoSpatialIndexed. Removed deprecated attribute `expireAfterSeconds` from @CompoundIndex.
  • Loading branch information
christophstrobl committed Aug 21, 2014
commit e220d2f217ee7aa4a6f21a812fdb878e814579fa
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,10 @@
* stored in.
*
* @return
* @deprecated The collection name is derived from the domain type. Fixing the collection via this attribute might
* result in broken definitions. Will be removed in 1.7.
*/
@Deprecated
String collection() default "";

/**
Expand All @@ -140,14 +143,4 @@
*/
boolean background() default false;

/**
* Configures the number of seconds after which the collection should expire. Defaults to -1 for no expiry.
*
* @deprecated TTL cannot be defined for {@link CompoundIndex} having more than one field as key. Will be removed in
* 1.6.
* @see http://docs.mongodb.org/manual/tutorial/expire-data/
* @return
*/
@Deprecated
int expireAfterSeconds() default -1;
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,10 @@
* Name of the collection in which to create the index.
*
* @return
* @deprecated The collection name is derived from the domain type. Fixing the collection via this attribute might
* result in broken definitions. Will be removed in 1.7.
*/
@Deprecated
String collection() default "";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,13 @@
boolean useGeneratedName() default false;

/**
* Colleciton name for index to be created on.
* Collection name for index to be created on.
*
* @return
* @deprecated The collection name is derived from the domain type. Fixing the collection via this attribute might
* result in broken definitions. Will be removed in 1.7.
*/
@Deprecated
String collection() default "";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,16 +320,6 @@ protected IndexDefinitionHolder createCompoundIndexDefinition(String dotPath, St
indexDefinition.background();
}

int ttl = index.expireAfterSeconds();

if (ttl >= 0) {
if (indexDefinition.getIndexKeys().keySet().size() > 1) {
LOGGER.warn("TTL is not supported for compound index with more than one key. TTL={} will be ignored.", ttl);
} else {
indexDefinition.expire(ttl, TimeUnit.SECONDS);
}
}

String collection = StringUtils.hasText(index.collection()) ? index.collection() : fallbackCollection;
return new IndexDefinitionHolder(dotPath, indexDefinition, collection);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,22 +374,6 @@ public void singleCompoundIndexPathOnLevelZeroIsResolvedCorrectly() {
assertIndexPathAndCollection(new String[] { "foo", "bar" }, "CompoundIndexOnLevelZero", indexDefinitions.get(0));
}

/**
* @see DATAMONGO-963
*/
@Test
public void compoundIndexShouldIncludeTTLWhenConsistingOfOnlyOneKey() {

List<IndexDefinitionHolder> indexDefinitions = prepareMappingContextAndResolveIndexForType(CompoundIndexWithOnlyOneKeyAndTTL.class);

IndexDefinition indexDefinition = indexDefinitions.get(0).getIndexDefinition();
assertThat(
indexDefinition.getIndexOptions(),
equalTo(new BasicDBObjectBuilder().add("unique", true).add("dropDups", true).add("sparse", true)
.add("background", true).add("expireAfterSeconds", 10L).get()));
assertThat(indexDefinition.getIndexKeys(), equalTo(new BasicDBObjectBuilder().add("foo", 1).get()));
}

@Document(collection = "CompoundIndexOnLevelOne")
static class CompoundIndexOnLevelOne {

Expand All @@ -404,16 +388,16 @@ static class CompoundIndexOnLevelOneWithEmptyIndexDefinition {

@Document(collection = "CompoundIndexOnLevelZero")
@CompoundIndexes({ @CompoundIndex(name = "compound_index", def = "{'foo': 1, 'bar': -1}", background = true,
dropDups = true, expireAfterSeconds = 10, sparse = true, unique = true) })
dropDups = true, sparse = true, unique = true) })
static class CompoundIndexOnLevelZero {}

@CompoundIndexes({ @CompoundIndex(name = "compound_index", background = true, dropDups = true,
expireAfterSeconds = 10, sparse = true, unique = true) })
@CompoundIndexes({ @CompoundIndex(name = "compound_index", background = true, dropDups = true, sparse = true,
unique = true) })
static class CompoundIndexOnLevelZeroWithEmptyIndexDef {}

@Document(collection = "CompoundIndexOnLevelZero")
@CompoundIndex(name = "compound_index", def = "{'foo': 1, 'bar': -1}", background = true, dropDups = true,
expireAfterSeconds = 10, sparse = true, unique = true)
sparse = true, unique = true)
static class SingleCompoundIndex {}

static class IndexDefinedOnSuperClass extends CompoundIndexOnLevelZero {
Expand All @@ -422,17 +406,11 @@ static class IndexDefinedOnSuperClass extends CompoundIndexOnLevelZero {

@Document(collection = "ComountIndexWithAutogeneratedName")
@CompoundIndexes({ @CompoundIndex(useGeneratedName = true, def = "{'foo': 1, 'bar': -1}", background = true,
dropDups = true, expireAfterSeconds = 10, sparse = true, unique = true) })
dropDups = true, sparse = true, unique = true) })
static class ComountIndexWithAutogeneratedName {

}

@Document(collection = "CompoundIndexWithOnlyOneKeyAndTTL")
@CompoundIndex(def = "{'foo': 1}", background = true, dropDups = true, expireAfterSeconds = 10, sparse = true,
unique = true)
static class CompoundIndexWithOnlyOneKeyAndTTL {

}
}

public static class TextIndexedResolutionTests {
Expand Down