This is an automated email from the ASF dual-hosted git repository. yasith pushed a commit to branch distribution-improvements in repository https://gitbox.apache.org/repos/asf/airavata.git
commit ff72f08bf6e75bb614baf3c356e32a733eb88c41 Author: yasithdev <[email protected]> AuthorDate: Sun Jun 29 20:43:24 2025 -0500 fix api server start bugs --- airavata-api/pom.xml | 17 +- .../airavata/common/utils/ApplicationSettings.java | 8 +- .../org/apache/airavata/common/utils/JPAUtils.java | 5 +- .../airavata/common/utils/ServerSettings.java | 5 +- .../core/utils/migration/MappingToolRunner.java | 2 +- .../org/apache/airavata/server/ServerMain.java | 13 +- .../src/main/resources/META-INF/persistence.xml | 337 +++++++++++---------- airavata-api/src/main/resources/log4j2.xml | 57 ++-- airavata-api/src/test/resources/log4j2.xml | 57 ++-- dev-tools/deployment-scripts/README.md | 40 +++ .../deployment-scripts/distribution_update.sh | 5 +- dev-tools/deployment-scripts/services_up.sh | 9 +- .../src/main/assembly/load-client-bin-assembly.xml | 3 +- .../load-client/src/main/resources/bin/setenv.sh | 2 + modules/agent-framework/agent-service/pom.xml | 77 +++++ .../src/main/resources/distribution/bin/setenv.sh | 2 + .../main/resources/distribution/conf/log4j2.xml | 57 ++-- .../agent-service/src/main/resources/log4j2.xml | 52 ++++ .../src/main/resources/distribution/bin/setenv.sh | 2 + .../main/resources/distribution/conf/log4j2.xml | 57 ++-- .../src/main/resources/distribution/bin/setenv.sh | 2 + .../main/resources/distribution/conf/log4j2.xml | 57 ++-- .../ide-integration/src/main/resources/log4j2.xml | 61 ++-- .../src/main/resources/db-migrate.sh | 15 +- .../research-framework/research-service/pom.xml | 77 +++++ .../src/main/resources/distribution/bin/setenv.sh | 2 + .../main/resources/distribution/conf/log4j2.xml | 57 ++-- .../research-service/src/main/resources/log4j2.xml | 52 ++++ pom.xml | 14 +- .../iam-admin-services-cpi.thrift | 2 +- 30 files changed, 743 insertions(+), 403 deletions(-) diff --git a/airavata-api/pom.xml b/airavata-api/pom.xml index f05bcf414b..4cc823d103 100644 --- a/airavata-api/pom.xml +++ b/airavata-api/pom.xml @@ -56,6 +56,10 @@ under the License. <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> + <dependency> + <groupId>jakarta.transaction</groupId> + <artifactId>jakarta.transaction-api</artifactId> + </dependency> <!-- Provided APIs --> <dependency> @@ -94,6 +98,10 @@ under the License. <groupId>org.apache.derby</groupId> <artifactId>derbytools</artifactId> </dependency> + <dependency> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + </dependency> <!-- CLI & mapping --> <dependency> @@ -114,6 +122,10 @@ under the License. <groupId>org.apache.openjpa</groupId> <artifactId>openjpa</artifactId> </dependency> + <dependency> + <groupId>org.hibernate.validator</groupId> + <artifactId>hibernate-validator</artifactId> + </dependency> <!-- JSON, Kafka, XML --> <dependency> @@ -377,9 +389,8 @@ under the License. <groupId>org.apache.openjpa</groupId> <artifactId>openjpa-maven-plugin</artifactId> <configuration> - <includes>**/model/*.class</includes> - <includes>**/entities/*.class</includes> - <excludes>**/entities/XML*.class</excludes> + <includes>**/entities/**/*.class</includes> + <excludes>**/entities/**/XML*.class,**/model/**/*.class,**/entities/**/*PK.class</excludes> <addDefaultConstructor>true</addDefaultConstructor> <enforcePropertyRestrictions>true</enforcePropertyRestrictions> </configuration> diff --git a/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java b/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java index 658f7059c2..2c68ce0d7c 100644 --- a/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java +++ b/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java @@ -383,7 +383,9 @@ public class ApplicationSettings { } public static String getTrustStorePath() throws ApplicationSettingsException { - return getSetting(TRUST_STORE_PATH); + String airavataConfigDir = getSetting(AIRAVATA_CONFIG_DIR); + String trustStorePath = getSetting(TRUST_STORE_PATH); + return new File(airavataConfigDir, trustStorePath).getAbsolutePath(); } public static String getTrustStorePassword() throws ApplicationSettingsException { @@ -395,7 +397,9 @@ public class ApplicationSettings { } public static String getCredentialStoreKeyStorePath() throws ApplicationSettingsException { - return getSetting("credential.store.keystore.url"); + String airavataConfigDir = getSetting(AIRAVATA_CONFIG_DIR); + String credentialStoreKeyStorePath = getSetting("credential.store.keystore.url"); + return new File(airavataConfigDir, credentialStoreKeyStorePath).getAbsolutePath(); } public static String getCredentialStoreKeyAlias() throws ApplicationSettingsException { diff --git a/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java b/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java index 2761a1ad75..ec3fcdf9db 100644 --- a/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java +++ b/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java @@ -37,8 +37,8 @@ public class JPAUtils { static { Map<String, String> properties = new HashMap<String, String>(); - properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource"); - properties.put("openjpa.DynamicEnhancementAgent", "true"); + properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp2.BasicDataSource"); + properties.put("openjpa.DynamicEnhancementAgent", "false"); properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported"); properties.put("openjpa.RemoteCommitProvider", "sjvm"); properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO"); @@ -48,6 +48,7 @@ public class JPAUtils { properties.put("openjpa.jdbc.SynchronizeMappings", "validate"); properties.put("openjpa.jdbc.QuerySQLCache", "false"); properties.put("openjpa.DetachState", "all"); + properties.put("openjpa.MetaDataFactory", "jpa(Types=org.apache.airavata.sharing.registry.db.entities.*;org.apache.airavata.registry.core.entities.*;org.apache.airavata.service.profile.commons.*.entities.*)"); properties.put( "openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," diff --git a/airavata-api/src/main/java/org/apache/airavata/common/utils/ServerSettings.java b/airavata-api/src/main/java/org/apache/airavata/common/utils/ServerSettings.java index ef0d7adb68..63419cafcb 100644 --- a/airavata-api/src/main/java/org/apache/airavata/common/utils/ServerSettings.java +++ b/airavata-api/src/main/java/org/apache/airavata/common/utils/ServerSettings.java @@ -19,6 +19,7 @@ */ package org.apache.airavata.common.utils; +import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.HashMap; @@ -421,7 +422,9 @@ public class ServerSettings extends ApplicationSettings { } public static String getKeyStorePath() throws ApplicationSettingsException { - return getSetting(Constants.KEYSTORE_PATH); + String airavataConfigDir = getSetting(AIRAVATA_CONFIG_DIR); + String keystorePath = getSetting(Constants.KEYSTORE_PATH); + return new File(airavataConfigDir, keystorePath).getAbsolutePath(); } public static String getKeyStorePassword() throws ApplicationSettingsException { diff --git a/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java b/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java index 06a5c2ffc4..ed3606ebf1 100644 --- a/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java +++ b/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/migration/MappingToolRunner.java @@ -42,7 +42,7 @@ public class MappingToolRunner { JDBCConfiguration jdbcConfiguration = new JDBCConfigurationImpl(); jdbcConfiguration.fromProperties(JPAUtils.createConnectionProperties(jdbcConfig)); - jdbcConfiguration.setConnectionDriverName("org.apache.commons.dbcp.BasicDataSource"); + jdbcConfiguration.setConnectionDriverName("org.apache.commons.dbcp2.BasicDataSource"); Options options = new Options(); options.put("sqlFile", outputFile); diff --git a/airavata-api/src/main/java/org/apache/airavata/server/ServerMain.java b/airavata-api/src/main/java/org/apache/airavata/server/ServerMain.java index 095e05aed3..4381715829 100644 --- a/airavata-api/src/main/java/org/apache/airavata/server/ServerMain.java +++ b/airavata-api/src/main/java/org/apache/airavata/server/ServerMain.java @@ -188,16 +188,15 @@ public class ServerMain { private static void performServerStart(String[] args) { setServerStarted(); logger.info("Airavata server instance starting..."); + String serverNames = "all"; for (String string : args) { logger.info("Server Arguments: " + string); + if (string.startsWith("--servers=")) { + serverNames = string.substring("--servers=".length()); + } } - String serverNames; - try { - serverNames = ApplicationSettings.getSetting(SERVERS_KEY); - startAllServers(serverNames); - } catch (ApplicationSettingsException e1) { - logger.error("Error finding servers property"); - } + serverNames = ApplicationSettings.getSetting(SERVERS_KEY, serverNames); + startAllServers(serverNames); while (!hasStopRequested()) { try { Thread.sleep(2000); diff --git a/airavata-api/src/main/resources/META-INF/persistence.xml b/airavata-api/src/main/resources/META-INF/persistence.xml index af6b9eb949..2cbaab2234 100644 --- a/airavata-api/src/main/resources/META-INF/persistence.xml +++ b/airavata-api/src/main/resources/META-INF/persistence.xml @@ -20,167 +20,176 @@ * * --> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> - <persistence-unit name="profile_service"> - <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> - <class>org.apache.airavata.service.profile.commons.user.entities.UserProfileEntity</class> - <class>org.apache.airavata.service.profile.commons.user.entities.NSFDemographicsEntity</class> - <class>org.apache.airavata.service.profile.commons.user.entities.CustomizedDashboardEntity</class> - <class>org.apache.airavata.service.profile.commons.tenant.entities.GatewayEntity</class> - <exclude-unlisted-classes>true</exclude-unlisted-classes> - - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> - <persistence-unit name="appcatalog_data_new"> - <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> - <class>org.apache.airavata.registry.core.entities.appcatalog.GridftpDataMovementEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ResourceJobManagerEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationModuleEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationDeploymentEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInterfaceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayGroupsEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayProfileEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.StorageResourceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.SshJobSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GlobusSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GridftpEndpointEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePreferenceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfaceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfaceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.StorageInterfaceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.LocalSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GlobusGkEndpointEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreDatamovementEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPostjobcommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPrejobcommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshExportEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.LibraryApendPathEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.LibraryPrependPathEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.AppEnvironmentEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.PrejobCommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.PostjobCommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.AppModuleMappingEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationOutputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.BatchQueueEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceFileSystemEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.CloudJobSubmissionEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.JobManagerCommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParallelismCommandEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.LocalDataMovementEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.StoragePreferenceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.SSHAccountProvisionerConfiguration</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.BatchQueueResourcePolicyEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePolicyEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GroupComputeResourcePrefEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GroupSSHAccountProvisionerConfig</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.GroupResourceProfileEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ModuleLoadCmdEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfileEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferenceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferenceEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParserEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParserInputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParserOutputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParsingTemplateEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParsingTemplateInputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParserConnectorInputEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ParserConnectorEntity</class> - <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceReservationEntity</class> - <exclude-unlisted-classes>true</exclude-unlisted-classes> - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> - <persistence-unit name="replicacatalog_data_new"> - <class>org.apache.airavata.registry.core.entities.replicacatalog.ConfigurationEntity</class> - <class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductEntity</class> - <class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductMetadataEntity</class> - <class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaLocationEntity</class> - <class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaMetadataEntity</class> - <exclude-unlisted-classes>true</exclude-unlisted-classes> - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> - <persistence-unit name="workflowcatalog_data_new"> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.ApplicationErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.ApplicationStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerInputEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerOutputEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowApplicationEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowConnectionEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowDataBlockEntity</class> - <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowHandlerEntity</class> - <exclude-unlisted-classes>true</exclude-unlisted-classes> - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> - <persistence-unit name="experiment_data_new"> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentInputEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentOutputEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentSummaryEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayWorkerEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayUsageReportingCommandEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.JobEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.JobStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.NotificationEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessInputEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessOutputEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessResourceScheduleEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessWorkflowEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProjectEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ProjectUserEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.QueueStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.TaskEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.TaskErrorEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.TaskStatusEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.UserConfigurationDataEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.ComputationalResourceSchedulingEntity</class> - <class>org.apache.airavata.registry.core.entities.expcatalog.UserEntity</class> - <exclude-unlisted-classes>true</exclude-unlisted-classes> - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> - - <persistence-unit name="airavata-sharing-registry"> - <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> - <class>org.apache.airavata.sharing.registry.db.entities.DomainEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.EntityEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.EntityTypeEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.GroupMembershipEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.PermissionTypeEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.SharingEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.UserEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.GroupAdminEntity</class> - <class>org.apache.airavata.sharing.registry.db.entities.UserGroupEntity</class> - <properties> - <property name="openjpa.jdbc.MappingDefaults" - value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> - </properties> - </persistence-unit> -</persistence> + <persistence-unit name="profile_service"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.service.profile.commons.user.entities.UserProfileEntity</class> + <class>org.apache.airavata.service.profile.commons.user.entities.NSFDemographicsEntity</class> + <class>org.apache.airavata.service.profile.commons.user.entities.CustomizedDashboardEntity</class> + <class>org.apache.airavata.service.profile.commons.tenant.entities.GatewayEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> + <persistence-unit name="appcatalog_data_new"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.registry.core.entities.appcatalog.GridftpDataMovementEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ResourceJobManagerEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationModuleEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationDeploymentEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInterfaceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayGroupsEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayProfileEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.StorageResourceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.SshJobSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GlobusSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GridftpEndpointEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePreferenceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfaceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfaceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.StorageInterfaceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.LocalSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GlobusGkEndpointEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreDatamovementEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPostjobcommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPrejobcommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GsisshExportEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.LibraryApendPathEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.LibraryPrependPathEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.AppEnvironmentEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.PrejobCommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.PostjobCommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.AppModuleMappingEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationOutputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.BatchQueueEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceFileSystemEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.CloudJobSubmissionEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.JobManagerCommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParallelismCommandEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.LocalDataMovementEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.StoragePreferenceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.SSHAccountProvisionerConfiguration</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.BatchQueueResourcePolicyEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePolicyEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GroupComputeResourcePrefEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GroupSSHAccountProvisionerConfig</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.GroupResourceProfileEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ModuleLoadCmdEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfileEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferenceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferenceEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParserEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParserInputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParserOutputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParsingTemplateEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParsingTemplateInputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParserConnectorInputEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ParserConnectorEntity</class> + <class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceReservationEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> + <persistence-unit name="replicacatalog_data_new"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.registry.core.entities.replicacatalog.ConfigurationEntity</class> + <class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductEntity</class> + <class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductMetadataEntity</class> + <class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaLocationEntity</class> + <class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaMetadataEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> + <persistence-unit name="workflowcatalog_data_new"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowErrorEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.ApplicationErrorEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.ApplicationStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerErrorEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerInputEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerOutputEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.HandlerStatusEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowApplicationEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowConnectionEntity</class> + <class> + org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowDataBlockEntity</class> + <class>org.apache.airavata.registry.core.entities.airavataworkflowcatalog.WorkflowHandlerEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> + <persistence-unit name="experiment_data_new"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentErrorEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentInputEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentOutputEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ExperimentSummaryEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayWorkerEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayUsageReportingCommandEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.JobEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.JobStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.NotificationEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessErrorEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessInputEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessOutputEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessResourceScheduleEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessWorkflowEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProjectEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.ProjectUserEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.QueueStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.TaskEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.TaskErrorEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.TaskStatusEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.UserConfigurationDataEntity</class> + <class> + org.apache.airavata.registry.core.entities.expcatalog.ComputationalResourceSchedulingEntity</class> + <class>org.apache.airavata.registry.core.entities.expcatalog.UserEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> + <persistence-unit name="airavata-sharing-registry"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.sharing.registry.db.entities.DomainEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.EntityEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.EntityTypeEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.GroupMembershipEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.PermissionTypeEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.SharingEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.UserEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.GroupAdminEntity</class> + <class>org.apache.airavata.sharing.registry.db.entities.UserGroupEntity</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="openjpa.jdbc.MappingDefaults" + value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade" /> + </properties> + </persistence-unit> +</persistence> \ No newline at end of file diff --git a/airavata-api/src/main/resources/log4j2.xml b/airavata-api/src/main/resources/log4j2.xml index e38f7ff011..2af1a20101 100644 --- a/airavata-api/src/main/resources/log4j2.xml +++ b/airavata-api/src/main/resources/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/airavata-api.log" + filePattern="../logs/airavata-api-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/airavata-api/src/test/resources/log4j2.xml b/airavata-api/src/test/resources/log4j2.xml index e38f7ff011..2af1a20101 100644 --- a/airavata-api/src/test/resources/log4j2.xml +++ b/airavata-api/src/test/resources/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/airavata-api.log" + filePattern="../logs/airavata-api-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/dev-tools/deployment-scripts/README.md b/dev-tools/deployment-scripts/README.md new file mode 100644 index 0000000000..620a129409 --- /dev/null +++ b/dev-tools/deployment-scripts/README.md @@ -0,0 +1,40 @@ +## Purpose of Vault Keys + +* `airavata_sym.jks` - symmetric key used to encrypt all secrets in the credential store. +* `airavata.jks` - +* `client_truststore.jks` - TLS certificate used to validate incoming https connections. generated from certbot fullchain.pem. + +## Run on Build Server + +```bash + +# build from source +mvn clean install -DskipTests + +# define hostname and basepath [email protected] +BASEPATH="~/airavata-deployment/airavata-services-v2" + +# copy the shell scripts +scp dev-tools/deployment-scripts/*.sh $HOSTNAME:$BASEPATH/ + +# copy the vault +scp dev-tools/deployment-scripts/vault/* $HOSTNAME:$BASEPATH/vault/ + +scp -r distribution $HOSTNAME:$BASEPATH/ + +``` + +## Run on Deployment Server +```bash + +BASEPATH=$HOME/airavata-deployment/airavata-services-v2 +cd $BASEPATH + +./services_down.sh +./distribution_update.sh +./services_up.sh + +multitail apache-airavata-*/logs/*.log + +``` \ No newline at end of file diff --git a/dev-tools/deployment-scripts/distribution_update.sh b/dev-tools/deployment-scripts/distribution_update.sh index 06b9775496..74141eaf1e 100644 --- a/dev-tools/deployment-scripts/distribution_update.sh +++ b/dev-tools/deployment-scripts/distribution_update.sh @@ -26,7 +26,10 @@ log "Research Service updated." # Update the config files # ================================ cp vault/airavata-server.properties ./apache-airavata-api-server-0.21-SNAPSHOT/conf/airavata-server.properties -cp vault/airavata.jks ./apache-airavata-api-server-0.21-SNAPSHOT/conf/airavata.jks +cp vault/airavata.jks ./apache-airavata-api-server-0.21-SNAPSHOT/conf/keystores/airavata.jks +cp vault/airavata_sym.jks ./apache-airavata-api-server-0.21-SNAPSHOT/conf/keystores/airavata_sym.jks +cp vault/client_truststore.jks ./apache-airavata-api-server-0.21-SNAPSHOT/conf/keystores/client_truststore.jks +cp vault/email-config.yaml ./apache-airavata-api-server-0.21-SNAPSHOT/conf/email-config.yaml cp vault/log4j2.xml ./apache-airavata-api-server-0.21-SNAPSHOT/conf/log4j2.xml log "API Server config files updated." diff --git a/dev-tools/deployment-scripts/services_up.sh b/dev-tools/deployment-scripts/services_up.sh index 8a639ba958..59455d0ed7 100644 --- a/dev-tools/deployment-scripts/services_up.sh +++ b/dev-tools/deployment-scripts/services_up.sh @@ -2,6 +2,7 @@ log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" + sleep 1 } # ================================ @@ -14,14 +15,14 @@ log "Orchestrator started." log "Controller started." ./apache-airavata-api-server-0.21-SNAPSHOT/bin/participant.sh -d start log "Participant started." -./apache-airavata-api-server-0.21-SNAPSHOT/bin/pre-wm.sh -d start -log "Pre-Workflow Manager started." -./apache-airavata-api-server-0.21-SNAPSHOT/bin/post-wm.sh -d start -log "Post-Workflow Manager started." ./apache-airavata-api-server-0.21-SNAPSHOT/bin/email-monitor.sh -d start log "Email Monitor started." ./apache-airavata-api-server-0.21-SNAPSHOT/bin/realtime-monitor.sh -d start log "Realtime Monitor started." +./apache-airavata-api-server-0.21-SNAPSHOT/bin/pre-wm.sh -d start +log "Pre-Workflow Manager started." +./apache-airavata-api-server-0.21-SNAPSHOT/bin/post-wm.sh -d start +log "Post-Workflow Manager started." # ================================ # Start the Agent Service diff --git a/dev-tools/load-client/src/main/assembly/load-client-bin-assembly.xml b/dev-tools/load-client/src/main/assembly/load-client-bin-assembly.xml index dcfa4bf2b7..6b2ef1d242 100644 --- a/dev-tools/load-client/src/main/assembly/load-client-bin-assembly.xml +++ b/dev-tools/load-client/src/main/assembly/load-client-bin-assembly.xml @@ -34,8 +34,7 @@ <outputDirectory>bin</outputDirectory> <fileMode>777</fileMode> <includes> - <include>load-client.sh</include> - <include>setenv.sh</include> + <include>*.sh</include> </includes> </fileSet> <fileSet> diff --git a/dev-tools/load-client/src/main/resources/bin/setenv.sh b/dev-tools/load-client/src/main/resources/bin/setenv.sh index 59cc88d4d2..0454b967dd 100644 --- a/dev-tools/load-client/src/main/resources/bin/setenv.sh +++ b/dev-tools/load-client/src/main/resources/bin/setenv.sh @@ -37,6 +37,8 @@ export AIRAVATA_HOME CLASSPATH # Usage: run_service <service_name> <main_class> <java_opts> run_service() { local SERVICE_NAME="$1" MAIN_CLASS="$2" JAVA_OPTS="$3" + # Export SERVICE_NAME as environment variable for log4j2 configuration + export SERVICE_NAME local CWD="$PWD" PID_PATH_NAME="${AIRAVATA_HOME}/bin/pid-${SERVICE_NAME}" local DEFAULT_LOG_FILE="${AIRAVATA_HOME}/logs/${SERVICE_NAME}.log" local LOG_FILE="$DEFAULT_LOG_FILE" DAEMON_MODE=false EXTRA_ARGS="" diff --git a/modules/agent-framework/agent-service/pom.xml b/modules/agent-framework/agent-service/pom.xml index 76a26f3cd4..65820af1f2 100644 --- a/modules/agent-framework/agent-service/pom.xml +++ b/modules/agent-framework/agent-service/pom.xml @@ -58,6 +58,16 @@ under the License. <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -95,26 +105,84 @@ under the License. </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-log4j2</artifactId> + </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.airavata</groupId> <artifactId>airavata-api</artifactId> <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> </dependency> </dependencies> @@ -181,6 +249,15 @@ under the License. <release>17</release> </configuration> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemPropertyVariables> + <log4j2.configurationFile>src/main/resources/log4j2.xml</log4j2.configurationFile> + </systemPropertyVariables> + </configuration> + </plugin> </plugins> <resources> <resource> diff --git a/modules/agent-framework/agent-service/src/main/resources/distribution/bin/setenv.sh b/modules/agent-framework/agent-service/src/main/resources/distribution/bin/setenv.sh index 59cc88d4d2..0454b967dd 100755 --- a/modules/agent-framework/agent-service/src/main/resources/distribution/bin/setenv.sh +++ b/modules/agent-framework/agent-service/src/main/resources/distribution/bin/setenv.sh @@ -37,6 +37,8 @@ export AIRAVATA_HOME CLASSPATH # Usage: run_service <service_name> <main_class> <java_opts> run_service() { local SERVICE_NAME="$1" MAIN_CLASS="$2" JAVA_OPTS="$3" + # Export SERVICE_NAME as environment variable for log4j2 configuration + export SERVICE_NAME local CWD="$PWD" PID_PATH_NAME="${AIRAVATA_HOME}/bin/pid-${SERVICE_NAME}" local DEFAULT_LOG_FILE="${AIRAVATA_HOME}/logs/${SERVICE_NAME}.log" local LOG_FILE="$DEFAULT_LOG_FILE" DAEMON_MODE=false EXTRA_ARGS="" diff --git a/modules/agent-framework/agent-service/src/main/resources/distribution/conf/log4j2.xml b/modules/agent-framework/agent-service/src/main/resources/distribution/conf/log4j2.xml index e38f7ff011..5ab1800e7d 100644 --- a/modules/agent-framework/agent-service/src/main/resources/distribution/conf/log4j2.xml +++ b/modules/agent-framework/agent-service/src/main/resources/distribution/conf/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/agent-service.log" + filePattern="../logs/agent-service-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/modules/agent-framework/agent-service/src/main/resources/log4j2.xml b/modules/agent-framework/agent-service/src/main/resources/log4j2.xml new file mode 100644 index 0000000000..d2857a4545 --- /dev/null +++ b/modules/agent-framework/agent-service/src/main/resources/log4j2.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<Configuration status="WARN"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/agent-service.log" + filePattern="../logs/agent-service-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/modules/distribution/src/main/resources/distribution/bin/setenv.sh b/modules/distribution/src/main/resources/distribution/bin/setenv.sh index 59cc88d4d2..0454b967dd 100755 --- a/modules/distribution/src/main/resources/distribution/bin/setenv.sh +++ b/modules/distribution/src/main/resources/distribution/bin/setenv.sh @@ -37,6 +37,8 @@ export AIRAVATA_HOME CLASSPATH # Usage: run_service <service_name> <main_class> <java_opts> run_service() { local SERVICE_NAME="$1" MAIN_CLASS="$2" JAVA_OPTS="$3" + # Export SERVICE_NAME as environment variable for log4j2 configuration + export SERVICE_NAME local CWD="$PWD" PID_PATH_NAME="${AIRAVATA_HOME}/bin/pid-${SERVICE_NAME}" local DEFAULT_LOG_FILE="${AIRAVATA_HOME}/logs/${SERVICE_NAME}.log" local LOG_FILE="$DEFAULT_LOG_FILE" DAEMON_MODE=false EXTRA_ARGS="" diff --git a/modules/distribution/src/main/resources/distribution/conf/log4j2.xml b/modules/distribution/src/main/resources/distribution/conf/log4j2.xml index e38f7ff011..2af1a20101 100644 --- a/modules/distribution/src/main/resources/distribution/conf/log4j2.xml +++ b/modules/distribution/src/main/resources/distribution/conf/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/airavata-api.log" + filePattern="../logs/airavata-api-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/modules/file-server/src/main/resources/distribution/bin/setenv.sh b/modules/file-server/src/main/resources/distribution/bin/setenv.sh index 59cc88d4d2..0454b967dd 100644 --- a/modules/file-server/src/main/resources/distribution/bin/setenv.sh +++ b/modules/file-server/src/main/resources/distribution/bin/setenv.sh @@ -37,6 +37,8 @@ export AIRAVATA_HOME CLASSPATH # Usage: run_service <service_name> <main_class> <java_opts> run_service() { local SERVICE_NAME="$1" MAIN_CLASS="$2" JAVA_OPTS="$3" + # Export SERVICE_NAME as environment variable for log4j2 configuration + export SERVICE_NAME local CWD="$PWD" PID_PATH_NAME="${AIRAVATA_HOME}/bin/pid-${SERVICE_NAME}" local DEFAULT_LOG_FILE="${AIRAVATA_HOME}/logs/${SERVICE_NAME}.log" local LOG_FILE="$DEFAULT_LOG_FILE" DAEMON_MODE=false EXTRA_ARGS="" diff --git a/modules/file-server/src/main/resources/distribution/conf/log4j2.xml b/modules/file-server/src/main/resources/distribution/conf/log4j2.xml index e38f7ff011..29b7e7258e 100644 --- a/modules/file-server/src/main/resources/distribution/conf/log4j2.xml +++ b/modules/file-server/src/main/resources/distribution/conf/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/file-server.log" + filePattern="../logs/file-server-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/modules/ide-integration/src/main/resources/log4j2.xml b/modules/ide-integration/src/main/resources/log4j2.xml index a06ff13d8a..f817dc3655 100644 --- a/modules/ide-integration/src/main/resources/log4j2.xml +++ b/modules/ide-integration/src/main/resources/log4j2.xml @@ -21,35 +21,34 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="logs/airavata.log" - filePattern="logs/${date:yyyy-MM}/airavata-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <logger name="org.apache.openjpa" level="DEBUG"/> - <logger name="org.apache.openjpa.enhance" level="DEBUG"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/ide-integration.log" + filePattern="../logs/ide-integration-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <logger name="org.apache.openjpa" level="DEBUG" /> + <logger name="org.apache.openjpa.enhance" level="DEBUG" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/modules/registry-db-migrator/src/main/resources/db-migrate.sh b/modules/registry-db-migrator/src/main/resources/db-migrate.sh index b40ed91cbc..f11644339f 100755 --- a/modules/registry-db-migrator/src/main/resources/db-migrate.sh +++ b/modules/registry-db-migrator/src/main/resources/db-migrate.sh @@ -17,19 +17,18 @@ # specific language governing permissions and limitations # under the License. -. `dirname $0`/setenv.sh +. $(dirname $0)/setenv.sh cd $AIRAVATA_HOME/bin # update classpath REG_MIGRATE_CLASSPATH="$AIRAVATA_HOME/lib" -for f in $AIRAVATA_HOME/lib/*.jar -do +for f in $AIRAVATA_HOME/lib/*.jar; do REG_MIGRATE_CLASSPATH=$REG_MIGRATE_CLASSPATH:$f done java -server -Xms128M -Xmx128M \ - $XDEBUG \ - $TEMP_PROPS \ - -classpath $REG_MIGRATE_CLASSPATH \ - -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5000,suspend=n \ - org.apache.airavata.registry.tool.DBMigrator $* + $XDEBUG \ + $TEMP_PROPS \ + -classpath $REG_MIGRATE_CLASSPATH \ + -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5000,suspend=n \ + org.apache.airavata.registry.tool.DBMigrator $* diff --git a/modules/research-framework/research-service/pom.xml b/modules/research-framework/research-service/pom.xml index 5b1a1833b2..2a4e8d623e 100644 --- a/modules/research-framework/research-service/pom.xml +++ b/modules/research-framework/research-service/pom.xml @@ -58,6 +58,16 @@ under the License. <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -95,6 +105,10 @@ under the License. </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-log4j2</artifactId> + </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> @@ -102,18 +116,58 @@ under the License. <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>javax.validation</groupId> @@ -128,6 +182,20 @@ under the License. <groupId>org.apache.airavata</groupId> <artifactId>airavata-api</artifactId> <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> </dependency> </dependencies> @@ -198,6 +266,15 @@ under the License. <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemPropertyVariables> + <log4j2.configurationFile>src/main/resources/log4j2.xml</log4j2.configurationFile> + </systemPropertyVariables> + </configuration> + </plugin> </plugins> </build> </project> \ No newline at end of file diff --git a/modules/research-framework/research-service/src/main/resources/distribution/bin/setenv.sh b/modules/research-framework/research-service/src/main/resources/distribution/bin/setenv.sh index 59cc88d4d2..0454b967dd 100755 --- a/modules/research-framework/research-service/src/main/resources/distribution/bin/setenv.sh +++ b/modules/research-framework/research-service/src/main/resources/distribution/bin/setenv.sh @@ -37,6 +37,8 @@ export AIRAVATA_HOME CLASSPATH # Usage: run_service <service_name> <main_class> <java_opts> run_service() { local SERVICE_NAME="$1" MAIN_CLASS="$2" JAVA_OPTS="$3" + # Export SERVICE_NAME as environment variable for log4j2 configuration + export SERVICE_NAME local CWD="$PWD" PID_PATH_NAME="${AIRAVATA_HOME}/bin/pid-${SERVICE_NAME}" local DEFAULT_LOG_FILE="${AIRAVATA_HOME}/logs/${SERVICE_NAME}.log" local LOG_FILE="$DEFAULT_LOG_FILE" DAEMON_MODE=false EXTRA_ARGS="" diff --git a/modules/research-framework/research-service/src/main/resources/distribution/conf/log4j2.xml b/modules/research-framework/research-service/src/main/resources/distribution/conf/log4j2.xml index ceb8fec7b8..593b7cba6e 100644 --- a/modules/research-framework/research-service/src/main/resources/distribution/conf/log4j2.xml +++ b/modules/research-framework/research-service/src/main/resources/distribution/conf/log4j2.xml @@ -21,33 +21,32 @@ --> <Configuration status="WARN"> - - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n"/> - </Console> - <RollingFile name="RollingFileAppender" fileName="../logs/research-service.log" - filePattern="logs/${date:yyyy-MM}/research-service-log-%d{MM-dd-yyyy}-%i.log.gz"> - <PatternLayout> - <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> - </PatternLayout> - <Policies> - <OnStartupTriggeringPolicy /> - <TimeBasedTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="50 MB" /> - </Policies> - <DefaultRolloverStrategy max="20" /> - </RollingFile> - </Appenders> - <Loggers> - <logger name="ch.qos.logback" level="WARN"/> - <logger name="org.apache.helix" level="WARN"/> - <logger name="org.apache.zookeeper" level="ERROR"/> - <logger name="org.apache.airavata" level="INFO"/> - <logger name="org.hibernate" level="ERROR"/> - <Root level="INFO"> - <AppenderRef ref="Console"/> - <AppenderRef ref="RollingFileAppender"/> - </Root> - </Loggers> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/research-service.log" + filePattern="../logs/research-service-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> </Configuration> \ No newline at end of file diff --git a/modules/research-framework/research-service/src/main/resources/log4j2.xml b/modules/research-framework/research-service/src/main/resources/log4j2.xml new file mode 100644 index 0000000000..52fc013bf0 --- /dev/null +++ b/modules/research-framework/research-service/src/main/resources/log4j2.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<Configuration status="WARN"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5p %c{30} %X - %m%n" /> + </Console> + <RollingFile name="RollingFileAppender" fileName="../logs/research-service.log" + filePattern="../logs/research-service-%d{MM-dd-yyyy}-%i.log.gz"> + <PatternLayout> + <Pattern>%d [%t] %-5p %c{30} %X - %m%n</Pattern> + </PatternLayout> + <Policies> + <OnStartupTriggeringPolicy /> + <TimeBasedTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="50 MB" /> + </Policies> + <DefaultRolloverStrategy max="20" /> + </RollingFile> + </Appenders> + <Loggers> + <logger name="ch.qos.logback" level="WARN" /> + <logger name="org.apache.helix" level="WARN" /> + <logger name="org.apache.zookeeper" level="ERROR" /> + <logger name="org.apache.airavata" level="INFO" /> + <logger name="org.hibernate" level="ERROR" /> + <Root level="INFO"> + <AppenderRef ref="Console" /> + <AppenderRef ref="RollingFileAppender" /> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/pom.xml b/pom.xml index 651928b756..151479a41c 100644 --- a/pom.xml +++ b/pom.xml @@ -163,7 +163,7 @@ under the License. <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> - <version>2.7.0</version> + <version>2.12.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> @@ -245,7 +245,7 @@ under the License. <dependency> <groupId>org.apache.helix</groupId> <artifactId>helix-core</artifactId> - <version>0.9.7</version> + <version>1.4.3</version> </dependency> <dependency> <groupId>org.apache.openjpa</groupId> @@ -352,6 +352,11 @@ under the License. <artifactId>jakarta.activation-api</artifactId> <version>2.1.3</version> </dependency> + <dependency> + <groupId>jakarta.transaction</groupId> + <artifactId>jakarta.transaction-api</artifactId> + <version>2.0.1</version> + </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> @@ -362,6 +367,11 @@ under the License. <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> + <dependency> + <groupId>org.hibernate.validator</groupId> + <artifactId>hibernate-validator</artifactId> + <version>6.2.5.Final</version> + </dependency> <!-- Other Libraries --> <dependency> diff --git a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift index 35a7d4a4a1..9bb674eed3 100644 --- a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift +++ b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift @@ -82,7 +82,7 @@ service IamAdminServices extends base_api.BaseAPI { list<user_profile_model.UserProfile> getUsers(1: required security_model.AuthzToken authzToken, 2: required i32 offset, 3: required i32 limit, - 4: optional string search) + 4: string search) throws (1: iam_admin_services_cpi_errors.IamAdminServicesException Idse, 2: airavata_errors.AuthorizationException ae)
