Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions .github/workflows/maven_build_and_verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ env:
SIGNING_ENABLED: ${{ github.event.inputs.signJarArtifacts }}

jobs:
build:

build-ubuntu:
name: Build on Ubuntu
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -127,3 +127,18 @@ jobs:

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3

build-windows:
name: Build on Windows
runs-on: windows-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'corretto'
cache: maven
- name: Build with Maven
run: mvn -B clean io.github.git-commit-id:git-commit-id-maven-plugin:revision io.github.git-commit-id:git-commit-id-maven-plugin:validateRevision install --file pom.xml
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- Add retries to Neptune clone creation
- Fix missing csv headers from `export-pg-from-queries`
- Disable DFE for all Gremlin queries
- Fix invalid S3 paths when using Windows

## Neptune Export v1.1.11 (Release Date: Mar 10, 2025):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public File createDownloadFile(String parent) {

public S3ObjectInfo withNewKeySuffix(String suffix) {
File file = StringUtils.isNotEmpty(key) ? new File(key, suffix) : new File(suffix);
return new S3ObjectInfo( String.format("s3://%s/%s", bucket, file.getPath()));
return new S3ObjectInfo( String.format("s3://%s/%s", bucket, file.getPath().replace(File.separatorChar, '/')));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should leave a comment in the code describing why we are leaving the use of File here, since it might not make sense in the future.

}

public S3ObjectInfo replaceOrAppendKey(String placeholder, String ifPresent, String ifAbsent) {
Expand All @@ -82,7 +82,7 @@ public S3ObjectInfo replaceOrAppendKey(String placeholder, String ifPresent, Str
new File(key.replace(placeholder, ifPresent)) :
new File(key, ifAbsent);

return new S3ObjectInfo( String.format("s3://%s/%s", bucket, file.getPath()));
return new S3ObjectInfo( String.format("s3://%s/%s", bucket, file.getPath().replace(File.separatorChar, '/')));
}

public S3ObjectInfo replaceOrAppendKey(String placeholder, String ifPresent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public void createsDigestFilePathsForVeryLongFilenames() throws IOException {
Directories directories = Directories.createFor(DirectoryStructure.PropertyGraph, new File("home"), "export-id", "", "");
Path filePath = directories.createFilePath(path, longName, PropertyGraphExportFormat.csv);

assertEquals("/export/8044f12c352773b7ff400ef524da6e90db419e4a.csv", filePath.toString());
assertEquals(Paths.get("/export","8044f12c352773b7ff400ef524da6e90db419e4a.csv").toString(), filePath.toString());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,24 @@ public void testExportStats() throws JsonProcessingException {
String formattedStats = stats.formatStats(schema);

String expectedStats =
"Source:\n" +
" Nodes: 0\n" +
" Edges: 0\n" +
"Export:\n" +
" Nodes: 2\n" +
" Edges: 2\n" +
" Properties: 0\n" +
"Details:\n" +
" Nodes: \n" +
" node1: 1\n" +
" |_ prop1 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}\n" +
" |_ prop2 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}\n" +
" node2: 1\n" +
" Edges: \n" +
" edge2: 1\n" +
" edge1: 1\n" +
" |_ prop1 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}\n" +
" |_ prop2 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}\n";
"Source:" + System.lineSeparator() +
" Nodes: 0" + System.lineSeparator() +
" Edges: 0" + System.lineSeparator() +
"Export:" + System.lineSeparator() +
" Nodes: 2" + System.lineSeparator() +
" Edges: 2" + System.lineSeparator() +
" Properties: 0" + System.lineSeparator() +
"Details:" + System.lineSeparator() +
" Nodes: " + System.lineSeparator() +
" node1: 1" + System.lineSeparator() +
" |_ prop1 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}" + System.lineSeparator() +
" |_ prop2 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}" + System.lineSeparator() +
" node2: 1" + System.lineSeparator() +
" Edges: " + System.lineSeparator() +
" edge2: 1" + System.lineSeparator() +
" edge1: 1" + System.lineSeparator() +
" |_ prop1 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}" + System.lineSeparator() +
" |_ prop2 {propertyCount=0, minCardinality=-1, maxCardinality=-1, recordCount=0, dataTypeCounts=[]}" + System.lineSeparator();

assertEquals(expectedStats, formattedStats);
}
Expand Down
Loading