From 8591ae2dc9131e590ced855dacfd8ef8c199a73d Mon Sep 17 00:00:00 2001 From: igor nitto Date: Mon, 19 Mar 2018 14:34:02 +0000 Subject: [PATCH] CordApps back in node classpath (#2843) [CORDA-1232] --- .../corda/nodeapi/internal/persistence/CordaPersistence.kt | 5 ++--- node/src/main/java/CordaCaplet.java | 1 + .../main/kotlin/net/corda/node/internal/AbstractNode.kt | 7 +++---- node/src/main/kotlin/net/corda/node/internal/Node.kt | 2 -- .../src/main/kotlin/net/corda/testing/node/MockServices.kt | 2 +- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt index 6c16d28785..4884c21832 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt @@ -52,8 +52,7 @@ class CordaPersistence( val dataSource: DataSource, databaseConfig: DatabaseConfig, schemas: Set, - attributeConverters: Collection> = emptySet(), - val cordappClassLoader: ClassLoader? = null + attributeConverters: Collection> = emptySet() ) : Closeable { companion object { private val log = contextLogger() @@ -62,7 +61,7 @@ class CordaPersistence( private val defaultIsolationLevel = databaseConfig.transactionIsolationLevel val hibernateConfig: HibernateConfiguration by lazy { transaction { - HibernateConfiguration(schemas, databaseConfig, attributeConverters, cordappClassLoader) + HibernateConfiguration(schemas, databaseConfig, attributeConverters) } } val entityManagerFactory get() = hibernateConfig.sessionFactoryForRegisteredSchemas diff --git a/node/src/main/java/CordaCaplet.java b/node/src/main/java/CordaCaplet.java index c127eefb8c..c9201a3621 100644 --- a/node/src/main/java/CordaCaplet.java +++ b/node/src/main/java/CordaCaplet.java @@ -82,6 +82,7 @@ public class CordaCaplet extends Capsule { (new File(baseDir, "cordapps")).mkdir(); // Add additional directories of JARs to the classpath (at the end). e.g. for JDBC drivers + augmentClasspath((List) cp, new File(baseDir, "cordapps")); try { List jarDirs = nodeConfig.getStringList("jarDirs"); log(LOG_VERBOSE, "Configured JAR directories = " + jarDirs); diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 6f8572fd1a..ef1bbceeb0 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -643,7 +643,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, protected open fun initialiseDatabasePersistence(schemaService: SchemaService, identityService: IdentityService): CordaPersistence { val props = configuration.dataSourceProperties if (props.isEmpty()) throw DatabaseConfigurationException("There must be a database configured.") - val database = configureDatabase(props, configuration.database, identityService, schemaService, cordappLoader.appClassLoader) + val database = configureDatabase(props, configuration.database, identityService, schemaService) // Now log the vendor string as this will also cause a connection to be tested eagerly. logVendorString(database, log) runOnStop += database::close @@ -879,8 +879,7 @@ internal class NetworkMapCacheEmptyException : Exception() fun configureDatabase(hikariProperties: Properties, databaseConfig: DatabaseConfig, identityService: IdentityService, - schemaService: SchemaService = NodeSchemaService(), - cordappClassLoader: ClassLoader? = null): CordaPersistence { + schemaService: SchemaService = NodeSchemaService()): CordaPersistence { // Register the AbstractPartyDescriptor so Hibernate doesn't warn when encountering AbstractParty. Unfortunately // Hibernate warns about not being able to find a descriptor if we don't provide one, but won't use it by default // so we end up providing both descriptor and converter. We should re-examine this in later versions to see if @@ -888,5 +887,5 @@ fun configureDatabase(hikariProperties: Properties, JavaTypeDescriptorRegistry.INSTANCE.addDescriptor(AbstractPartyDescriptor(identityService)) val dataSource = DataSourceFactory.createDataSource(hikariProperties) val attributeConverters = listOf(AbstractPartyToX500NameAsStringConverter(identityService)) - return CordaPersistence(dataSource, databaseConfig, schemaService.schemaOptions.keys, attributeConverters, cordappClassLoader) + return CordaPersistence(dataSource, databaseConfig, schemaService.schemaOptions.keys, attributeConverters) } diff --git a/node/src/main/kotlin/net/corda/node/internal/Node.kt b/node/src/main/kotlin/net/corda/node/internal/Node.kt index 4879d5868b..8fb3e583d5 100644 --- a/node/src/main/kotlin/net/corda/node/internal/Node.kt +++ b/node/src/main/kotlin/net/corda/node/internal/Node.kt @@ -173,8 +173,6 @@ open class Node(configuration: NodeConfiguration, printBasicNodeInfo("Advertised P2P messaging addresses", info.addresses.joinToString()) rpcServerAddresses?.let { rpcMessagingClient = RPCMessagingClient(configuration.rpcOptions.sslConfig, it.admin, /*networkParameters.maxMessageSize*/MAX_FILE_SIZE) - printBasicNodeInfo("RPC connection address", it.primary.toString()) - printBasicNodeInfo("RPC admin connection address", it.admin.toString()) } verifierMessagingClient = when (configuration.verifierType) { VerifierType.OutOfProcess -> throw IllegalArgumentException("OutOfProcess verifier not supported") //VerifierMessagingClient(configuration, serverAddress, services.monitoringService.metrics, /*networkParameters.maxMessageSize*/MAX_FILE_SIZE) diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt index 54d5fe3362..7a2e3cba34 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt @@ -102,7 +102,7 @@ open class MockServices private constructor( val cordappLoader = CordappLoader.createWithTestPackages(cordappPackages) val dataSourceProps = makeTestDataSourceProperties() val schemaService = NodeSchemaService(cordappLoader.cordappSchemas) - val database = configureDatabase(dataSourceProps, DatabaseConfig(), identityService, schemaService, cordappLoader.appClassLoader) + val database = configureDatabase(dataSourceProps, DatabaseConfig(), identityService, schemaService) val mockService = database.transaction { object : MockServices(cordappLoader, identityService, networkParameters, initialIdentity, moreKeys) { override val vaultService: VaultService = makeVaultService(database.hibernateConfig, schemaService)