[ http://jira.codehaus.org/browse/MNG-3262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Bentmann closed MNG-3262. ---------------------------------- Resolution: Not A Bug Fix Version/s: (was: 3.0-alpha-8) Assignee: Benjamin Bentmann Project dependencies by design never contribute to the plugin class loader. Instead, plugins can query the project dependencies and create a class loader on their own. > Problem accessing dependency resource via reflection in maven 2 plugin > ---------------------------------------------------------------------- > > Key: MNG-3262 > URL: http://jira.codehaus.org/browse/MNG-3262 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Plugins and Lifecycle > Affects Versions: 2.0.7 > Reporter: Gary S. Weaver > Assignee: Benjamin Bentmann > Attachments: trunk-exampleproject.tgz, trunk-i18nsanity-pt.tgz > > > 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