Skip to content

Commit

Permalink
Add file system target property (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
fh-ms committed Jul 10, 2024
1 parent f77afb5 commit ff50bb0
Show file tree
Hide file tree
Showing 30 changed files with 249 additions and 242 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

public abstract class AwsFileSystemCreator extends ConfigurationBasedCreator.Abstract<AFileSystem>
{
protected AwsFileSystemCreator()
protected AwsFileSystemCreator(final String key)
{
super(AFileSystem.class);
super(AFileSystem.class, key);
}

protected void populateBuilder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,17 @@ public class DynamoDbFileSystemCreator extends AwsFileSystemCreator
{
public DynamoDbFileSystemCreator()
{
super();
super("aws.dynamodb");
}

@Override
public AFileSystem create(
final Configuration configuration
)
public AFileSystem create(final Configuration configuration)
{
final Configuration dynamoConfiguration = configuration.child("aws.dynamodb");
if(dynamoConfiguration == null)
{
return null;
}

final DynamoDbClientBuilder clientBuilder = DynamoDbClient.builder();
this.populateBuilder(clientBuilder, dynamoConfiguration);
this.populateBuilder(clientBuilder, configuration);

final DynamoDbClient client = clientBuilder.build();
final boolean cache = dynamoConfiguration.optBoolean("cache").orElse(true);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final DynamoDbConnector connector = cache
? DynamoDbConnector.Caching(client)
: DynamoDbConnector.New(client)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,18 @@ public class S3FileSystemCreator extends AwsFileSystemCreator
{
public S3FileSystemCreator()
{
super();
super("aws.s3");
}

@Override
public AFileSystem create(
final Configuration configuration
)
public AFileSystem create(final Configuration configuration)
{
final Configuration s3Configuration = configuration.child("aws.s3");
if(s3Configuration == null)
{
return null;
}

final S3ClientBuilder clientBuilder = S3Client.builder();
this.populateBuilder(clientBuilder, s3Configuration);
this.populateBuilder(clientBuilder, configuration);

final S3Client client = clientBuilder.build();
final boolean cache = s3Configuration.optBoolean("cache").orElse(true);
final boolean directory = s3Configuration.optBoolean("directory-bucket").orElse(false);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final boolean directory = configuration.optBoolean("directory-bucket").orElse(false);
final S3Connector connector =
directory
? (cache
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,44 +29,38 @@ public class AzureStorageFileSystemCreator extends ConfigurationBasedCreator.Abs
{
public AzureStorageFileSystemCreator()
{
super(AFileSystem.class);
super(AFileSystem.class, "azure.storage");
}

@Override
public AFileSystem create(
final Configuration configuration
)
{
final Configuration azureConfiguration = configuration.child("azure.storage");
if(azureConfiguration == null)
{
return null;
}

final BlobServiceClientBuilder clientBuilder = new BlobServiceClientBuilder();

azureConfiguration.opt("endpoint").ifPresent(
configuration.opt("endpoint").ifPresent(
value -> clientBuilder.endpoint(value)
);

azureConfiguration.opt("connection-string").ifPresent(
configuration.opt("connection-string").ifPresent(
value -> clientBuilder.connectionString(value)
);

azureConfiguration.opt("encryption-scope").ifPresent(
configuration.opt("encryption-scope").ifPresent(
value -> clientBuilder.encryptionScope(value)
);

azureConfiguration.opt("credentials.type").ifPresent(credentialsType ->
configuration.opt("credentials.type").ifPresent(credentialsType ->
{
switch(credentialsType)
{
case "basic":
{
clientBuilder.credential(
new BasicAuthenticationCredential(
azureConfiguration.get("credentials.username"),
azureConfiguration.get("credentials.password")
configuration.get("credentials.username"),
configuration.get("credentials.password")
)
);
}
Expand All @@ -76,8 +70,8 @@ public AFileSystem create(
{
clientBuilder.credential(
new StorageSharedKeyCredential(
azureConfiguration.get("credentials.account-name"),
azureConfiguration.get("credentials.account-key")
configuration.get("credentials.account-name"),
configuration.get("credentials.account-key")
)
);
}
Expand All @@ -88,7 +82,7 @@ public AFileSystem create(
}
});

final Configuration furtherConfiguration = azureConfiguration.child("configuration");
final Configuration furtherConfiguration = configuration.child("configuration");
if(furtherConfiguration != null)
{
final com.azure.core.util.Configuration config = new com.azure.core.util.Configuration();
Expand All @@ -101,7 +95,7 @@ public AFileSystem create(
}

final BlobServiceClient client = clientBuilder.buildClient();
final boolean cache = azureConfiguration.optBoolean("cache").orElse(true);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final AzureStorageConnector connector = cache
? AzureStorageConnector.Caching(client)
: AzureStorageConnector.New(client)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,53 +38,45 @@ public class GoogleCloudFirestoreFileSystemCreator extends ConfigurationBasedCre

public GoogleCloudFirestoreFileSystemCreator()
{
super(AFileSystem.class);
super(AFileSystem.class, "googlecloud.firestore");
}

@Override
public AFileSystem create(
final Configuration configuration
)
public AFileSystem create(final Configuration configuration)
{
final Configuration firestoreConfiguration = configuration.child("googlecloud.firestore");
if(firestoreConfiguration == null)
{
return null;
}

final FirestoreOptions.Builder optionsBuilder = FirestoreOptions.getDefaultInstance().toBuilder();

firestoreConfiguration.opt("client-lib-token").ifPresent(
configuration.opt("client-lib-token").ifPresent(
value -> optionsBuilder.setClientLibToken(value)
);

firestoreConfiguration.opt("database-id").ifPresent(
configuration.opt("database-id").ifPresent(
value -> optionsBuilder.setDatabaseId(value)
);

firestoreConfiguration.opt("emulator-host").ifPresent(
configuration.opt("emulator-host").ifPresent(
value -> optionsBuilder.setEmulatorHost(value)
);

firestoreConfiguration.opt("host").ifPresent(
configuration.opt("host").ifPresent(
value -> optionsBuilder.setHost(value)
);

firestoreConfiguration.opt("project-id").ifPresent(
configuration.opt("project-id").ifPresent(
value -> optionsBuilder.setProjectId(value)
);

firestoreConfiguration.opt("quota-project-id").ifPresent(
configuration.opt("quota-project-id").ifPresent(
value -> optionsBuilder.setQuotaProjectId(value)
);

this.createCredentials(
firestoreConfiguration,
configuration,
optionsBuilder
);

final Firestore firestore = optionsBuilder.build().getService();
final boolean cache = firestoreConfiguration.optBoolean("cache").orElse(true);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final GoogleCloudFirestoreConnector connector = cache
? GoogleCloudFirestoreConnector.Caching(firestore)
: GoogleCloudFirestoreConnector.New(firestore)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,17 @@ public class KafkaFileSystemCreator extends ConfigurationBasedCreator.Abstract<A
{
public KafkaFileSystemCreator()
{
super(AFileSystem.class);
super(AFileSystem.class, "kafka");
}

@Override
public AFileSystem create(
final Configuration configuration
)
{
final Configuration kafkaConfiguration = configuration.child("kafka-properties");
if(kafkaConfiguration == null)
{
return null;
}

final Properties kafkaProperties = new Properties();
kafkaProperties.putAll(kafkaConfiguration.coalescedMap());
final boolean cache = kafkaConfiguration.optBoolean("cache").orElse(true);
kafkaProperties.putAll(configuration.coalescedMap());
final boolean cache = configuration.optBoolean("cache").orElse(true);
final KafkaConnector connector = cache
? KafkaConnector.Caching(kafkaProperties)
: KafkaConnector.New(kafkaProperties)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,24 +42,16 @@ public class OracleCloudObjectStorageFileSystemCreator extends ConfigurationBase

public OracleCloudObjectStorageFileSystemCreator()
{
super(AFileSystem.class);
super(AFileSystem.class, "oraclecloud.object-storage");
}

@Override
public AFileSystem create(
final Configuration configuration
)
public AFileSystem create(final Configuration configuration)
{
final Configuration objectStorageConfiguration = configuration.child("oraclecloud.object-storage");
if(objectStorageConfiguration == null)
{
return null;
}

String filePath = null;
String profile = null;
Charset charset = StandardCharsets.UTF_8;
final Configuration configFileConfiguration = objectStorageConfiguration.child("config-file");
final Configuration configFileConfiguration = configuration.child("config-file");
if(configFileConfiguration != null)
{
filePath = configFileConfiguration.get("path");
Expand Down Expand Up @@ -87,7 +79,7 @@ public AFileSystem create(
;

final ClientConfigurationBuilder clientConfigurationBuilder = ClientConfiguration.builder();
final Configuration clientConfiguration = objectStorageConfiguration.child("client");
final Configuration clientConfiguration = configuration.child("client");
if(clientConfiguration != null)
{
this.createClientConfiguration(
Expand All @@ -100,14 +92,14 @@ public AFileSystem create(
authDetailsProvider,
clientConfigurationBuilder.build()
);
objectStorageConfiguration.opt("region").ifPresent(
configuration.opt("region").ifPresent(
value -> client.setRegion(value)
);
objectStorageConfiguration.opt("endpoint").ifPresent(
configuration.opt("endpoint").ifPresent(
value -> client.setEndpoint(value)
);

final boolean cache = objectStorageConfiguration.optBoolean("cache").orElse(true);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final OracleCloudObjectStorageConnector connector = cache
? OracleCloudObjectStorageConnector.Caching(client)
: OracleCloudObjectStorageConnector.New(client)
Expand All @@ -116,7 +108,7 @@ public AFileSystem create(
}
catch(final IOException e)
{
throw new ConfigurationException(objectStorageConfiguration, e);
throw new ConfigurationException(configuration, e);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import org.eclipse.serializer.afs.types.AFileSystem;
import org.eclipse.serializer.chars.XChars;
import org.eclipse.serializer.configuration.exceptions.ConfigurationException;
import org.eclipse.serializer.configuration.types.Configuration;
import org.eclipse.serializer.configuration.types.ConfigurationBasedCreator;
import org.eclipse.store.afs.blobstore.types.BlobStoreFileSystem;
Expand All @@ -25,27 +26,19 @@ public class RedisFileSystemCreator extends ConfigurationBasedCreator.Abstract<A
{
public RedisFileSystemCreator()
{
super(AFileSystem.class);
super(AFileSystem.class, "redis");
}

@Override
public AFileSystem create(
final Configuration configuration
)
public AFileSystem create(final Configuration configuration)
{
final Configuration redisConfiguration = configuration.child("redis");
if(redisConfiguration == null)
{
return null;
}

final String redisUri = redisConfiguration.get("uri");
final String redisUri = configuration.get("uri");
if(XChars.isEmpty(redisUri))
{
return null;
throw new ConfigurationException(configuration, "redis.uri cannot be empty");
}

final boolean cache = redisConfiguration.optBoolean("cache").orElse(true);
final boolean cache = configuration.optBoolean("cache").orElse(true);
final RedisConnector connector = cache
? RedisConnector.Caching(redisUri)
: RedisConnector.New(redisUri)
Expand Down
Loading

0 comments on commit ff50bb0

Please sign in to comment.