ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ray Tayek <rta...@comcast.net>
Subject Re: Loading resources from my task's JAR?
Date Thu, 05 Jan 2006 11:06:43 GMT
At 09:48 PM 1/4/2006, you wrote:
>I wrote an Ant task that needs to load some files ...
>
>and I've tried getting at it with (and more) from within my task's code:

i had a bunch of trouble getting resources from jars a while back, 
but was all in java. if you are getting a null when trying to get the 
resource from plain old java, then the code below may be of interest. 
i had resources with the same name in different packages, with 
data/test files in src/ and tst/. also, iirc, there were lot's 
problems with file names in windoze. i can send you the zip of the 
project if you like.

thanks

package l;
public class L {
         public static void main(String[] argument) throws Exception {
         }
}

package l;
import junit.framework.*;
import java.util.*;
import java.net.*;
import java.io.*;
public class LTestCase extends TestCase {
         public LTestCase(java.lang.String testName) {
                 super(testName);
         }
         public static Test suite() {
                 TestSuite suite = new TestSuite(LTestCase.class);
                 return suite;
         }
         public void testGetPropertiesFileAsResurceBundle() {
                 final ResourceBundle rb=ResourceBundle.getBundle(c.getName());
                 assertNotNull(""+c,rb);
         }
         public void testGetAPropertyValue() {
                 final ResourceBundle rb=ResourceBundle.getBundle(c.getName());
                 assertEquals(expectedValue,rb.getObject(key));
         }
         public void testGetPathfromGetResource() {
                 final String resource="files";
                 final URL url=c.getResource(resource);
                 assertNotNull("check for existence of: "+resource,url);
                 final String path=url.getPath();
                 assertNotNull("path: ",path);
                 final File file=new File(path);
                 assertNotNull("file: ",file);
                 //assertTrue("file.exists() using: "+file,file.exists());
         }
         public void testOpenStreamfromGetResource() throws Exception {
                 final String resource="files/file1.txt";
                 final URL url=c.getResource(resource);
                 assertNotNull("check for existence of: "+resource,url);
                 final InputStream is=url.openStream();
                 assertNotNull("check for ability to open this as an 
input stream: ",is);
                 final BufferedReader r=new BufferedReader(new 
InputStreamReader(is));
                 assertNotNull("check for ability to open this as a 
reader: ",r);
                 final String line=r.readLine();
                 assertEquals("check to see if we got the corect 
value: ",value,line);
                 is.close();
         }
         public void testGetTestPropertiesFileAsResurceBundle() {
                 final ResourceBundle 
rb=ResourceBundle.getBundle(this.getClass().getName());
                 assertNotNull("check to see if we loaded the 
resource bundld",rb);
         }
         public void testGetATestPropertyValue() {
                 final ResourceBundle 
rb=ResourceBundle.getBundle(this.getClass().getName());
                 assertEquals(expectedValue+"Test",rb.getObject(key));
         }
         public void testGetTestPathAsResource() {
                 final String resource="testFiles"; // no /'s allowed!
                 final URL url=testC.getResource(resource);
                 assertNotNull(url.toString(),url);
                 assertEquals(""+url,resource,(new 
File(url.getPath())).getName());
         }
         public void testGetTestFileResourceInFolder() throws Exception {
                 final String resource="testFiles/file1.txt";
                 final URL url=testC.getResource(resource);
                 assertNotNull("check for existence of: "+resource,url);
                 final InputStream is=url.openStream();
                 assertNotNull("check for ability to open this as an 
input stream: ",is);
                 final BufferedReader r=new BufferedReader(new 
InputStreamReader(is));
                 assertNotNull("check for ability to open this as a 
reader: ",r);
                 final String line=r.readLine();
                 assertEquals(url.toString(),value+"Test",line);
                 is.close();
         }
         public void testWriteToTempFile() throws Exception{
                 final String resource="testFiles";
                 final URL url=testC.getResource(resource);
                 final File path=new File(url.getPath()); // hack - 
may not always work!
                 assertNotNull("path from resource",path);
                 assertTrue("check that path exists",path.exists());
                 assertTrue("check that path is a 
directory",path.isDirectory());
                 assertTrue("check that path is readable",path.canRead());
                 assertTrue("check that path is writable",path.canWrite());
                 final File 
file=File.createTempFile(this.getClass().getName().substring(0,3),".ext",path);
                 assertNotNull("temp file",file);
                 final Writer w=new FileWriter(file);
                 w.write(key+"\n");
                 w.close();
                 final BufferedReader r=new BufferedReader(new 
FileReader(file));
                 final String line=r.readLine();
                 r.close();
                 assertEquals("check what we wrote",key,line);
                 file.deleteOnExit();
         }
         public static void main(String[] argument) {
                 junit.textui.TestRunner.run(suite());
         }
         private final Class c=L.class,testC=this.getClass();
         private final String key="foo",expectedValue="bar",value="l";
}


---
vice-chair http://ocjug.org/


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message