@Override protected void createEjbProject() { super.createEjbProject(); // Copy security.drl to source folder if (shouldCopyLibrariesAndTemplates(model)) AntCopyUtils.copyFileToFolder( new File(seamGenResFolder, "security.drl"), new File(ejbProjectFolder, "ejbModule/"), true); //$NON-NLS-1$ //$NON-NLS-2$ }
/* * (non-Javadoc) * @see org.jboss.tools.seam.internal.core.project.facet.SeamFacetAbstractInstallDelegate#doExecuteForEjb(org.eclipse.core.resources.IProject, org.eclipse.wst.common.project.facet.core.IProjectFacetVersion, org.eclipse.wst.common.frameworks.datamodel.IDataModel, org.eclipse.core.runtime.IProgressMonitor) */ @Override protected void doExecuteForEjb( final IProject project, IProjectFacetVersion fv, IDataModel model, IProgressMonitor monitor) throws CoreException { super.doExecuteForEjb(project, fv, model, monitor); IResource src = getSrcFolder(project); if (src != null && seamHomeFolder != null && shouldCopyLibrariesAndTemplates(model)) { File srcFile = src.getLocation().toFile(); AntCopyUtils.copyFileToFolder( new File(seamGenResFolder, "security.drl"), srcFile, false); // $NON-NLS-1$ } }
/* * (non-Javadoc) * @see org.jboss.tools.seam.internal.core.project.facet.SeamFacetAbstractInstallDelegate#fillEarContents() */ @Override protected void fillEarContents(IProject project, IDataModel model) { if (!shouldCopyLibrariesAndTemplates(model)) return; if (!SeamCorePlugin.getDefault().hasM2Facet(project)) { final File droolsLibFolder = new File(seamHomePath, DROOLS_LIB_SEAM_RELATED_PATH); AntCopyUtils.copyFiles( seamHomeFolder, earContentsFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(JBOSS_EAR_CONTENT).dir(seamHomeFolder)), false); if (shouldCopyLibraries(model)) { AntCopyUtils.copyFiles( seamLibFolder, earContentsFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(JBOSS_EAR_CONTENT).dir(seamLibFolder)), false); AntCopyUtils.copyFiles( seamLibFolder, earLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getEarLibFileSet()).dir(seamLibFolder)), false); AntCopyUtils.copyFiles( droolsLibFolder, earContentsFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(JBOSS_EAR_CONTENT).dir(droolsLibFolder)), false); } AntCopyUtils.copyFiles( seamGenResFolder, earContentsFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(JBOSS_EAR_CONTENT).dir(seamGenResFolder)), false); } }
/* * (non-Javadoc) * @see org.jboss.tools.seam.internal.core.project.facet.SeamFacetAbstractInstallDelegate#copyFilesToWarProject(org.eclipse.core.resources.IProject, org.eclipse.wst.common.project.facet.core.IProjectFacetVersion, org.eclipse.wst.common.frameworks.datamodel.IDataModel, org.eclipse.core.runtime.IProgressMonitor) */ @Override protected void copyFilesToWarProject( final IProject project, IProjectFacetVersion fv, IDataModel model, IProgressMonitor monitor) throws CoreException { if (!shouldCopyLibrariesAndTemplates(model)) return; super.copyFilesToWarProject(project, fv, model, monitor); final File droolsLibFolder = new File(seamHomePath, DROOLS_LIB_SEAM_RELATED_PATH); if (isWarConfiguration(model)) { if (!SeamCorePlugin.getDefault().hasM2Facet(project) && shouldCopyLibraries(model)) { AntCopyUtils.copyFiles( seamHomeFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSet()).dir(seamHomeFolder))); AntCopyUtils.copyFiles( seamLibFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSet()).dir(seamLibFolder))); } final IContainer source = warActionSrcRootFolder.getUnderlyingFolder(); File actionsSrc = new File( project.getLocation().toFile(), source.getFullPath().removeFirstSegments(1).toString()); AntCopyUtils.copyFileToFolder( new File(seamGenResFolder, "seam.properties"), actionsSrc, true); // $NON-NLS-1$ if (!SeamCorePlugin.getDefault().hasM2Facet(project) && shouldCopyLibraries(model)) { AntCopyUtils.copyFiles( droolsLibFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSet()).dir(droolsLibFolder))); } } else { if (!SeamCorePlugin.getDefault().hasM2Facet(project) && shouldCopyLibraries(model)) { AntCopyUtils.copyFiles( seamHomeFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSetForEar()).dir(seamHomeFolder))); AntCopyUtils.copyFiles( seamLibFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSetForEar()).dir(seamLibFolder))); AntCopyUtils.copyFiles( droolsLibFolder, webLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(getWarLibFileSetForEar()).dir(droolsLibFolder))); } } }
/* * (non-Javadoc) * @see org.jboss.tools.seam.internal.core.project.facet.SeamProjectCreator#createEarProject() */ @Override protected void createEarProject() { super.createEarProject(); if (!SeamCorePlugin.getDefault().hasM2Facet(seamWebProject) && shouldCopyLibrariesAndTemplates(model) && shouldCopyLibraries(model)) { File earContentsFolder = new File(earProjectFolder, "EarContent"); // $NON-NLS-1$ File earLibFolder = new File(earContentsFolder, "lib"); // $NON-NLS-1$ AntCopyUtils.copyFiles( seamLibFolder, earLibFolder, new AntCopyUtils.FileSetFileFilter( new AntCopyUtils.FileSet(seamLibFileSetProvider.getEarLibFileSet()) .dir(seamLibFolder))); } }
@Override protected boolean createTestProject() { if (!(Boolean) model.getProperty(ISeamFacetDataModelProperties.TEST_PROJECT_CREATING) || !shouldCopyLibrariesAndTemplates(model)) return false; File testProjectDir = new File( seamWebProject.getLocation().removeLastSegments(1).toFile(), testProjectName); //$NON-NLS-1$ testProjectDir.mkdir(); IVirtualComponent component = ComponentCore.createComponent(seamWebProject); IVirtualFolder webRootVirtFolder = component.getRootFolder().getFolder(new Path("/")); // $NON-NLS-1$ File testLibDir = new File(testProjectDir, "lib"); // $NON-NLS-1$ File embededEjbDir = new File(testProjectDir, "bootstrap"); // $NON-NLS-1$ File testSrcDir = new File(testProjectDir, "test-src"); // $NON-NLS-1$ String seamGenResFolder = seamRuntime.getResourceTemplatesDir(); File dataSourceFile = new File(seamGenResFolder, "datasource-ds.xml"); File seamPropertiesFile = new File(seamGenResFolder, "seam.properties"); // File jbossBeansFile = new File(seamGenResFolder ,"META-INF/jboss-beans.xml"); //$NON-NLS-1$ FilterSet filterSet = new FilterSet(); filterSet.addFilter("projectName", seamWebProject.getName()); // $NON-NLS-1$ filterSet.addFilter("earProjectName", earProjectName); // $NON-NLS-1$ filterSet.addFilter("ejbProjectName", ejbProjectName); // $NON-NLS-1$ filterSet.addFilter("testProjectName", testProjectName); // $NON-NLS-1$ filterSet.addFilter( "runtimeName", WtpUtils.getServerRuntimeName(seamWebProject)); // $NON-NLS-1$ filterSet.addFilter( "webRootFolder", webRootVirtFolder .getUnderlyingFolder() .getFullPath() .removeFirstSegments(1) .toString()); //$NON-NLS-1$ FilterSet jdbcFilterSet = SeamFacetFilterSetFactory.createJdbcFilterSet(model); // TODO: why are these filters not shared!? filterSet.addConfiguredFilterSet( SeamFacetFilterSetFactory.createHibernateDialectFilterSet(model)); AntCopyUtils.FileSet includeLibs = new AntCopyUtils.FileSet(getJBossTestLibFileset()) .dir(new File(seamRuntime.getHomeDir(), "lib")); // $NON-NLS-1$ AntCopyUtils.FileSet secondSetincludeLibs = new AntCopyUtils.FileSet(getJBossTestLibFileset()) .dir(new File(seamRuntime.getHomeDir(), "lib/test")); // $NON-NLS-1$ File[] firstlibs = includeLibs.getDir().listFiles(new AntCopyUtils.FileSetFileFilter(includeLibs)); File[] secondLibs = secondSetincludeLibs .getDir() .listFiles(new AntCopyUtils.FileSetFileFilter(secondSetincludeLibs)); Set<String> allLibs = new HashSet<String>(); // HACK: needed to be unique because some jboss-*.jars are duplicated if (firstlibs != null) for (File f : firstlibs) { allLibs.add(f.getName()); } if (secondLibs != null) for (File f : secondLibs) { allLibs.add(f.getName()); } StringBuffer testLibraries = new StringBuffer(); if (!SeamCorePlugin.getDefault().hasM2Facet(seamWebProject)) { for (String file : allLibs) { testLibraries.append( "\t<classpathentry kind=\"lib\" path=\"lib/" + file + "\"/>\n"); //$NON-NLS-1$ //$NON-NLS-2$ } } StringBuffer requiredProjects = new StringBuffer(); requiredProjects.append( "\t<classpathentry combineaccessrules=\"false\" kind=\"src\" path=\"/" + seamWebProject.getName() + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ if (!SeamFacetAbstractInstallDelegate.isWarConfiguration(model)) { requiredProjects.append( "\n\t<classpathentry combineaccessrules=\"false\" kind=\"src\" path=\"/" + ejbProjectName + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ } filterSet.addFilter("testLibraries", testLibraries.toString()); // $NON-NLS-1$ filterSet.addFilter("requiredProjects", requiredProjects.toString()); // $NON-NLS-1$ File testTemplateDir = null; try { testTemplateDir = new File( SeamFacetInstallDataModelProvider.getTemplatesFolder(), "test-seam2"); // $NON-NLS-1$ } catch (IOException e) { SeamCorePlugin.getPluginLog().logError(e); return false; } AntCopyUtils.FileSet excludeCvsSvn = new AntCopyUtils.FileSet(SeamFacetAbstractInstallDelegate.CVS_SVN).dir(testTemplateDir); AntCopyUtils.copyFilesAndFolders( testTemplateDir, testProjectDir, new AntCopyUtils.FileSetFileFilter(excludeCvsSvn), new FilterSetCollection(filterSet), true); excludeCvsSvn.dir(new File(seamRuntime.getHomeDir(), "bootstrap")); // $NON-NLS-1$ AntCopyUtils.copyFilesAndFolders( new File(seamRuntime.getHomeDir(), "bootstrap"), // $NON-NLS-1$ embededEjbDir, new AntCopyUtils.FileSetFileFilter(excludeCvsSvn), new FilterSetCollection(), true); // AntCopyUtils.copyFileToFile( // persistenceFile, // new File(testProjectDir,"test-src/META-INF/persistence.xml"), //$NON-NLS-1$ // new FilterSetCollection(filterSet), true); FilterSetCollection f = new FilterSetCollection(); f.addFilterSet(filterSet); f.addFilterSet(jdbcFilterSet); AntCopyUtils.copyFileToFile( dataSourceFile, new File( testProjectDir, "test-src/META-INF/" + seamWebProject.getName() + "-test-ds.xml"), // $NON-NLS-1$ f, true); AntCopyUtils.copyFileToFolder( seamPropertiesFile, testSrcDir, //$NON-NLS-1$ new FilterSetCollection(filterSet), true); // Add "org.jboss.seam.core.init.debug=false" for Seam 2.1/2.2/2.3 // to seam.properties file to avoid https://jira.jboss.org/jira/browse/JBIDE-3623 if (getVersion() == SeamVersion.SEAM_2_1 || getVersion() == SeamVersion.SEAM_2_2 || getVersion() == SeamVersion.SEAM_2_3) { Properties seamProperties = new Properties(); File testSeamPropertiesFile = new File(testSrcDir, "seam.properties"); FileInputStream inStream = null; FileOutputStream out = null; try { inStream = new FileInputStream(testSeamPropertiesFile); seamProperties.load(inStream); seamProperties.setProperty( "org.jboss.seam.core.init.debug", "false"); // $NON-NLS-1$ //$NON-NLS-2$ out = new FileOutputStream(testSeamPropertiesFile); seamProperties.store(out, "debug is explicitly disabled in test to avoid JBIDE-3623"); } catch (FileNotFoundException e) { SeamCorePlugin.getPluginLog().logError(e); } catch (IOException e) { SeamCorePlugin.getPluginLog().logError(e); } finally { if (inStream != null) { try { inStream.close(); } catch (IOException e) { /** ignore */ } } if (out != null) { try { out.close(); } catch (IOException e) { /** ignore */ } } } } if (!SeamCorePlugin.getDefault().hasM2Facet(seamWebProject) && shouldCopyLibraries(model)) { AntCopyUtils.copyFiles( new File(seamRuntime.getHomeDir(), "lib"), // $NON-NLS-1$ testLibDir, new AntCopyUtils.FileSetFileFilter(includeLibs)); // seam2 has a lib/test AntCopyUtils.copyFiles( new File(seamRuntime.getHomeDir(), "lib/test"), // $NON-NLS-1$ testLibDir, new AntCopyUtils.FileSetFileFilter(includeLibs)); } SeamFacetAbstractInstallDelegate.createComponentsProperties( testSrcDir, "", true); // $NON-NLS-1$ return true; }