@Override public void endBatch( final Option... options ) { lockService.unlock(); if ( !fileSystems.isEmpty() ) { final Path path = fileSystems.values().iterator().next().get( 0 ).getRootDirectories().iterator().next(); setAttribute( path, FileSystemState.FILE_SYSTEM_STATE_ATTR, FileSystemState.NORMAL ); } }
@Override public void startBatch( final Option... options ) { lockService.lock(); if ( !fileSystems.isEmpty() ) { final Path path = fileSystems.values().iterator().next().get( 0 ).getRootDirectories().iterator().next(); setAttribute( path, FileSystemState.FILE_SYSTEM_STATE_ATTR, FileSystemState.BATCH ); } }
@PostConstruct public void setup() { final Iterator<FileSystem> fsIterator = ioSystemService.getFileSystems().iterator(); if ( fsIterator.hasNext() ) { final FileSystem bootstrap = fsIterator.next(); final Iterator<org.kie.commons.java.nio.file.Path> rootIterator = bootstrap.getRootDirectories().iterator(); if ( rootIterator.hasNext() ) { this.bootstrapRoot = rootIterator.next(); } } executor = Executors.newSingleThreadExecutor(); log.info( "mailbox service is up" ); wakeUp(); }
@Override public Map<String, String> buildContent() { return new HashMap<String, String>() {{ put( "fs_scheme", fileSystem.getRootDirectories().iterator().next().toUri().getScheme() ); put( "fs_id", ( (FileSystemId) fileSystem ).id() ); put( "fs_uri", fileSystem.toString() ); }}; } }
@Override public Pair<MessageType, Map<String, String>> handleMessage( final MessageType type, final Map<String, String> content ) { if ( QUERY_FOR_FS.equals( type ) ) { Map<String, String> replyContent = new HashMap<String, String>(); int i = 0; for ( FileSystem fs : service.getFileSystems() ) { replyContent.put( "fs_scheme_" + i, fs.getRootDirectories().iterator().next().toUri().getScheme() ); replyContent.put( "fs_id_" + i, ( (FileSystemId) fs ).id() ); replyContent.put( "fs_uri_" + i, fs.toString() ); i++; } return new Pair<MessageType, Map<String, String>>( QUERY_FOR_FS_RESULT, replyContent ); } return null; } }
@Test @Ignore public void testDaemob() throws InterruptedException { final URI newRepo = URI.create( "git://repo-name" ); final Map<String, ?> env = new HashMap<String, Object>() {{ put( "init", Boolean.TRUE ); }}; FileSystem fs = PROVIDER.newFileSystem( newRepo, env ); WatchService ws = null; ws = fs.newWatchService(); final Path path = fs.getRootDirectories().iterator().next(); path.register( ws, StandardWatchEventKind.ENTRY_CREATE, StandardWatchEventKind.ENTRY_MODIFY, StandardWatchEventKind.ENTRY_DELETE, StandardWatchEventKind.ENTRY_RENAME ); final WatchKey k = ws.take(); final List<WatchEvent<?>> events = k.pollEvents(); for ( WatchEvent object : events ) { if ( object.kind() == StandardWatchEventKind.ENTRY_MODIFY ) { System.out.println( "Modify: " + object.context().toString() ); } if ( object.kind() == StandardWatchEventKind.ENTRY_RENAME ) { System.out.println( "Rename: " + object.context().toString() ); } if ( object.kind() == StandardWatchEventKind.ENTRY_DELETE ) { System.out.println( "Delete: " + object.context().toString() ); } if ( object.kind() == StandardWatchEventKind.ENTRY_CREATE ) { System.out.println( "Created: " + object.context().toString() ); } } }
@Test public void simpleTests() { final FileSystem fileSystem = new SimpleUnixFileSystem( fsProvider, "/" ); assertThat( fileSystem.isOpen() ).isTrue(); assertThat( fileSystem.isReadOnly() ).isFalse(); assertThat( fileSystem.getSeparator() ).isEqualTo( System.getProperty( "file.separator" ) ); assertThat( fileSystem.provider() ).isEqualTo( fsProvider ); assertThat( fileSystem.supportedFileAttributeViews() ).isNotEmpty().hasSize( 1 ).contains( "basic" ); assertThat( fileSystem.getPath( "/path/to/file.txt" ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "/path/to/file.txt", false ) ); assertThat( fileSystem.getPath( "/path/to/file.txt", null ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "/path/to/file.txt", false ) ); assertThat( fileSystem.getPath( "/path", "to", "file.txt" ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "/path/to/file.txt", false ) ); try { fileSystem.close(); fail( "can't close this fileSystem" ); } catch ( UnsupportedOperationException ex ) { } assertThat( fileSystem.getFileStores() ).isNotNull().hasSize( 1 ); assertThat( fileSystem.getFileStores().iterator().next().name() ).isEqualTo( "/" ); assertThat( fileSystem.getRootDirectories() ).isNotNull().hasSize( 1 ); assertThat( fileSystem.getRootDirectories().iterator().next().toString() ).isEqualTo( "/" ); assertThat( fileSystem.getRootDirectories().iterator().next().isAbsolute() ).isTrue(); }
assertThat( fs.getRootDirectories() ).hasSize( 2 ); assertThat( fs.getRootDirectories() ).hasSize( 3 ); for ( final Path root : fs.getRootDirectories() ) { if ( root.toAbsolutePath().toUri().toString().contains( "upstream" ) ) { assertThat( PROVIDER.newDirectoryStream( root, null ) ).isNotEmpty().hasSize( 2 ); assertThat( fs.getRootDirectories() ).hasSize( 3 ); for ( final Path root : fs.getRootDirectories() ) { if ( root.toAbsolutePath().toUri().toString().contains( "upstream" ) ) { assertThat( PROVIDER.newDirectoryStream( root, null ) ).isNotEmpty().hasSize( 3 );
@Test public void simpleTests() { final FileSystem fileSystem = new SimpleWindowsFileSystem( roots, fsProvider, "c:\\" ); assertThat( fileSystem.isOpen() ).isTrue(); assertThat( fileSystem.isReadOnly() ).isFalse(); assertThat( fileSystem.getSeparator() ).isEqualTo( "\\" ); assertThat( fileSystem.provider() ).isEqualTo( fsProvider ); assertThat( fileSystem.supportedFileAttributeViews() ).isNotEmpty().hasSize( 1 ).contains( "basic" ); assertThat( fileSystem.getPath( "c:\\path\\to\\file.txt" ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "c:\\path\\to\\file.txt", false ) ); assertThat( fileSystem.getPath( "c:\\path\\to\\file.txt", null ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "c:\\path\\to\\file.txt", false ) ); assertThat( fileSystem.getPath( "c:\\path", "to", "file.txt" ) ).isNotNull().isEqualTo( GeneralPathImpl.create( fileSystem, "c:\\path\\to\\file.txt", false ) ); try { fileSystem.close(); fail( "can't close this fileSystem" ); } catch ( UnsupportedOperationException ex ) { } assertThat( fileSystem.getFileStores() ).isNotNull().hasSize( 2 ); assertThat( fileSystem.getFileStores().iterator().next().name() ).isEqualTo( "c:\\" ); assertThat( fileSystem.getRootDirectories() ).isNotNull().hasSize( 2 ); assertThat( fileSystem.getRootDirectories().iterator().next().toString() ).isEqualTo( "c:\\" ); assertThat( fileSystem.getRootDirectories().iterator().next().isAbsolute() ).isTrue(); }