So, no answers ? no solutions ? nobdoy tried to do the same thing ? :( On Tue, Jul 20, 2010 at 10:27 AM, anis chaaba <anis.cha...@gmail.com> wrote:
> *Attachement does not work so here are my sources.* > * > * > *package bundle.plugin;* > * > * > */** > * * Copyright 2001-2005 The Apache Software Foundation.* > * ** > * * Licensed under the Apache License, Version 2.0 (the "License");* > * * you may not use this file except in compliance with the License.* > * * You may obtain a copy of the License at* > * ** > * * http://www.apache.org/licenses/LICENSE-2.0* > * ** > * * Unless required by applicable law or agreed to in writing, software* > * * distributed under the License is distributed on an "AS IS" BASIS,* > * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied.* > * * See the License for the specific language governing permissions and* > * * limitations under the License.* > * */* > * > * > *import java.io.File;* > *import java.lang.reflect.Method;* > *import java.net.URL;* > *import java.net.URLClassLoader;* > *import java.util.ArrayList;* > *import java.util.List;* > *import java.util.ResourceBundle;* > * > * > *import org.apache.maven.plugin.AbstractMojo;* > *import org.apache.maven.plugin.MojoExecutionException;* > *import org.apache.maven.project.MavenProject;* > * > * > */*** > * * Goal which touches a timestamp file.* > * * * > * * @goal exec* > * * * > * * @phase process-sources* > * * * > * * @requiresProject true* > * */* > *public class MyMojo extends AbstractMojo* > *{* > * /*** > * * @parameter expression="${project}* > * */* > * private MavenProject project;* > * > * > * /*** > * * <i>Maven Internal</i>: List of artifacts for the plugin.* > * * * > * * @parameter expression="${plugin.artifacts}"* > * * @requiresDependencyResolution compile* > * * @required* > * * @readonly* > * */* > * protected List pluginClasspathList;* > * * > * /*** > * * This is where the generated java sources are stored.* > * * * > * * @parameter > expression="${project.build.directory}/jasperreports/java"* > * */* > * private File javaDirectory;* > * * > * /*** > * * Any additional classpath entry you might want to add to the > JasperReports compiler. Not recommended for general* > * * use, plugin dependencies should be used instead.* > * * * > * * @parameter* > * */* > * private String additionalClasspath;* > * > * > * /*** > * * @parameter expression="${project.compileClasspathElements}"* > * */* > * private List classpathElements;* > * > * > * public void execute() throws MojoExecutionException* > * {* > * > * > * StringBuilder classpath = new > StringBuilder(System.getProperty("java.class.path", ""));* > * classpath.append("${plugin.artifacts}");* > * System.setProperty("java.class.path", classpath.toString());* > * getLog().info("********++++++++++++++++*************");* > * getLog().info(System.getProperty("java.class.path"));* > * ClassLoader classLoader = > getClassLoader(ClassLoader.getSystemClassLoader());* > * Thread.currentThread().setContextClassLoader(classLoader);* > * * > * getLog().info("project " + javaDirectory);* > * project.addCompileSourceRoot(javaDirectory.getAbsolutePath());* > * try* > * {* > * Class ress = > classLoader.loadClass(ResourceBundle.class.getName());* > * // getMethod( "run", List.class,* > * Method getB = ress.getMethod("getBundle", new Class[] > {String.class});* > * ResourceBundle bundle = (ResourceBundle) getB.invoke(null, > new Object[] {"localisations"});* > * getLog().info(bundle.getString("appli.web.root"));* > * }* > * * > * catch (Exception e)* > * {* > * e.printStackTrace();* > * }* > * * > * // ResourceBundle bundle = > ResourceBundle.getBundle("localisations");* > * * > * }* > * * > * private ClassLoader getClassLoader(ClassLoader classLoader) throws > MojoExecutionException* > * {* > * List classpathURLs = new ArrayList();* > * > * > * for (int i = 0; i < classpathElements.size(); i++)* > * {* > * String element = (String) classpathElements.get(i);* > * try* > * {* > * getLog().info("classpathElements " + element);* > * File f = new File(element);* > * URL newURL = f.toURI().toURL();* > * classpathURLs.add(newURL);* > * getLog().debug("Added to classpath " + element);* > * }* > * catch (Exception e)* > * {* > * throw new MojoExecutionException("Error parsing classparh > " + element + " " + e.getMessage());* > * }* > * }* > * > * > * if (additionalClasspath != null && additionalClasspath.length() > > 0)* > * {* > * String[] elements = > additionalClasspath.split(File.pathSeparator);* > * for (int i = 0; i < elements.length; i++)* > * {* > * String element = elements[i];* > * try* > * {* > * File f = new File(element);* > * URL newURL = f.toURI().toURL();* > * classpathURLs.add(newURL);* > * getLog().debug("Added to classpath " + element);* > * }* > * catch (Exception e)* > * {* > * throw new MojoExecutionException("Error parsing > classpath " + additionalClasspath + " "* > * + e.getMessage());* > * }* > * }* > * }* > * > * > * URL[] urls = (URL[]) classpathURLs.toArray(new > URL[classpathURLs.size()]);* > * return new URLClassLoader(urls, classLoader);* > * }* > *}* > > > and the pom of my artifact > > *<plugin>* > * **<groupId>bundle.plugin</groupId>* > * **<artifactId>test-bundle-plugin</artifactId>* > * **<version>1.0-SNAPSHOT</version>* > * **<configuration>* > * **<javaDirectory>${project.build.sourceDirectory}</javaDirectory>* > * ** > <classpathElements>${project.compileClasspathElements}</classpathElements> > * > * **</configuration>* > * **<executions>* > * **<execution>* > * > * > * **<phase>compile</phase>* > * **<goals>* > * **<goal>exec</goal>* > * **</goals>* > * **<inherited>false</inherited>* > * **<configuration>* > * **<javaDirectory>src/main/java</javaDirectory>* > * ** > <classpathElements>${project.compileClasspathElements}</classpathElements> > * > * **</configuration>* > * **</execution>* > * **</executions>* > * **</plugin>.* > * > * > Thanks in advance :) > > On Tue, Jul 20, 2010 at 10:19 AM, anis chaaba <anis.cha...@gmail.com>wrote: > >> And now ? >> >> >> On Mon, Jul 19, 2010 at 10:16 PM, Anders Hammar <and...@hammar.net>wrote: >> >>> No projects were attached... >>> >>> /Anders >>> >>> On Mon, Jul 19, 2010 at 11:42, anis chaaba <anis.cha...@gmail.com> >>> wrote: >>> >>> > Hello everybody, >>> > What can I do to make my plugin use ressources of the project running >>> into >>> > it ? >>> > My test projects are attached to this mail. >>> > When executing the goal of my plugin i get >>> > java.util.MissingResourceException: Can't find bundle for base name >>> > localisations, locale fr_FR >>> > at >>> > >>> java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521) >>> > at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260) >>> > at java.util.ResourceBundle.getBundle(ResourceBundle.java:715) >>> > at bundle.plugin.MyMojo.execute(MyMojo.java:69) >>> > at >>> > >>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) >>> > at >>> > >>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) >>> > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) >>> > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) >>> > at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) >>> > at >>> > org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) >>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> > at >>> > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> > at >>> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> > at java.lang.reflect.Method.invoke(Method.java:597) >>> > at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) >>> > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) >>> > at >>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) >>> > at org.codehaus.classworlds.Launcher.main(Launcher.java:375). >>> > Thanks in advance. >>> > >>> > >>> > --------------------------------------------------------------------- >>> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org >>> > For additional commands, e-mail: users-h...@maven.apache.org >>> > >>> >> >> >