diff --git a/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java b/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java index 273c52a..d9d45af 100644 --- a/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java +++ b/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java @@ -457,7 +457,7 @@ public class FileSystemRequestProcessor extends RequestProcessor { } finally { try { - checkForContents.close(); + if (checkForContents != null) checkForContents.close(); } catch (Exception ignore) { } } diff --git a/extensions/dna-connector-filesystem/src/test/java/org/jboss/dna/connector/filesystem/FileSystemConnectorWritableTest.java b/extensions/dna-connector-filesystem/src/test/java/org/jboss/dna/connector/filesystem/FileSystemConnectorWritableTest.java index db42850..fbc9069 100644 --- a/extensions/dna-connector-filesystem/src/test/java/org/jboss/dna/connector/filesystem/FileSystemConnectorWritableTest.java +++ b/extensions/dna-connector-filesystem/src/test/java/org/jboss/dna/connector/filesystem/FileSystemConnectorWritableTest.java @@ -46,15 +46,24 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public static final String ARBITRARY_PROPERTIES_NOT_SUPPORTED = "This connector does not support setting arbitrary properties"; - private static final String REPO_PATH = "./src/test/resources/repositories/"; + private static final String REPO_PATH = "./target/repositories/"; + private static final String REPO_SOURCE_PATH = "./src/test/resources/repositories/"; private final String TEST_CONTENT = "Test content"; protected File testWorkspaceRoot; protected File otherWorkspaceRoot; protected File newWorkspaceRoot; + protected File scratchDirectory; @Override - protected RepositorySource setUpSource() { + protected RepositorySource setUpSource() throws Exception { + // Copy the directories into the target ... + File sourceRepo = new File(REPO_SOURCE_PATH); + scratchDirectory = new File(REPO_PATH); + scratchDirectory.mkdirs(); + FileUtil.delete(scratchDirectory); + FileUtil.copy(sourceRepo, scratchDirectory); + // Set the connection properties to be use the content of "./src/test/resources/repositories" as a repository ... String[] predefinedWorkspaceNames = new String[] {"test", "otherWorkspace", "airplanes", "cars"}; FileSystemSource source = new FileSystemSource(); @@ -67,7 +76,7 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { testWorkspaceRoot = new File(REPO_PATH, "test"); testWorkspaceRoot.mkdir(); - + otherWorkspaceRoot = new File(REPO_PATH, "otherWorkspace"); otherWorkspaceRoot.mkdir(); @@ -84,17 +93,18 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Override public void afterEach() throws Exception { - FileUtil.delete(testWorkspaceRoot); - FileUtil.delete(otherWorkspaceRoot); - FileUtil.delete(newWorkspaceRoot); + FileUtil.delete(scratchDirectory); super.afterEach(); } @Test public void shouldBeAbleToCreateFileWithContent() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -103,11 +113,17 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Test public void shouldRespectConflictBehaviorOnCreate() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); - - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - "Should not overwrite".getBytes()).ifAbsent().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); + + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, "Should not overwrite".getBytes()) + .ifAbsent() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -140,8 +156,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { assertThat(newFolder.isDirectory(), is(true)); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testfile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testfile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFolder/testFile"); assertContents(newFile, TEST_CONTENT); @@ -161,8 +180,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Test public void shouldBeAbleToCopyFile() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -176,8 +198,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToCopyFolder() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFolder/testFile"); assertContents(newFile, TEST_CONTENT); @@ -194,8 +219,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Test public void shouldBeAbleToMoveFile() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -213,8 +241,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToMoveFolder() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFolder/testFile"); assertContents(newFile, TEST_CONTENT); @@ -236,8 +267,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToDeleteFolderWithContents() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFolder = new File(testWorkspaceRoot, "testFolder"); assertTrue(newFolder.exists()); @@ -255,8 +289,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToDeleteFile() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFolder = new File(testWorkspaceRoot, "testFolder"); assertTrue(newFolder.exists()); @@ -280,8 +317,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { graph.useWorkspace("otherWorkspace"); graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(otherWorkspaceRoot, "testFolder/testFile"); assertContents(newFile, TEST_CONTENT); @@ -304,8 +344,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToCloneFile() { graph.useWorkspace("otherWorkspace"); graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(otherWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -336,11 +379,17 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldNotBeAbleToReorderFile() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); graph.create("/testFolder/testFile2").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile2/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile2/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFolder = new File(testWorkspaceRoot, "testFolder"); assertTrue(newFolder.exists()); @@ -350,7 +399,7 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { assertContents(newFile, TEST_CONTENT); File newFile2 = new File(testWorkspaceRoot, "testFolder/testFile2"); assertContents(newFile2, TEST_CONTENT); - + graph.move("/testFolder/testFile2").before("/testFolder/testFile"); } @@ -358,8 +407,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { public void shouldBeAbleToRenameFolder() { graph.create("/testFolder").orReplace().and(); graph.create("/testFolder/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFolder/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFolder/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFolder/testFile"); assertContents(newFile, TEST_CONTENT); @@ -378,8 +430,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Test public void shouldBeAbleToRenameFile() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -398,8 +453,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { graph.useWorkspace("newWorkspace"); graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(newWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -408,8 +466,11 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { @Test public void shouldBeAbleToCloneWorkspace() { graph.create("/testFile").with(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE).orReplace().and(); - graph.create("/testFile/jcr:content").with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE).and(JcrLexicon.DATA, - TEST_CONTENT.getBytes()).orReplace().and(); + graph.create("/testFile/jcr:content") + .with(JcrLexicon.PRIMARY_TYPE, DnaLexicon.RESOURCE) + .and(JcrLexicon.DATA, TEST_CONTENT.getBytes()) + .orReplace() + .and(); File newFile = new File(testWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); @@ -418,7 +479,7 @@ public class FileSystemConnectorWritableTest extends AbstractConnectorTest { newFile = new File(newWorkspaceRoot, "testFile"); assertContents(newFile, TEST_CONTENT); - + } @Test