@@ -33,13 +33,13 @@ class CryptoFileSystems {
3333 private static final Logger LOG = LoggerFactory .getLogger (CryptoFileSystems .class );
3434
3535 private final ConcurrentMap <Path , CryptoFileSystemImpl > fileSystems = new ConcurrentHashMap <>();
36- private final CryptoFileSystemComponent .Builder cryptoFileSystemComponentBuilder ; // sharing reusable builder via synchronized
36+ private final CryptoFileSystemComponent .Factory cryptoFileSystemComponentFactory ;
3737 private final FileSystemCapabilityChecker capabilityChecker ;
3838 private final SecureRandom csprng ;
3939
4040 @ Inject
41- public CryptoFileSystems (CryptoFileSystemComponent .Builder cryptoFileSystemComponentBuilder , FileSystemCapabilityChecker capabilityChecker , SecureRandom csprng ) {
42- this .cryptoFileSystemComponentBuilder = cryptoFileSystemComponentBuilder ;
41+ public CryptoFileSystems (CryptoFileSystemComponent .Factory cryptoFileSystemComponentFactory , FileSystemCapabilityChecker capabilityChecker , SecureRandom csprng ) {
42+ this .cryptoFileSystemComponentFactory = cryptoFileSystemComponentFactory ;
4343 this .capabilityChecker = capabilityChecker ;
4444 this .csprng = csprng ;
4545 }
@@ -59,7 +59,7 @@ public CryptoFileSystemImpl create(CryptoFileSystemProvider provider, Path pathT
5959 checkVaultRootExistence (pathToVault , cryptor );
6060 return fileSystems .compute (normalizedPathToVault , (path , fs ) -> {
6161 if (fs == null ) {
62- return create (provider , normalizedPathToVault , adjustedProperties , cryptor , config );
62+ return cryptoFileSystemComponentFactory . create (cryptor , config , provider , normalizedPathToVault , adjustedProperties ). cryptoFileSystem ( );
6363 } else {
6464 throw new FileSystemAlreadyExistsException ();
6565 }
@@ -86,18 +86,6 @@ private void checkVaultRootExistence(Path pathToVault, Cryptor cryptor) throws C
8686 }
8787 }
8888
89- // synchronized access to non-threadsafe cryptoFileSystemComponentBuilder required
90- private synchronized CryptoFileSystemImpl create (CryptoFileSystemProvider provider , Path pathToVault , CryptoFileSystemProperties properties , Cryptor cryptor , VaultConfig config ) {
91- return cryptoFileSystemComponentBuilder //
92- .cryptor (cryptor ) //
93- .vaultConfig (config ) //
94- .pathToVault (pathToVault ) //
95- .properties (properties ) //
96- .provider (provider ) //
97- .build () //
98- .cryptoFileSystem ();
99- }
100-
10189 /**
10290 * Attempts to read a vault config file
10391 *
0 commit comments