geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Dillon <ja...@planet57.com>
Subject Re: svn commit: r432773 - /geronimo/trunk/modules/geronimo-testsupport/src/main/java/org/apache/geronimo/testsupport/TestSupport.java
Date Mon, 21 Aug 2006 05:20:55 GMT
Seems like me addition of the LICENSE.txt and NOTICE.txt with:

<resource>
     <directory>${pom.basedir}</directory>
     <targetPath>META-INF</targetPath>
     <includes>
         <include>LICENSE.txt</include>
         <include>NOTICE.txt</include>
     </includes>
</resource>

Is causing this to pop up... and short of fixing the eclipse plugin  
to be more intelligent about re-including paths that duplicate, I  
think I will just setup a common antrun task to handle copying these  
files into place.

Should fix the eclipse projects for now... until we find some other  
similar resource def that causes it to blow up.

--jason


On Aug 20, 2006, at 9:43 PM, Gianny Damour wrote:

> This is cool that this also works in IDEA.
>
> Regarding this proble, this is the script that I use to fix  
> the .classpath (from the geronimo dir):
> ls */*/.classpath | while read file; do cat $file | grep -v classes/ 
> META-INF > ${file}_new; mv ${file}_new $file; done
>
> BTW, in Eclipse System.getProperty("basedir", System.getProperty 
> ("user.dir")) was working as by default Eclipse starts JUnit tests  
> in the project working directory, i.e. the module root.
>
> Thanks,
> Gianny
>
>
> On 21/08/2006, at 2:25 PM, Jason Dillon wrote:
>
>> This was more what I was thinking:
>>
>> <snip>
>> protected final File getBaseDir() {
>>     File dir;
>>
>>     // If ${basedir} is set, then honor it
>>     String tmp = System.getProperty("basedir");
>>     if (tmp != null) {
>>         dir = new File(tmp);
>>     }
>>     else {
>>         // Find the directory which this class (or really the sub- 
>> class of TestSupport) is defined in.
>>         String path = getClass().getProtectionDomain 
>> ().getCodeSource().getLocation().getFile();
>>
>>         // We expect the file to be in target/test-classes, so go  
>> up 2 dirs
>>         dir = new File(path).getParentFile().getParentFile();
>>
>>         // Set ${basedir} which is needed by logging to initialize
>>         System.setProperty("basedir", dir.getPath());
>>     }
>>
>>     return dir;
>> }
>> </snip>
>>
>> Appears to work well too, in IDEA at least, probably works fine in  
>> Eclipse too... but I've got a ton of "Cannot nest output  
>> folder..." errors that prevent me from actually checking.
>>
>> --jason
>>
>>
>> On Aug 19, 2006, at 8:11 AM, Dain Sundstrom wrote:
>>
>>> I don't think that trick will work for an IDE, as it will only  
>>> tell you which directory the IDE started in.  In intellij you can  
>>> use something like this:
>>>
>>>     public static String baseDir() {
>>>         Class myClass = null; // TestClass.class
>>>
>>>         URL classUrl = myClass.getClassLoader().getResource 
>>> (myClass.getName().replace('.', '/') + ".class");
>>>         if (classUrl == null) {
>>>             throw new RuntimeException("Could not find TestClass");
>>>         }
>>>
>>>         File targetDir = null;
>>>         try {
>>>             URLConnection urlConnection = classUrl.openConnection();
>>>
>>>             if (urlConnection instanceof JarURLConnection) {
>>>                 JarURLConnection jarConnection =  
>>> (JarURLConnection) urlConnection;
>>>                 classUrl = jarConnection.getJarFileURL();
>>>
>>>                 targetDir = new File(new URI(classUrl.toString 
>>> ())).getParentFile();
>>>             } else {
>>>                 File classesDir = new File(new URI 
>>> (classUrl.toString())).getParentFile();
>>>                 for (char c : myClass.getName().toCharArray()) {
>>>                     if (c == '.') {
>>>                         classesDir = classesDir.getParentFile();
>>>                     }
>>>                 }
>>>             }
>>>         } catch (Exception e) {
>>>             log.debug("Could not determine classes installation  
>>> directory", e);
>>>         }
>>>
>>>         if (targetDir != null) {
>>>             File moduleDir = targetDir.getParentFile();
>>>             return moduleDir.getAbsolutePath();
>>>         } else {
>>>             return System.getProperty("basedir",  
>>> System.getProperty("user.dir"));
>>>         }
>>>
>>>     }
>>>
>>> Make sure to test this code, because I didn't :)
>>>
>>> -dain
>>>
>>>
>>> On Aug 18, 2006, at 4:47 PM, Jason Dillon wrote:
>>>
>>>> Ya, I will add that as soon as I can verify that it works in  
>>>> IDEA an Eclipse... probably sometime next week.
>>>>
>>>> --jason
>>>>
>>>>
>>>> On Aug 18, 2006, at 4:31 PM, Gianny Damour wrote:
>>>>
>>>>> On 19/08/2006, at 9:15 AM, jdillon@apache.org wrote:
>>>>>
>>>>>> Author: jdillon
>>>>>> Date: Fri Aug 18 16:15:53 2006
>>>>>> New Revision: 432773
>>>>>>
>>>>>> URL: http://svn.apache.org/viewvc?rev=432773&view=rev
>>>>>> Log:
>>>>>> Comments about BASEDIR and IDE magic
>>>>>>
>>>>>> Modified:
>>>>>>     geronimo/trunk/modules/geronimo-testsupport/src/main/java/ 
>>>>>> org/apache/geronimo/testsupport/TestSupport.java
>>>>>>
>>>>>> Modified: geronimo/trunk/modules/geronimo-testsupport/src/main/ 
>>>>>> java/org/apache/geronimo/testsupport/TestSupport.java
>>>>>> URL: http://svn.apache.org/viewvc/geronimo/trunk/modules/ 
>>>>>> geronimo-testsupport/src/main/java/org/apache/geronimo/ 
>>>>>> testsupport/TestSupport.java? 
>>>>>> rev=432773&r1=432772&r2=432773&view=diff
>>>>>> =================================================================

>>>>>> =============
>>>>>> --- geronimo/trunk/modules/geronimo-testsupport/src/main/java/ 
>>>>>> org/apache/geronimo/testsupport/TestSupport.java (original)
>>>>>> +++ geronimo/trunk/modules/geronimo-testsupport/src/main/java/ 
>>>>>> org/apache/geronimo/testsupport/TestSupport.java Fri Aug 18  
>>>>>> 16:15:53 2006
>>>>>> @@ -37,6 +37,12 @@
>>>>>>      private static final File BASEDIR;
>>>>>>
>>>>>>      static {
>>>>>> +        //
>>>>>> +        // TODO: Add some special magic here to figure this  
>>>>>> out when we are running from
>>>>>> +        //       and IDE, like IDEA or Eclipse.  user.dir/ 
>>>>>> target might work... but need
>>>>>> +        //       to validate what env each IDE has this set to.
>>>>>> +        //
>>>>>> +
>>>>>>          String tmp = System.getProperty("basedir");
>>>>>
>>>>> Hi Jason,
>>>>>
>>>>> This is the trick that Dain has suggested:
>>>>>
>>>>>     private static final tmp = System.getProperty("basedir",  
>>>>> System.getProperty("user.dir"));
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Gianny
>>>>>
>>>>>
>>>>>
>>>>>>          if (tmp == null) {
>>>>>>              throw new Error("Missing 'basedir' property;  
>>>>>> tests need this property set to run correctly");
>>>>>>
>>>>>>
>>>>>
>>>
>>
>


Mime
View raw message