|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ /* * LoaderPoolTest.java * * Tests adding and removing of DataLoaders and some other related stuff. * Should run in fresh instance of IDE. * * Created on May 23, 2001, 1:42 PM */ package DataLoaderTests.LoaderPoolTest; import org.openide.*; import org.openide.loaders.*; import org.openide.filesystems.*; import org.openide.modules.*; import org.openide.util.Lookup; import org.netbeans.core.*; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Enumeration; import java.util.jar.JarFile; import java.util.*; import java.util.jar.Attributes; import javax.swing.event.ChangeListener; import javax.swing.event.ChangeEvent; import junit.framework.*; import org.netbeans.junit.*; public class LoaderPoolTest extends NbTestCase implements DataLoader.RecognizedFiles { /** Creates new LoaderPoolTest */ public LoaderPoolTest(java.lang.String testName) { super(testName); } boolean successful = true; LoaderPoolNode LPN = null; Repository Rep = null; DataLoaderPool DLP = null; DataLoader javadl = null; //JavaDataLoader DataLoader textdl = null; //TXTDataLoader LoaderPoolTest.ChL changel = null; //change listener for changes over DataLoderPool Enumeration en = null; int noOfChanges = 0; //count of changes over DataLoaderPool /**This methods write an output to log stream*/ public void writeLog(String text) { log(text); System.out.println(text); if (text.equals(FAILED)) successful = false; } /**This methods write an output to reference stream*/ public void writeRef(String text) { ref(text); System.out.println(text); if (text.equals(FAILED)) successful = false; } /**This methods write an output to reference stream and asserts success of the test fragment*/ public void writeRef(String text, String inf) { ref(text); System.out.println(text); if (inf.equals(FAILED)) successful = false; assertTrue(text,successful); } /**If enabled, prints exception to the output and to the ref stream*/ void printException(Exception e) { if(PRINT_EXCEPTIONS){ e.printStackTrace(); e.printStackTrace(getRef()); } } /**overrides parent definition of this methot, *so this new works in this way - returns work filed *that should have been set by user of this utility class */ public String getWorkDirPath() { if (work == null) fail("Working directory not set!"); //always return what a someone else has set return work; } /** *Performs initializing before own tests starts */ void prepare() { try{ //initializing ide // TopManager.getDefault(); //when not in XTest harness -> woring directory will be under actual userdir if (Manager.getWorkDirPath()==null) System.setProperty("nbjunit.workdir",System.getProperty("netbeans.user")); //clearWorkDir(); noOfChanges = 0; Rep = (Repository) Lookup.getDefault().lookup(Repository.class); //mounting filesystem String str = null; java.net.URL url = new LoaderPoolTest("x").getClass().getResource("LoaderPoolTest.class"); if (url.getProtocol().equals("nbfs")) { //this allows tests to be executed inside running ide (ide mode) // str = (FileUtil.toFile(org.openide.execution.NbfsURLConnection.decodeURL(url))).getAbsolutePath(); fail("nbfs is not handled"); } else str = url.getPath(); //else test executed in code mode str = str.substring(0,str.indexOf(new LoaderPoolTest("x").getClass().getPackage().getName().replace('.','/'))); java.io.File ff = new java.io.File(str); org.openide.filesystems.LocalFileSystem lfs = new org.openide.filesystems.LocalFileSystem(); lfs.setRootDirectory(ff); Rep.addFileSystem(lfs); DLP = (DataLoaderPool) Lookup.getDefault().lookup(DataLoaderPool.class); //following doesn't work in nongui mode ;-( // XXX Places are deprecated at all but the repository node (RepositoryNodeFactory), // The rest is not useful. // LPN = (LoaderPoolNode) ((Places)Lookup.getDefault().lookup(Places.class)).nodes().loaderPool(); // changel = new LoaderPoolTest.ChL(this); // DLP.addChangeListener( changel ); }catch(Exception e){ e.printStackTrace(); e.printStackTrace(getRef()); assertTrue("Initialization of test failed! ->" + e,false); } } /** *Performs clean up */ public void clean() { //getRef().flush(); //getRef().close(); DLP.removeChangeListener( changel ); noOfChanges = 0; Rep = null; DLP = null; LPN = null; changel = null; } /** *Performs waiting of current thread for time in millis *@param millist integer number - time in millis to wait */ void dummyWait(int millis) { try { Thread.sleep(millis); } catch (Exception ex) { printException(ex); } } /** *Listener for changes over LoaderPool */ class ChL implements ChangeListener{ LoaderPoolTest parent = null; public ChL(LoaderPoolTest lp){ super(); parent=lp; } public void stateChanged(ChangeEvent e) { writeRef("\nSome change over DataLoaderPool has happend, added or removed DataLoader!"); parent.noOfChanges ++; } } /** *Gets the specified DataLoader *@param DLDisplayNameSubstr substring of the DataLoader's DisplayName *@returns DataLoader or null */ public DataLoader getDataLoader(String DLDisplayNameSubstr) { if ( DLDisplayNameSubstr != null ) { en = DLP .allLoaders(); while ( en.hasMoreElements() ) { DataLoader dl = (DataLoader) en.nextElement(); if ( dl.getDisplayName().indexOf(DLDisplayNameSubstr) != -1 ) return dl; } } writeRef("\n" + DLDisplayNameSubstr + " loader not found in the LoaderPool!"); return null; } /** *Goes through all registered DataLoaders, firstProducerOf, ProducerOf, *gets and sets PrefferedLoader for java source file */ void exploreDataLoaderPool() throws Exception { writeRef("\nListing all registred DataLoaders ..."); en = DLP .allLoaders(); while ( en.hasMoreElements() ) { DataLoader dl = (DataLoader) en.nextElement(); String str = dl.toString(); System.out.println( dl.getDisplayName() + " / " + str.substring(0,str.indexOf('@')) ); if ( dl.getDisplayName().indexOf("Java Source") != -1 ) javadl = dl; if ( dl.getDisplayName().indexOf("Textual") != -1 ) textdl = dl; } writeRef(PASSED); writeRef("\nGetting firstProducerOf ..."); DataLoader[] dla = DLP.toArray(); for ( int i = 0 ; i < dla.length ; i ++ ) { String str = (DLP.firstProducerOf(dla[i].getRepresentationClass()) ).toString(); System.out.println(str.substring(0,str.indexOf('@'))); } writeRef(PASSED); writeRef("\nGetting ProducerOf ..."); for ( int i = 0 ; i < dla.length ; i ++ ) { Enumeration e = DLP.producersOf(dla[i].getRepresentationClass()); while (e.hasMoreElements()) { String str = e.nextElement().toString(); System.out.println(str.substring(0,str.indexOf('@'))); } System.out.println("*"); } writeRef(PASSED); writeRef("\nGetting prefered DataLoader for java source file ..."); //some java file String name = "DataLoaderTests/DataObjectTest/data/ClassObject.java"; FileObject fo = toFileObject(name); writeRef(fo.toString()); if ( DataLoaderPool.getPreferredLoader( fo ) == null ) writeRef("\nnull"); else { //writeRef("Check this, should be null."); String str = DataLoaderPool.getPreferredLoader( fo ) .toString(); writeRef(str.substring(0,str.indexOf('@'))); } writeRef(PASSED); writeRef("\nSetting prefered DataLoader for java source file ..."); DataLoaderPool.setPreferredLoader( fo , javadl ); writeRef(PASSED); writeRef("\nGetting prefered DataLoader for java source file ..."); writeRef(fo.toString()); //temp. disabled //String str = DataLoaderPool.getPreferredLoader( fo ) .toString(); //writeRef(str.substring(0,str.indexOf('@'))); writeRef(PASSED); } static LocalFileSystem lfs ; private static FileObject toFileObject(String fileName ) throws Exception { if (lfs == null ) { lfs = new LocalFileSystem(); String xtestData = System.getProperty("xtest.data"); if (! xtestData.endsWith(File.separator) ) { xtestData = xtestData + "/"; } lfs.setRootDirectory(new File (xtestData)); } /* System.out.println("filename:" + fileName ); fileName = xtestData + fileName.replace('/',File.separatorChar); System.out.println("fileName:" + fileName); File file = new File(fileName); if (file.exists() == false ) { throw new FileNotFoundException(fileName); }*/ FileObject fo = lfs.findResource(fileName); // FileObject fo = org.openide.filesystems.FileUtil.toFileObject(new File(fileName)); if (fo == null) { throw new FileNotFoundException ("fo:" + fileName); } return fo; } /** *@param file is path to the file in the repository *@param dl is DataLoader */ void createDataObject(String fileName, DataLoader dl) throws Exception { writeRef("\nCreating DataObject for file " + fileName.substring(fileName.lastIndexOf('/')+1) + " ..."); dl.findDataObject (toFileObject(fileName), this ); } /** *For specified file tests if there is an exception thrown when creating *DataObject using passed DataLoader (assuming that the DataObject exists *the exception will be DataObjectExistsException). *@param file is path to the file in the repository *@param dl is DataLoader */ void notCreateDataObject(String file, DataLoader dl) throws Exception { writeRef("\nnotCreating DataObject for file " + file.substring(file.lastIndexOf('/')+1) + " ..."); FileObject fo = toFileObject(file); try { dl.findDataObject (fo, this ); writeRef("NotCreating DataObject failed!",FAILED); } catch (Exception ex) { printException(ex); writeRef(PASSED); } } /** *Tests if for specified file exists DataObject *@param file path to the file in the repository *@return true if exists */ boolean existDataObject(String fileName) throws Exception { writeRef("\nDataObject for file " + fileName.substring(fileName.lastIndexOf('/')+1) + " should exist ..."); FileObject fo = toFileObject(fileName); try { DataObject.find(fo); writeRef(PASSED); return true; } catch (Exception ex) { printException(ex); writeRef("DataObject should exist but doesn't!",FAILED); return false; } } /** *Tests if for specified file does not exist DataObject *@param file path to the file in the repository *@return true if does not exist */ /* boolean notExistDataObject(String file){ writeRef("\nDataObject for file " + file.substring(file.lastIndexOf('/')+1) + " should not exist ..."); FileObject fo = FileUtil.toFileObject(new File(file)); try { DataObject.find(fo); writeRef("DataObject shouldn't exit but does!",FAILED); return false; } catch (Exception ex) { printException(ex); writeRef(PASSED); return true; } }*/ /** *For passed file finds DataObject and verify if it was created with the desired DataLoader *@param file path to the file in the repository *@param loaderDisplayName DisplayName of desired loader *@return true if the two DisplayNames are identical */ boolean recognizedAs(String fileName, String loaderDisplayName) throws IOException { writeRef("\nFile " + fileName.substring(fileName.lastIndexOf('/')+1) + " should be recognized as " + loaderDisplayName + " ..."); File file = new File(fileName); if (file.exists() == false) { throw new FileNotFoundException (fileName); } FileObject fo = FileUtil.toFileObject(file); try { boolean status = DataObject.find(fo).getLoader().getDisplayName().indexOf(loaderDisplayName) != -1; //System.out.println(DataObject.find(fo).getLoader().getDisplayName()); writeRef(PASSED); return status; } catch (Exception ex) { printException(ex); writeRef("File should be recognized as "+ loaderDisplayName +" but isn't!",FAILED); return false; } } /** *For passed file finds DataObject and verify if it was not created with the desired DataLoader *@param file path to the file in the repository *@param loaderDisplayName DisplayName of desired loader *@return true if the two DisplayNames differ */ boolean notRecognizedAs(String file, String loaderName){ writeRef("\nFile " + file.substring(file.lastIndexOf('/')+1) + " should not be recognized as " + loaderName + " ..."); FileObject fo = FileUtil.toFileObject(new File(file)); try { boolean status = DataObject.find(fo).getLoader().getDisplayName().indexOf(loaderName) == -1; //System.out.println(DataObject.find(fo).getLoader().getDisplayName()); writeRef(PASSED); return status; } catch (Exception ex) { printException(ex); writeRef("File shouldn't be recognized as "+ loaderName +" but is!",FAILED); return false; } } /** *Removes DataLoader from DataLoaderPool *@param dl DataLoader */ void removeDataLoader( DataLoader dl ){ writeRef("\nRemoving DataLoader ..."); writeRef(dl.getRepresentationClass().toString()); LPN.remove( dl ); writeRef(PASSED); } /** *Adds DataLoader(s) to DataLoaderPool *@param module name of the module containing loder(s) (name of the jar without extension) */ void addDataLoader( String module ){ writeRef("\nAdding DataLoaders from LoadersSection from the module manifest ..."); try{ org.netbeans.core.modules.ModuleManager mm = org.netbeans.core.NbTopManager.get().getModuleSystem().getManager(); org.netbeans.core.modules.Module m = mm.get(module); System.out.println("Got the Module: " + m.toString()); HashSet mysections = new HashSet(25); // Set |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.