Fixed maven compilation error

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-publishing/document-store-lib--mongodb@122087 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2015-12-23 14:22:00 +00:00
parent 28f552106d
commit e6482a0424
1 changed files with 14 additions and 11 deletions

View File

@ -56,7 +56,10 @@ public class PersistenceMongoDB extends PersistenceBackend {
List<? extends Codec<?>> additionalCodecs = discoverAdditionalCodecs();
CodecRegistry mongoDefaultCR = MongoClient.getDefaultCodecRegistry();
CodecRegistry cr = addCoded(mongoDefaultCR, additionalCodecs);
@SuppressWarnings("rawtypes")
Codec[] codecArray = new Codec[additionalCodecs.size()];
codecArray = additionalCodecs.toArray(codecArray);
CodecRegistry cr = addCoded(mongoDefaultCR, codecArray);
MONGO_CLIENT_OPTIONS = createMongoClientOptions(cr);
}
@ -66,7 +69,7 @@ public class PersistenceMongoDB extends PersistenceBackend {
protected MongoClientOptions mongoClientOptions;
protected MongoDatabase mongoDatabase;
public static CodecRegistry addCoded(CodecRegistry cr, List<? extends Codec<?>> codecs){
public static CodecRegistry addCoded(CodecRegistry cr, Codec<?>[] codecs){
CodecRegistry crFromCodes = CodecRegistries.fromCodecs(codecs);
return CodecRegistries.fromRegistries(cr, crFromCodes);
}
@ -161,12 +164,11 @@ public class PersistenceMongoDB extends PersistenceBackend {
mongoDatabase.getCollection(collectionName).insertOne(document);
}
@SuppressWarnings("unchecked")
protected static List<? extends Codec<?>> findMissingCodecs(CodecRegistry cr, Record record){
@SuppressWarnings("rawtypes")
@SuppressWarnings({ "unchecked", "rawtypes" })
protected static List<Codec> findMissingCodecs(CodecRegistry cr, Record record){
List<Codec> codecs = new ArrayList<>();
Collection<Comparable<? extends Serializable>> properties = record.getResourceProperties().values();
for(@SuppressWarnings("rawtypes") Comparable value : properties){
for(Comparable value : properties){
try {
try {
cr.get(value.getClass());
@ -174,13 +176,11 @@ public class PersistenceMongoDB extends PersistenceBackend {
}catch(CodecConfigurationException cce){
logger.trace("No Codec found for {} : {}", value.getClass(), value);
if(value.getClass().isEnum()){
@SuppressWarnings({ "rawtypes" })
EnumCodec<? extends Enum> enumCodec =
new EnumCodec<>((Class<? extends Enum>) value.getClass());
codecs.add(enumCodec);
logger.trace("Adding {} to manage {} : {}", enumCodec, value.getClass(), value);
}else{
@SuppressWarnings({ "rawtypes" })
GenericCodec genericCodec = new GenericCodec<>(value.getClass());
try {
Comparable<? extends Serializable> recreatedValue = genericCodec.getFromString(value.toString());
@ -202,17 +202,20 @@ public class PersistenceMongoDB extends PersistenceBackend {
continue;
}
}
return (List<? extends Codec<?>>) codecs;
return codecs;
}
@SuppressWarnings("rawtypes")
protected void checkSerializability(Record record) throws Exception{
CodecRegistry cr = mongoClientOptions.getCodecRegistry();
List<? extends Codec<?>> codecs = findMissingCodecs(cr, record);
List<Codec> codecs = findMissingCodecs(cr, record);
if(!codecs.isEmpty()){
logger.debug("Recreating Mongo CLient to Add Codecs");
CodecRegistry newCR = addCoded(cr, (List<? extends Codec<?>>) codecs);
Codec[] codecArray = new Codec[codecs.size()];
codecArray = codecs.toArray(codecArray);
CodecRegistry newCR = addCoded(cr, codecArray);
mongoClientOptions = createMongoClientOptions(newCR);
mongoClient.close();
prepareConnection(configuration);