Author: vyemialyanchyk
Date: 2008-09-16 10:41:40 -0400 (Tue, 16 Sep 2008)
New Revision: 10253
Added:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/TestUtilsCommon.java
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/MappingTestProject.java
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/ProjectUtil.java
Log:
small refactoring for junit tests for JBIDE-2077
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/MappingTestProject.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/MappingTestProject.java 2008-09-16
13:45:34 UTC (rev 10252)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/MappingTestProject.java 2008-09-16
14:41:40 UTC (rev 10253)
@@ -11,36 +11,21 @@
package org.hibernate.eclipse.console.test.mappingproject;
import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
-import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.PackageFragmentRoot;
import org.eclipse.osgi.util.NLS;
import org.hibernate.eclipse.console.test.ConsoleTestMessages;
import org.hibernate.eclipse.console.test.HibernateConsoleTestPlugin;
@@ -52,35 +37,11 @@
*/
public class MappingTestProject{
- public static final String SRC_FOLDER = "src"; //$NON-NLS-1$
-
- public static final String LIB_FOLDER = "lib"; //$NON-NLS-1$
-
private static MappingTestProject singleton= null;
- private static final Path JRE_CONTAINER = new
Path("org.eclipse.jdt.launching.JRE_CONTAINER"); //$NON-NLS-1$
-
public static String PROJECT_NAME = "MappingTestProject"; //$NON-NLS-1$
public static String RESOURCE_PATH = "res/project/"; //$NON-NLS-1$
- private static FileFilter fileFilter = new FileFilter(){
- public boolean accept(File pathname) {
- return !pathname.isDirectory();
- }};
-
- private static FileFilter dirFilter = new FileFilter(){
- public boolean accept(File pathname) {
- //exclude ".svn" and other unnessesary folders
- if (pathname.getName().charAt(0) == '.') return false;
- if (LIB_FOLDER.equals(pathname.getName())) return false;
- return pathname.isDirectory();
- }};
-
- private static FileFilter jarFilter = new FileFilter(){
- public boolean accept(File pathname) {
- return !pathname.isDirectory() || pathname.getName().endsWith(".jar");
//$NON-NLS-1$
- }};
-
private IProject project;
private IJavaProject javaProject;
@@ -116,8 +77,9 @@
}
private void buildBigTestProject() throws JavaModelException, CoreException, IOException
{
- project = buildNewProject(PROJECT_NAME);
- javaProject = buildJavaProject(project);
+ TestUtilsCommon commonUtil = new TestUtilsCommon();
+ project = commonUtil.buildNewProject(PROJECT_NAME);
+ javaProject = commonUtil.buildJavaProject(project);
IPath resourcePath = new Path(RESOURCE_PATH);
File resourceFolder = resourcePath.toFile();
@@ -131,154 +93,15 @@
throw new RuntimeException(out);
}
- IPackageFragmentRoot sourceFolder = createSourceFolder(project, javaProject);
- recursiveCopyFiles(resourceFolder, (IFolder) sourceFolder.getResource());
- List<IPath> libs = copyLibs(resourceFolder);
- generateClassPath(libs, sourceFolder);
+ IPackageFragmentRoot sourceFolder = commonUtil.createSourceFolder(project,
javaProject);
+ commonUtil.recursiveCopyFiles(resourceFolder, (IFolder) sourceFolder.getResource());
+ List<IPath> libs = commonUtil.copyLibs(project, javaProject, resourceFolder);
+ commonUtil.generateClassPath(javaProject, libs, sourceFolder);
project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
}
- private void recursiveCopyFiles(File src, IFolder dst){
- File[] files = src.listFiles(fileFilter);
- for (int i = 0; i < files.length; i++) {
- File file = files[i];
- if (!file.exists()) continue;
- IFile iFile = dst.getFile(file.getName());
- try {
- iFile.create(new FileInputStream(file), true, null);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- continue;
- } catch (CoreException e) {
- e.printStackTrace();
- continue;
- }
- }
- File[] dirs = src.listFiles(dirFilter);
- for (int i = 0; i < dirs.length; i++) {
- File dir = dirs[i];
- if (!dir.exists()) continue;
- IFolder iFolder = dst.getFolder(dir.getName());
- try {
- iFolder.create(true, true, null);
- recursiveCopyFiles(dir, iFolder);
- } catch (CoreException e) {
- e.printStackTrace();
- continue;
- }
- }
- }
- private List<IPath> copyLibs(File res) throws CoreException {
- IFolder dst = project.getFolder(LIB_FOLDER);
- if (!dst.exists()){
- dst.create(false, true, null);
- javaProject.getPackageFragmentRoot(dst);
- }
-
- File libFolder = new File(res.getAbsolutePath()+"/" + LIB_FOLDER);
//$NON-NLS-1$
- if ( !libFolder.exists() ) {
- String out = NLS.bind(ConsoleTestMessages.MappingTestProject_folder_not_found,
- RESOURCE_PATH + "/" + LIB_FOLDER); //$NON-NLS-1$
- throw new RuntimeException(out);
- }
-
-
- List<IPath> libs = new ArrayList<IPath>();
-
- File[] files = libFolder.listFiles(jarFilter);
- for (int i = 0; i < files.length; i++) {
- File file = files[i];
- if (!file.exists()) continue;
- IFile iFile = dst.getFile(file.getName());
- try {
- iFile.create(new FileInputStream(file), true, null);
- libs.add(iFile.getFullPath());
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- continue;
- }
- }
- return libs;
- }
-
- private void generateClassPath(List<IPath> libs, IPackageFragmentRoot
sourceFolder) throws JavaModelException{
- List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
- //entries.addAll(Arrays.asList(javaProject.getRawClasspath()));
- for (IPath lib_path : libs) {
- entries.add(JavaCore.newLibraryEntry(lib_path, null, null));
- }
- entries.add(JavaCore.newSourceEntry(sourceFolder.getPath()));
- entries.add(JavaCore.newContainerEntry(JRE_CONTAINER));
- javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[0]), null);
- }
-
-
- private IProject buildNewProject(String projectName) {
- // get a project handle
- final IProject newProjectHandle = ResourcesPlugin.getWorkspace()
- .getRoot().getProject(projectName);
-
- // get a project descriptor
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- final IProjectDescription description = workspace
- .newProjectDescription(newProjectHandle.getName());
-
- try {
- createAndOpenProject(description, newProjectHandle);
- } catch (CoreException ce) {
- throw new RuntimeException(ce);
- }
-
- return newProjectHandle;
- }
-
- private void createAndOpenProject(IProjectDescription description,
- IProject projectHandle) throws CoreException {
-
- projectHandle.create(description, null);
- projectHandle.open(IResource.BACKGROUND_REFRESH, null);
- }
-
- private IJavaProject buildJavaProject(IProject project) {
- IJavaProject javaProject = JavaCore.create(project);
- try {
- setJavaNature(project);
- } catch (CoreException ce) {
- throw new RuntimeException(ce);
- }
-
- javaProject.setOption(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5);
- javaProject.setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM,
JavaCore.VERSION_1_5);
- javaProject.setOption(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5);
- return javaProject;
- }
-
- private void setJavaNature(IProject project) throws CoreException {
- IProjectDescription description = project.getDescription();
- description.setNatureIds(new String[] { JavaCore.NATURE_ID });
- project.setDescription(description, null);
- }
-
-
- private IPackageFragmentRoot createSourceFolder(IProject project,
- IJavaProject javaProject) throws CoreException {
- IFolder folder = project.getFolder(SRC_FOLDER);
- if (!folder.exists()){
- folder.create(false, true, null);
- IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
- /*IClasspathEntry[] newEntries = { JavaCore
- .newSourceEntry(root.getPath()) , JavaCore
- .newContainerEntry(JRE_CONTAINER)};
- javaProject.setRawClasspath(newEntries, null);*/
- return root;
- }
- return javaProject.getPackageFragmentRoot(folder);
- }
-
-
-
/*private boolean removePackage(String name, IProject project,
IJavaProject javaProject) {
IFolder folder = project.getFolder("src");
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/ProjectUtil.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/ProjectUtil.java 2008-09-16
13:45:34 UTC (rev 10252)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/ProjectUtil.java 2008-09-16
14:41:40 UTC (rev 10253)
@@ -113,7 +113,7 @@
public void run() throws CoreException {
IPath cfgFilePath = new Path(MappingTestProject.PROJECT_NAME + "/" +
//$NON-NLS-1$
- MappingTestProject.SRC_FOLDER + "/" + ProjectUtil.CFG_FILE_NAME);
//$NON-NLS-1$
+ TestUtilsCommon.SRC_FOLDER + "/" + ProjectUtil.CFG_FILE_NAME);
//$NON-NLS-1$
createConsoleConfiguration(null, null, ConsoleCFGName,
ConsoleConfigurationPreferences.ConfigurationMode.CORE,
MappingTestProject.PROJECT_NAME, true, "", //$NON-NLS-1$
null, cfgFilePath, new Path[0], new Path[0], "", "", new
NullProgressMonitor()); //$NON-NLS-1$//$NON-NLS-2$
Added:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/TestUtilsCommon.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/TestUtilsCommon.java
(rev 0)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/mappingproject/TestUtilsCommon.java 2008-09-16
14:41:40 UTC (rev 10253)
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.test.mappingproject;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.osgi.util.NLS;
+import org.hibernate.eclipse.console.test.ConsoleTestMessages;
+
+/**
+ *
+ *
+ * @author Vitali
+ */
+public class TestUtilsCommon {
+
+ public static final String SRC_FOLDER = "src"; //$NON-NLS-1$
+ public static final String LIB_FOLDER = "lib"; //$NON-NLS-1$
+
+ public static final Path JRE_CONTAINER = new Path(
+ "org.eclipse.jdt.launching.JRE_CONTAINER"); //$NON-NLS-1$
+
+ protected FileFilter fileFilter = new FileFilter() {
+ public boolean accept(File pathname) {
+ return !pathname.isDirectory();
+ }
+ };
+
+ protected FileFilter dirFilter = new FileFilter() {
+ public boolean accept(File pathname) {
+ // exclude ".svn" and other unnessesary folders
+ if (pathname.getName().charAt(0) == '.')
+ return false;
+ if (LIB_FOLDER.equals(pathname.getName()))
+ return false;
+ return pathname.isDirectory();
+ }
+ };
+
+ protected FileFilter jarFilter = new FileFilter() {
+ public boolean accept(File pathname) {
+ return !pathname.isDirectory()
+ || pathname.getName().endsWith(".jar"); //$NON-NLS-1$
+ }
+ };
+
+ public FileFilter getFileFilter() {
+ return fileFilter;
+ }
+
+ public void setFileFilter(FileFilter fileFilter) {
+ this.fileFilter = fileFilter;
+ }
+
+ public FileFilter getDirFilter() {
+ return dirFilter;
+ }
+
+ public void setDirFilter(FileFilter dirFilter) {
+ this.dirFilter = dirFilter;
+ }
+
+ public FileFilter getJarFilter() {
+ return jarFilter;
+ }
+
+ public void setJarFilter(FileFilter jarFilter) {
+ this.jarFilter = jarFilter;
+ }
+
+ public void recursiveCopyFiles(File src, IFolder dst) {
+ File[] files = src.listFiles(fileFilter);
+ for (int i = 0; i < files.length; i++) {
+ File file = files[i];
+ if (!file.exists())
+ continue;
+ IFile iFile = dst.getFile(file.getName());
+ try {
+ iFile.create(new FileInputStream(file), true, null);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ continue;
+ } catch (CoreException e) {
+ e.printStackTrace();
+ continue;
+ }
+ }
+
+ File[] dirs = src.listFiles(dirFilter);
+ for (int i = 0; i < dirs.length; i++) {
+ File dir = dirs[i];
+ if (!dir.exists())
+ continue;
+ IFolder iFolder = dst.getFolder(dir.getName());
+ try {
+ iFolder.create(true, true, null);
+ recursiveCopyFiles(dir, iFolder);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ continue;
+ }
+ }
+ }
+
+ public IProject buildNewProject(String projectName) {
+ // get a project handle
+ final IProject newProjectHandle = ResourcesPlugin.getWorkspace()
+ .getRoot().getProject(projectName);
+
+ // get a project descriptor
+ IWorkspace workspace = ResourcesPlugin.getWorkspace();
+ final IProjectDescription description = workspace
+ .newProjectDescription(newProjectHandle.getName());
+
+ try {
+ createAndOpenProject(description, newProjectHandle);
+ } catch (CoreException ce) {
+ throw new RuntimeException(ce);
+ }
+
+ return newProjectHandle;
+ }
+
+ public void createAndOpenProject(IProjectDescription description,
+ IProject projectHandle) throws CoreException {
+
+ projectHandle.create(description, null);
+ projectHandle.open(IResource.BACKGROUND_REFRESH, null);
+ }
+
+ public IJavaProject buildJavaProject(IProject project) {
+ IJavaProject javaProject = JavaCore.create(project);
+ try {
+ setJavaNature(project);
+ } catch (CoreException ce) {
+ throw new RuntimeException(ce);
+ }
+
+ javaProject.setOption(JavaCore.COMPILER_COMPLIANCE,
+ JavaCore.VERSION_1_5);
+ javaProject.setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM,
+ JavaCore.VERSION_1_5);
+ javaProject.setOption(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5);
+ return javaProject;
+ }
+
+ public void setJavaNature(IProject project) throws CoreException {
+ IProjectDescription description = project.getDescription();
+ description.setNatureIds(new String[] { JavaCore.NATURE_ID });
+ project.setDescription(description, null);
+ }
+
+ public IPackageFragmentRoot createFolder(IProject project,
+ IJavaProject javaProject, String strFolder) throws CoreException {
+ IFolder folder = project.getFolder(strFolder);
+ if (!folder.exists()) {
+ folder.create(false, true, null);
+ IPackageFragmentRoot root = javaProject
+ .getPackageFragmentRoot(folder);
+ /*
+ * IClasspathEntry[] newEntries = { JavaCore
+ * .newSourceEntry(root.getPath()) , JavaCore
+ * .newContainerEntry(JRE_CONTAINER)};
+ * javaProject.setRawClasspath(newEntries, null);
+ */
+ return root;
+ }
+ return javaProject.getPackageFragmentRoot(folder);
+ }
+
+ public IPackageFragmentRoot createSourceFolder(IProject project,
+ IJavaProject javaProject) throws CoreException {
+ return createFolder(project, javaProject, SRC_FOLDER);
+ }
+
+ public List<IPath> copyLibs(IProject project, IJavaProject javaProject,
+ File res) throws CoreException {
+ IFolder dst = project.getFolder(TestUtilsCommon.LIB_FOLDER);
+ if (!dst.exists()) {
+ dst.create(false, true, null);
+ javaProject.getPackageFragmentRoot(dst);
+ }
+ File libFolder = new File(res.getAbsolutePath()
+ + "/" + TestUtilsCommon.LIB_FOLDER); //$NON-NLS-1$
+ if (!libFolder.exists()) {
+ String out = NLS.bind(
+ ConsoleTestMessages.MappingTestProject_folder_not_found,
+ res.getAbsolutePath() + "/" + TestUtilsCommon.LIB_FOLDER); //$NON-NLS-1$
+ throw new RuntimeException(out);
+ }
+ List<IPath> libs = new ArrayList<IPath>();
+
+ File[] files = libFolder.listFiles(jarFilter);
+ for (int i = 0; i < files.length; i++) {
+ File file = files[i];
+ if (!file.exists())
+ continue;
+ IFile iFile = dst.getFile(file.getName());
+ try {
+ iFile.create(new FileInputStream(file), true, null);
+ libs.add(iFile.getFullPath());
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ continue;
+ }
+ }
+ return libs;
+ }
+
+ public void generateClassPath(IJavaProject javaProject, List<IPath> libs,
+ IPackageFragmentRoot sourceFolder) throws JavaModelException {
+ List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
+ // entries.addAll(Arrays.asList(javaProject.getRawClasspath()));
+ for (IPath lib_path : libs) {
+ entries.add(JavaCore.newLibraryEntry(lib_path, null, null));
+ }
+ entries.add(JavaCore.newSourceEntry(sourceFolder.getPath()));
+ entries.add(JavaCore.newContainerEntry(JRE_CONTAINER));
+ javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[0]),
+ null);
+ }
+}