Problem accessing dependency resource via reflection in maven 2 plugin
----------------------------------------------------------------------

                 Key: MNG-3262
                 URL: http://jira.codehaus.org/browse/MNG-3262
             Project: Maven 2
          Issue Type: Bug
    Affects Versions: 2.0.7
            Reporter: Gary S. Weaver


I've written a Maven 2 mojo that is having trouble instantiating (via 
reflection) a properties resource of dependency that is included as a 
"compile"-scope dependency in the project (pom.xml) that is utilizing my plugin.

(Even though I need the plugin to access a dependency that is in "provided" 
scope, for now I'm using compile scope since the maven documentation states 
that @requiresDependencyResolution doesn't support provided scope.)

Here are the details:

1) I have the following dependency:

---start---
    <dependencies>
        <dependency>
            <groupId>com.atlassian.confluence</groupId>
            <artifactId>confluence</artifactId>
            <version>2.6.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
---end---

2) In the pom.xml of the project that utilizes my plugin, the mojo of the 
plugin I wrote is configured with the execution:

---start---
                    <execution>
                        <id>get_ConfluenceActionSupport.properties</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>extractProperties</goal>
                        </goals>
                        <configuration>
                            
<fullyQualifiedProperties>com.atlassian.confluence.core.ConfluenceActionSupport.properties</fullyQualifiedProperties>
                            
<outputFile>target/classes/com/atlassian/confluence/core/ConfluenceActionSupport.properties</outputFile>
                        </configuration>
                    </execution>
---end---

3) In the Maven 2 mojo it calls the following code (just copied/pasted the 
relevant portion):

---start---
        // load properties with reflection and save to file
        InputStream in = null;
        OutputStream out = null;

        boolean foundFile = false;
        try {
            String resource = cleanResourceName(fullyQualifiedProperties);
            System.out.println("Getting " + resource);
            in = getClass().getResourceAsStream (resource);
            if (in != null)
            {
                Properties result = new Properties();
                result.load (in); // Can throw IOException
                out = new BufferedOutputStream(new 
FileOutputStream(outputPathname));
                result.store(out, "");
                foundFile = true;
            }
        }
---end---

When executed, it can't find the properties file in the classloader. As you can 
see from the following output, I'm putting the resource string together 
correctly as 
"/com/atlassian/confluence/core/ConfluenceActionSupport.properties" which if 
you interrogate the above confluence dependency, you should be able to find.

---start---
[INFO] [i18nsanity-pt:extractProperties {execution: 
get_ConfluenceActionSupport.properties}]
[INFO] Extracting properties file from classpath... 
fullyQualifiedProperties=com.atlassian.confluence.core.ConfluenceActionSupport.properties
 
outputFile=/usr/svn/community/confluence/plugins/americanenglishlanguagepack/trunk/target/classes/com/atlassian/confluence/core/ConfluenceActionSupport.properties
Getting /com/atlassian/confluence/core/ConfluenceActionSupport.properties
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed properties extraction!

Embedded error: Could not find properties file on classpath: 
com.atlassian.confluence.core.ConfluenceActionSupport.properties
---end---

Thanks!



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to