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:
parent
28f552106d
commit
e6482a0424
|
@ -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);
|
||||
|
|
Reference in New Issue