コード例 #1
0
 @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$
 }
コード例 #2
0
 /*
  * (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$
   }
 }
コード例 #3
0
  /*
   * (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);
    }
  }
コード例 #4
0
  /*
   * (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)));
      }
    }
  }
コード例 #5
0
 /*
  * (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)));
   }
 }
コード例 #6
0
  @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;
  }