diff --git a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/KModuleServiceImpl.java b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/KModuleServiceImpl.java index 8f49af12d2..cb10e0fc11 100644 --- a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/KModuleServiceImpl.java +++ b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/KModuleServiceImpl.java @@ -31,6 +31,7 @@ import org.uberfire.java.nio.base.options.CommentedOption; import org.uberfire.backend.server.util.Paths; import org.uberfire.backend.vfs.Path; +import org.uberfire.java.nio.file.FileAlreadyExistsException; import org.uberfire.rpc.SessionInfo; import org.uberfire.security.Identity; @@ -74,7 +75,10 @@ public Path setUpKModuleStructure( final Path projectRoot ) { ioService.createDirectory( nioRoot.resolve( "src/test/resources" ) ); final org.uberfire.java.nio.file.Path pathToKModuleXML = nioRoot.resolve( "src/main/resources/META-INF/kmodule.xml" ); - ioService.createFile( pathToKModuleXML ); + if ( ioService.exists( pathToKModuleXML ) ) { + throw new FileAlreadyExistsException( pathToKModuleXML.toString() ); + } + ioService.write( pathToKModuleXML, moduleContentHandler.toString( new KModuleModel() ) ); diff --git a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/POMServiceImpl.java b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/POMServiceImpl.java index 6815eb0063..f8dbb8ef16 100644 --- a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/POMServiceImpl.java +++ b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/POMServiceImpl.java @@ -12,6 +12,7 @@ import org.uberfire.java.nio.base.options.CommentedOption; import org.uberfire.backend.server.util.Paths; import org.uberfire.backend.vfs.Path; +import org.uberfire.java.nio.file.FileAlreadyExistsException; import org.uberfire.rpc.SessionInfo; import org.uberfire.security.Identity; @@ -68,7 +69,9 @@ public Path create( final Path projectRoot, final org.uberfire.java.nio.file.Path nioRoot = Paths.convert( projectRoot ); pathToPOMXML = nioRoot.resolve( "pom.xml" ); - ioService.createFile( pathToPOMXML ); + if ( ioService.exists( pathToPOMXML ) ) { + throw new FileAlreadyExistsException( pathToPOMXML.toString() ); + } ioService.write( pathToPOMXML, pomContentHandler.toString( pomModel ) ); diff --git a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/ProjectServiceImpl.java b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/ProjectServiceImpl.java index b39a9d8b3a..bf1948bcb5 100644 --- a/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/ProjectServiceImpl.java +++ b/guvnor-project/guvnor-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/ProjectServiceImpl.java @@ -575,6 +575,8 @@ public Project newProject( final Repository repository, final Path fsRoot = repository.getRoot(); final Path projectRootPath = Paths.convert( Paths.convert( fsRoot ).resolve( projectName ) ); + ioService.startBatch( makeCommentedOption( "New project [" + projectName + "]" ) ); + //Set-up project structure and KModule.xml kModuleService.setUpKModuleStructure( projectRootPath ); @@ -585,7 +587,10 @@ public Project newProject( final Repository repository, //Create Project configuration final Path projectConfigPath = Paths.convert( Paths.convert( projectRootPath ).resolve( PROJECT_IMPORTS_PATH ) ); - ioService.createFile( Paths.convert( projectConfigPath ) ); + + if ( ioService.exists( Paths.convert( projectConfigPath ) ) ) { + throw new FileAlreadyExistsException( projectConfigPath.toString() ); + } ioService.write( Paths.convert( projectConfigPath ), projectConfigurationContentHandler.toString( createProjectImports() ) ); @@ -606,6 +611,8 @@ public Project newProject( final Repository repository, final Package defaultWorkspacePackage = doNewPackage( defaultPackage, defaultWorkspacePath ); + ioService.endBatch(); + //Raise an event for the new project's default workspace newPackageEvent.fire( new NewPackageEvent( defaultWorkspacePackage ) ); diff --git a/guvnor-services/guvnor-services-backend/src/main/java/org/guvnor/common/services/backend/metadata/MetadataServiceImpl.java b/guvnor-services/guvnor-services-backend/src/main/java/org/guvnor/common/services/backend/metadata/MetadataServiceImpl.java index c0c76c6cb9..c863bd005d 100644 --- a/guvnor-services/guvnor-services-backend/src/main/java/org/guvnor/common/services/backend/metadata/MetadataServiceImpl.java +++ b/guvnor-services/guvnor-services-backend/src/main/java/org/guvnor/common/services/backend/metadata/MetadataServiceImpl.java @@ -363,8 +363,8 @@ public Map setUpAttributes( final Path path, if ( metadata != null ) { attributes = configAttrs( attributes, metadata ); } - return attributes; + return BasicFileAttributesUtil.cleanup( attributes ); } catch ( Exception e ) { throw ExceptionUtilities.handleException( e ); }