diff --git a/maven.j2ee/src/org/netbeans/modules/maven/j2ee/web/CopyOnSave.java b/maven.j2ee/src/org/netbeans/modules/maven/j2ee/web/CopyOnSave.java --- a/maven.j2ee/src/org/netbeans/modules/maven/j2ee/web/CopyOnSave.java +++ b/maven.j2ee/src/org/netbeans/modules/maven/j2ee/web/CopyOnSave.java @@ -80,6 +80,31 @@ mavenproject = project.getLookup().lookup(NbMavenProject.class); } + private void copySrcToDest( FileObject srcFile, FileObject destFile) throws IOException { + if (destFile != null && !srcFile.isFolder()) { + InputStream is = null; + OutputStream os = null; + FileLock fl = null; + try { + is = srcFile.getInputStream(); + fl = destFile.lock(); + os = destFile.getOutputStream(fl); + FileUtil.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + if (os != null) { + os.close(); + } + if (fl != null) { + fl.releaseLock(); + } + } + System.out.println("copied + " + srcFile.getPath() + " to " + destFile); + } + } + private WebModule getWebModule() { return provider.findWebModule(project.getProjectDirectory()); } @@ -223,9 +248,10 @@ private void handleDeleteFileInDestDir(String resourcePath) throws IOException { FileObject webBuildBase = getJ2eeModule().getContentDirectory(); + FileObject webInfClasses = webBuildBase.getFileObject("WEB-INF/classes"); if (webBuildBase != null) { // project was built - FileObject toDelete = webBuildBase.getFileObject(resourcePath); + FileObject toDelete = webInfClasses.getFileObject(resourcePath); if (toDelete != null) { toDelete.delete(); } @@ -245,35 +271,22 @@ return; } FileObject webBuildBase = getJ2eeModule().getContentDirectory(); + if (webBuildBase != null) { // project was built if (FileUtil.isParentOf(documentBase, webBuildBase) || FileUtil.isParentOf(webBuildBase, documentBase)) { //cannot copy into self return; } - FileObject destFile = ensureDestinationFileExists(webBuildBase, path, fo.isFolder()); - if (destFile != null && !fo.isFolder()) { - InputStream is = null; - OutputStream os = null; - FileLock fl = null; - try { - is = fo.getInputStream(); - fl = destFile.lock(); - os = destFile.getOutputStream(fl); - FileUtil.copy(is, os); - } finally { - if (is != null) { - is.close(); - } - if (os != null) { - os.close(); - } - if (fl != null) { - fl.releaseLock(); - } - } - //System.out.println("copied + " + FileUtil.copy(fo.getInputStream(), destDir, fo.getName(), fo.getExt())); - } + FileObject webAppClassesDir = webBuildBase.getFileObject("WEB-INF/classes"); + FileObject destFile = ensureDestinationFileExists(webAppClassesDir, path, fo.isFolder()); + copySrcToDest(fo, destFile); + + String projClassesPath = mavenproject.getMavenProject().getBuild().getOutputDirectory(); + FileObject targetClasses = FileUtil.toFileObject(new File(projClassesPath)); + destFile = ensureDestinationFileExists(targetClasses, path, fo.isFolder()); + copySrcToDest(fo, destFile); + } } }