diff --git a/.circleci/config.yml b/.circleci/config.yml index 58425046b..8b66228c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,7 +54,7 @@ jobs: at: ~/ - run: name: Deploy snapshot to sonatype - command: echo "CircleCI publishing not implemented yet." + command: ./gradlew -PossrhUsername=$OSSRH_USERNAME -PossrhPassword=$OSSRH_PASSWORD -PsigningKey="$SIGNING_KEY" -PsigningPassword=$SIGNING_PASSWORD publish deploy_release: executor: openjdk_executor working_directory: /home/circleci/mms @@ -62,8 +62,8 @@ jobs: - attach_workspace: at: ~/ - run: - name: Deploy release to Bintray - command: ./gradlew -PbuildNumber=$CIRCLE_BUILD_NUM -PbuildTag=$CIRCLE_TAG -PbintrayUser=$BINTRAY_USER -PbintrayKey=$BINTRAY_KEY --info --stacktrace bintrayUpload + name: Deploy release to sonatype + command: ./gradlew -PbuildNumber=$CIRCLE_BUILD_NUM -PbuildTag=$CIRCLE_TAG -PossrhUsername=$OSSRH_USERNAME -PossrhPassword=$OSSRH_PASSWORD -PsigningKey="$SIGNING_KEY" -PsigningPassword=$SIGNING_PASSWORD --info --stacktrace publish workflows: version: 2 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..ef698e8e2 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: ['https://numfocus.salsalabs.org/supportopenmbee'] diff --git a/build.gradle b/build.gradle index 2e472dd6a..8e2930869 100644 --- a/build.gradle +++ b/build.gradle @@ -63,8 +63,6 @@ subprojects { apply plugin: 'java-library' apply plugin: 'maven-publish' apply plugin: 'io.spring.dependency-management' - apply plugin: "com.jfrog.artifactory" - apply plugin: 'com.jfrog.bintray' apply plugin: 'signing' group = "org.openmbee.mms" @@ -154,46 +152,9 @@ subprojects { if (project.hasProperty('signing.keyId') && project.hasProperty('signing.password') && project.hasProperty('signing.secretKeyRingFile')) { sign publishing.publications.mavenJava } else if (project.hasProperty('signingKey') && project.hasProperty('signingPassword')) { - def signingKey = findProperty("signingKey") - def signingPassword = findProperty("signingPassword") + def signingKey = signingKey.replaceAll(/\\n/, "\n") useInMemoryPgpKeys(signingKey, signingPassword) sign publishing.publications.mavenJava } } - - //https://www.jfrog.com/confluence/display/JFROG/Gradle+Artifactory+Plugin - //can use this or set artifactory info directly under publishing/repositories? - artifactory { - contextUrl = 'https://mms.jfrog.io/mms' - publish { - repository { - repoKey = project.getProperties().get('artifactoryRepository') - username = project.getProperties().get('artifactoryUsername') - password = project.getProperties().get('artifactoryPassword') - maven = true - } - defaults { - publications('mavenJava') - publishArtifacts = true - // Properties to be attached to the published artifacts. - //properties = ['qa.level': 'basic', 'dev.team' : 'core'] - // Publish generated POM files to Artifactory (true by default) - publishPom = true - } - } - } - - bintray { - user = project.getProperties().get('bintrayUser') - key = project.getProperties().get('bintrayKey') - publications = ['mavenJava'] - publish = true - pkg { - repo = 'maven' - name = 'mms-' + project.name - userOrg = 'openmbee' - licenses = ['Apache-2.0'] - vcsUrl = 'https://github.com/Open-MBEE/mms.git' - } - } } \ No newline at end of file diff --git a/crud/src/main/java/org/openmbee/mms/crud/services/DefaultNodeService.java b/crud/src/main/java/org/openmbee/mms/crud/services/DefaultNodeService.java index 482e052fa..59b860992 100644 --- a/crud/src/main/java/org/openmbee/mms/crud/services/DefaultNodeService.java +++ b/crud/src/main/java/org/openmbee/mms/crud/services/DefaultNodeService.java @@ -133,6 +133,7 @@ public void readAsStream(String projectId, String refId, .getBytes(StandardCharsets.UTF_8)); } catch (IOException ioe) { logger.error("Error writing to stream", ioe); + throw new InternalErrorException("Error writing to stream."); } }); if (!"application/x-ndjson".equals(accept)) { @@ -234,7 +235,7 @@ public void commitChanges(NodeChangeInfo info) { }); this.nodeRepository.saveAll(new ArrayList<>(nodes.values())); } catch (Exception e) { - logger.error("commitChanges error: {}", e.getMessage()); + logger.error("Error in commitChanges: ", e); throw new InternalErrorException("Error committing changes: " + e.getMessage()); } eventPublisher.forEach((pub) -> pub.publish( diff --git a/data/src/main/java/org/openmbee/mms/data/domains/scoped/Branch.java b/data/src/main/java/org/openmbee/mms/data/domains/scoped/Branch.java index b1f609f83..899df1801 100644 --- a/data/src/main/java/org/openmbee/mms/data/domains/scoped/Branch.java +++ b/data/src/main/java/org/openmbee/mms/data/domains/scoped/Branch.java @@ -17,6 +17,7 @@ public class Branch { @Column(name = "id", updatable = false, nullable = false) Long id; + @Column(length = 512) private String description; @Column(unique = true, length = 512) diff --git a/elastic/src/main/java/org/openmbee/mms/elastic/BaseElasticDAOImpl.java b/elastic/src/main/java/org/openmbee/mms/elastic/BaseElasticDAOImpl.java index 9d90260e0..f83e20224 100644 --- a/elastic/src/main/java/org/openmbee/mms/elastic/BaseElasticDAOImpl.java +++ b/elastic/src/main/java/org/openmbee/mms/elastic/BaseElasticDAOImpl.java @@ -52,7 +52,7 @@ public abstract class BaseElasticDAOImpl> { protected static int readTimeout = 1000000000; protected RestHighLevelClient client; - private static final RequestOptions REQUEST_OPTIONS; + protected static final RequestOptions REQUEST_OPTIONS; static { RequestOptions.Builder requestBuilder = RequestOptions.DEFAULT.toBuilder(); // TODO: Should be configureable diff --git a/elastic/src/main/java/org/openmbee/mms/elastic/CommitElasticDAOImpl.java b/elastic/src/main/java/org/openmbee/mms/elastic/CommitElasticDAOImpl.java index 2f13e8a2d..9cb2ce422 100644 --- a/elastic/src/main/java/org/openmbee/mms/elastic/CommitElasticDAOImpl.java +++ b/elastic/src/main/java/org/openmbee/mms/elastic/CommitElasticDAOImpl.java @@ -42,7 +42,6 @@ public void index(BaseJson json) { public void index(CommitJson json) { int commitCount = getCommitSize(json); - List broken = new ArrayList<>(); if (commitCount > commitLimit) { List> allActions = new ArrayList<>(); allActions.addAll(json.getAdded().stream().peek(toAdd -> toAdd.put("action", "added")).collect(Collectors.toList())); @@ -71,10 +70,8 @@ public void index(CommitJson json) { break; } } while(getCommitSize(currentCommitCopy) < commitLimit && !allActions.isEmpty()); - broken.add(currentCommitCopy); - + this.index(getIndex(), currentCommitCopy); } - this.indexAll(broken); } else { this.index(getIndex(), json); @@ -213,7 +210,7 @@ private SearchHits getCommitResults(QueryBuilder query) throws IOException { sourceBuilder.size(this.resultLimit); // TODO handle paging requests sourceBuilder.sort(new FieldSortBuilder(CommitJson.CREATED).order(SortOrder.DESC)); searchRequest.source(sourceBuilder); - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); + SearchResponse searchResponse = client.search(searchRequest, REQUEST_OPTIONS); return searchResponse.getHits(); } diff --git a/elastic/src/main/java/org/openmbee/mms/elastic/NodeElasticDAOImpl.java b/elastic/src/main/java/org/openmbee/mms/elastic/NodeElasticDAOImpl.java index f47a42efe..15d82b963 100644 --- a/elastic/src/main/java/org/openmbee/mms/elastic/NodeElasticDAOImpl.java +++ b/elastic/src/main/java/org/openmbee/mms/elastic/NodeElasticDAOImpl.java @@ -74,7 +74,7 @@ public Optional getByCommitId(String commitId, String nodeId) { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.query(query); searchRequest.source(sourceBuilder); - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); + SearchResponse searchResponse = client.search(searchRequest, REQUEST_OPTIONS); if (searchResponse.getHits().getTotalHits().value == 0) { return Optional.empty(); } @@ -136,7 +136,7 @@ public Optional getElementLessThanOrEqualTimestamp(String nodeId, searchSourceBuilder.size(1); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); + SearchResponse searchResponse = client.search(searchRequest, REQUEST_OPTIONS); SearchHit[] searchHits = searchResponse.getHits().getHits(); if (searchHits != null && searchHits.length > 0) { ElementJson elementJson = newInstance(); diff --git a/elastic/src/main/java/org/openmbee/mms/elastic/config/ElasticsearchConfig.java b/elastic/src/main/java/org/openmbee/mms/elastic/config/ElasticsearchConfig.java index 89bd9ff9f..7a8866c50 100644 --- a/elastic/src/main/java/org/openmbee/mms/elastic/config/ElasticsearchConfig.java +++ b/elastic/src/main/java/org/openmbee/mms/elastic/config/ElasticsearchConfig.java @@ -1,12 +1,12 @@ package org.openmbee.mms.elastic.config; import org.apache.http.HttpHost; +import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; +import org.elasticsearch.client.RestHighLevelClient; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.beans.factory.annotation.Value; -import org.elasticsearch.client.RestHighLevelClient; -import org.elasticsearch.client.RestClient; @Configuration public class ElasticsearchConfig { @@ -20,7 +20,9 @@ public class ElasticsearchConfig { @Bean(name = "clientElastic", destroyMethod = "close") public RestHighLevelClient restClient() { + RestClientBuilder builder = RestClient.builder(new HttpHost(elasticsearchHost, elasticsearchPort, elasticsearchHttp)); + builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(10000).setSocketTimeout(1000000)); RestHighLevelClient client = new RestHighLevelClient(builder); return client; } diff --git a/gradle.properties b/gradle.properties index b145c5e77..4224876f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=4.0.3 +version=4.0.4 group=org.openmbee.mms springBootVersion=2.2.6.RELEASE