[forge-dev] Hello World Template

George Gastaldi ggastald at redhat.com
Mon Mar 31 16:10:25 EDT 2014


Have you tried setting up your project like:

https://gist.github.com/gastaldi/9741889 ?


On 31-03-2014 16:51, Antonio Goncalves wrote:
> Hum....
>
> Yes, I ran the Furnace Maven plugin, endup with several folders, run 
> my Main class...  and same old :
>
> ContainerException: No services of type 
> [org.jboss.forge.addon.resource.ResourceFactory] could be found in any 
> started addons
>
> I just want to use templating out of the box on a Main class (for my 
> Tools in Action at Devoxx)... Any easy "Hello World" with the right 
> pom.xml and steps ? Looks like I'm not far... but...
>
>
> 2014-03-31 21:10 GMT+02:00 George Gastaldi <ggastald at redhat.com 
> <mailto:ggastald at redhat.com>>:
>
>     It should contain several folders, one for each available addon.
>     Run the furnace-maven-plugin again
>
>     Em 31/03/2014, às 16:06, Antonio Goncalves
>     <antonio.mailing at gmail.com <mailto:antonio.mailing at gmail.com>>
>     escreveu:
>
>>     There is just an empty installed.xml file ?!?!? What is expected
>>     in this folder ?
>>
>>
>>
>>
>>     2014-03-31 19:42 GMT+02:00 George Gastaldi <ggastald at redhat.com
>>     <mailto:ggastald at redhat.com>>:
>>
>>         Check if your target/addons folder contains the deployed
>>         addons structure. It should have been created by the
>>         furnace-maven-plugin
>>
>>         Em 31/03/2014, às 14:39, Antonio Goncalves
>>         <antonio.mailing at gmail.com
>>         <mailto:antonio.mailing at gmail.com>> escreveu:
>>
>>>         Grrr....
>>>
>>>         ContainerException: No services of type
>>>         [org.jboss.forge.addon.resource.ResourceFactory] could be
>>>         found in any started addons.
>>>
>>>         Here is the code, I might be doing something wrong.... but I
>>>         don't know what else to do now
>>>
>>>
>>>         https://github.com/agoncal/agoncal-sample-forge/blob/master/03-template/src/main/java/org/agoncal/sample/forge/template/RestEndpoint.java
>>>
>>>
>>>
>>>         2014-03-31 19:19 GMT+02:00 George Gastaldi
>>>         <ggastald at redhat.com <mailto:ggastald at redhat.com>>:
>>>
>>>             Oh, sorry, my fault. It should be:
>>>             furnace.getAddonRegistry().getServices(ResourceFactory.class).get();
>>>
>>>
>>>             Em 31/03/2014, às 14:11, Antonio Goncalves
>>>             <antonio.mailing at gmail.com
>>>             <mailto:antonio.mailing at gmail.com>> escreveu:
>>>
>>>>             If I do the following, it doesn't work :
>>>>
>>>>             ResourceFactory resourceFactory =
>>>>             furnace.getAddonRegistry(ResourceFactory.*class*).get();
>>>>             TemplateProcessorFactory factory =
>>>>             furnace.getAddonRegistry(TemplateProcessorFactory.*class*).get();
>>>>
>>>>             That because the method getAddonRegistry takes a
>>>>             AddonRepository.
>>>>
>>>>
>>>>             Any idea ?
>>>>
>>>>
>>>>
>>>>
>>>>             2014-03-31 16:00 GMT+02:00 George Gastaldi
>>>>             <ggastald at redhat.com <mailto:ggastald at redhat.com>>:
>>>>
>>>>                 Antonio,
>>>>
>>>>                 main() methods are not managed  by Furnace, hence
>>>>                 why @Inject does not work. You need to fech these
>>>>                 services from the AddonRegistry:
>>>>
>>>>                 Eg:
>>>>                 furnace.getAddonRegistry(ResourceFactory.class).get()
>>>>
>>>>                 Em 31/03/2014, às 04:26, Antonio Goncalves
>>>>                 <antonio.mailing at gmail.com
>>>>                 <mailto:antonio.mailing at gmail.com>> escreveu:
>>>>
>>>>>                 Hum.... I just did this (starting Furnace in my
>>>>>                 main) :
>>>>>
>>>>>                 https://github.com/agoncal/agoncal-sample-forge/blob/master/03-template/src/main/java/org/agoncal/sample/forge/template/RestEndpoint.java
>>>>>
>>>>>                 But it doesn't work either.
>>>>>
>>>>>                 Any idea ?
>>>>>
>>>>>
>>>>>                 2014-03-30 23:58 GMT+02:00 Ivan St. Ivanov
>>>>>                 <ivan.st.ivanov at gmail.com
>>>>>                 <mailto:ivan.st.ivanov at gmail.com>>:
>>>>>
>>>>>                     Hi Antonio,
>>>>>
>>>>>                     As far as I can see, in your main class you
>>>>>                     are not inside the Furnace container, you are
>>>>>                     rather on you own. That is why nobody has
>>>>>                     injected you your dependencies.
>>>>>
>>>>>                     Cheers,
>>>>>                     Ivan
>>>>>
>>>>>
>>>>>                     On Sun, Mar 30, 2014 at 11:45 PM, Antonio
>>>>>                     Goncalves <antonio.mailing at gmail.com
>>>>>                     <mailto:antonio.mailing at gmail.com>> wrote:
>>>>>
>>>>>                         Here is my code. I think it's my
>>>>>                         dependencies that are not right, because
>>>>>                         *resourceFactory* is not injected so I get
>>>>>                         a NPE
>>>>>
>>>>>
>>>>>                         *public class *RestEndpoint {
>>>>>
>>>>>                         @Inject
>>>>>                         *private *TemplateProcessorFactory *factory*;
>>>>>
>>>>>                         @Inject
>>>>>                         ResourceFactory *resourceFactory*;
>>>>>
>>>>>
>>>>>                         *public static void *main(String[] args)
>>>>>                         *throws *IOException {
>>>>>                         *new *RestEndpoint().doIt();
>>>>>                             }
>>>>>
>>>>>                         *private void *doIt() *throws *IOException {
>>>>>                         Resource<URL> templateResource =
>>>>>                         *resourceFactory*.create(getClass().getResource(*"EndpointWithDTO.jv"*));
>>>>>                         Template template = *new
>>>>>                         *FreemarkerTemplate(templateResource); ///
>>>>>                         Mark this resource as a Freemarker template
>>>>>                         /TemplateProcessor processor =
>>>>>                         *factory*.fromTemplate(template);
>>>>>                         Map<String,Object> params = *new
>>>>>                         *HashMap<String,Object>(); ///Could be a
>>>>>                         POJO also.
>>>>>                         /params.put(*"name"*, *"JBoss Forge"*);
>>>>>                                 String output =
>>>>>                         processor.process(params); /// should
>>>>>                         return "Hello JBoss Forge".
>>>>>                         /System.*/out/*.println(output);
>>>>>                             }
>>>>>                         }
>>>>>
>>>>>
>>>>>
>>>>>                         2014-03-30 22:36 GMT+02:00 Antonio
>>>>>                         Goncalves <antonio.mailing at gmail.com
>>>>>                         <mailto:antonio.mailing at gmail.com>>:
>>>>>
>>>>>                             So it might be my pom.xml
>>>>>
>>>>>                             Where do you get @Inject from ? Just
>>>>>                             from javax.inject:javax.inject ? Wich
>>>>>                             Furnace dependencies do you need ?
>>>>>
>>>>>
>>>>>                             2014-03-30 22:31 GMT+02:00 George
>>>>>                             Gastaldi <ggastald at redhat.com
>>>>>                             <mailto:ggastald at redhat.com>>:
>>>>>
>>>>>                                 Your code should work, you can't
>>>>>                                 use @Inject outside Furnace
>>>>>                                 environment.  Not sure what's
>>>>>                                 going on, need to investigate a
>>>>>                                 little further
>>>>>
>>>>>                                 Em 30/03/2014, às 17:26, Antonio
>>>>>                                 Goncalves
>>>>>                                 <antonio.mailing at gmail.com
>>>>>                                 <mailto:antonio.mailing at gmail.com>> escreveu:
>>>>>
>>>>>>                                 Good old NPE ;o)
>>>>>>
>>>>>>                                 I'm not running the code into a
>>>>>>                                 container, so @Inject does not
>>>>>>                                 work. In the readme there is the
>>>>>>                                 addonRegistry method. In all the
>>>>>>                                 samples, the registery is
>>>>>>                                 injected... but how do I use all
>>>>>>                                 that with a good old Main ?
>>>>>>
>>>>>>
>>>>>>                                 2014-03-30 22:17 GMT+02:00 George
>>>>>>                                 Gastaldi <ggastald at redhat.com
>>>>>>                                 <mailto:ggastald at redhat.com>>:
>>>>>>
>>>>>>                                     Why it doesn't work? Is any
>>>>>>                                     exception being thrown?
>>>>>>
>>>>>>                                     Em 30/03/2014, às 17:14,
>>>>>>                                     Antonio Goncalves
>>>>>>                                     <antonio.mailing at gmail.com
>>>>>>                                     <mailto:antonio.mailing at gmail.com>>
>>>>>>                                     escreveu:
>>>>>>
>>>>>>>                                     Hum...
>>>>>>>
>>>>>>>                                     In the README there is :
>>>>>>>
>>>>>>>                                     @Inject private
>>>>>>>                                     TemplateProcessorFactory factory
>>>>>>>
>>>>>>>                                     But is there a way to use
>>>>>>>                                     the templating from a Main
>>>>>>>                                     class ? If I use Forge, I
>>>>>>>                                     have Furnace as a container,
>>>>>>>                                     and I was trying something
>>>>>>>                                     like this, but it doesn't
>>>>>>>                                     work :
>>>>>>>
>>>>>>>                                     Furnace furnace =
>>>>>>>                                     /startFurnace/();
>>>>>>>                                     Imported<TemplateProcessorFactory>
>>>>>>>                                     imported =
>>>>>>>                                     furnace.getAddonRegistry(TemplateProcessorFactory.*class*);
>>>>>>>                                     TemplateProcessorFactory
>>>>>>>                                     factory = imported.get();
>>>>>>>
>>>>>>>
>>>>>>>                                     Any simple Hello World from
>>>>>>>                                     a Main class and a pom.xml ?
>>>>>>>
>>>>>>>                                     Thanks
>>>>>>>                                     Antonio
>>>>>>>
>>>>>>>
>>>>>>>                                     2014-03-29 19:03 GMT+01:00
>>>>>>>                                     George Gastaldi
>>>>>>>                                     <ggastald at redhat.com
>>>>>>>                                     <mailto:ggastald at redhat.com>>:
>>>>>>>
>>>>>>>                                         Hi Antonio,
>>>>>>>
>>>>>>>                                         Roaster currently only
>>>>>>>                                         maintains a class
>>>>>>>                                         structure (add/remove
>>>>>>>                                         fields, methods,
>>>>>>>                                         interfaces,etc), not
>>>>>>>                                         code (method bodies) at
>>>>>>>                                         the moment.
>>>>>>>
>>>>>>>                                         There is a JIRA to allow
>>>>>>>                                         that though.
>>>>>>>
>>>>>>>                                         See the templates addon
>>>>>>>                                         README to learn how to
>>>>>>>                                         generate content from a
>>>>>>>                                         template.
>>>>>>>
>>>>>>>                                         Best Regards,
>>>>>>>
>>>>>>>                                         George Gastaldi
>>>>>>>
>>>>>>>                                         Em 29/03/2014, às 14:43,
>>>>>>>                                         Antonio Goncalves
>>>>>>>                                         <antonio.mailing at gmail.com
>>>>>>>                                         <mailto:antonio.mailing at gmail.com>>
>>>>>>>                                         escreveu:
>>>>>>>
>>>>>>>>                                         Hi all,
>>>>>>>>
>>>>>>>>                                         I'm starting to get a
>>>>>>>>                                         bit more confident with
>>>>>>>>                                         Roaster... and now I
>>>>>>>>                                         would like to add
>>>>>>>>                                         templating. If I'm
>>>>>>>>                                         right, Roaster is nice
>>>>>>>>                                         to add bits and pieces
>>>>>>>>                                         of Java here and there,
>>>>>>>>                                         but it's better to use
>>>>>>>>                                         Templates when there is
>>>>>>>>                                         a lot of code, and mix
>>>>>>>>                                         templating and Roaster
>>>>>>>>                                         for better code
>>>>>>>>                                         customization.
>>>>>>>>
>>>>>>>>                                         Is there a sample I
>>>>>>>>                                         could use to write a
>>>>>>>>                                         Hello Word ? A template
>>>>>>>>                                         with an "engine" that
>>>>>>>>                                         uses Roaster to add
>>>>>>>>                                         Java code to the template.
>>>>>>>>
>>>>>>>>                                         Thanks
>>>>>>>>
>>>>>>>>                                         -- 
>>>>>>>>                                         Antonio Goncalves
>>>>>>>>                                         Software architect and
>>>>>>>>                                         Java Champion
>>>>>>>>
>>>>>>>>                                         Web site
>>>>>>>>                                         <http://www.antoniogoncalves.org/> |
>>>>>>>>                                         Twitter
>>>>>>>>                                         <http://twitter.com/agoncal> |
>>>>>>>>                                         LinkedIn
>>>>>>>>                                         <http://www.linkedin.com/in/agoncal> |
>>>>>>>>                                         Paris JUG
>>>>>>>>                                         <http://www.parisjug.org/> |
>>>>>>>>                                         Devoxx France
>>>>>>>>                                         <http://www.devoxx.fr/>
>>>>>>>>                                         _______________________________________________
>>>>>>>>                                         forge-dev mailing list
>>>>>>>>                                         forge-dev at lists.jboss.org
>>>>>>>>                                         <mailto:forge-dev at lists.jboss.org>
>>>>>>>>                                         https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>
>>>>>>>                                         _______________________________________________
>>>>>>>                                         forge-dev mailing list
>>>>>>>                                         forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>>>>>>>                                         https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                                     -- 
>>>>>>>                                     Antonio Goncalves
>>>>>>>                                     Software architect and Java
>>>>>>>                                     Champion
>>>>>>>
>>>>>>>                                     Web site
>>>>>>>                                     <http://www.antoniogoncalves.org/> |
>>>>>>>                                     Twitter
>>>>>>>                                     <http://twitter.com/agoncal> |
>>>>>>>                                     LinkedIn
>>>>>>>                                     <http://www.linkedin.com/in/agoncal> |
>>>>>>>                                     Paris JUG
>>>>>>>                                     <http://www.parisjug.org/> |
>>>>>>>                                     Devoxx France
>>>>>>>                                     <http://www.devoxx.fr/>
>>>>>>>                                     _______________________________________________
>>>>>>>                                     forge-dev mailing list
>>>>>>>                                     forge-dev at lists.jboss.org
>>>>>>>                                     <mailto:forge-dev at lists.jboss.org>
>>>>>>>                                     https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>
>>>>>>                                     _______________________________________________
>>>>>>                                     forge-dev mailing list
>>>>>>                                     forge-dev at lists.jboss.org
>>>>>>                                     <mailto:forge-dev at lists.jboss.org>
>>>>>>                                     https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                                 -- 
>>>>>>                                 Antonio Goncalves
>>>>>>                                 Software architect and Java Champion
>>>>>>
>>>>>>                                 Web site
>>>>>>                                 <http://www.antoniogoncalves.org/> |
>>>>>>                                 Twitter
>>>>>>                                 <http://twitter.com/agoncal> |
>>>>>>                                 LinkedIn
>>>>>>                                 <http://www.linkedin.com/in/agoncal> |
>>>>>>                                 Paris JUG
>>>>>>                                 <http://www.parisjug.org/> |
>>>>>>                                 Devoxx France
>>>>>>                                 <http://www.devoxx.fr/>
>>>>>>                                 _______________________________________________
>>>>>>                                 forge-dev mailing list
>>>>>>                                 forge-dev at lists.jboss.org
>>>>>>                                 <mailto:forge-dev at lists.jboss.org>
>>>>>>                                 https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>
>>>>>                                 _______________________________________________
>>>>>                                 forge-dev mailing list
>>>>>                                 forge-dev at lists.jboss.org
>>>>>                                 <mailto:forge-dev at lists.jboss.org>
>>>>>                                 https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                             -- 
>>>>>                             Antonio Goncalves
>>>>>                             Software architect and Java Champion
>>>>>
>>>>>                             Web site
>>>>>                             <http://www.antoniogoncalves.org/> |
>>>>>                             Twitter <http://twitter.com/agoncal> |
>>>>>                             LinkedIn
>>>>>                             <http://www.linkedin.com/in/agoncal> |
>>>>>                             Paris JUG <http://www.parisjug.org/> |
>>>>>                             Devoxx France <http://www.devoxx.fr/>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                         -- 
>>>>>                         Antonio Goncalves
>>>>>                         Software architect and Java Champion
>>>>>
>>>>>                         Web site
>>>>>                         <http://www.antoniogoncalves.org/> |
>>>>>                         Twitter <http://twitter.com/agoncal> |
>>>>>                         LinkedIn
>>>>>                         <http://www.linkedin.com/in/agoncal> |
>>>>>                         Paris JUG <http://www.parisjug.org/> |
>>>>>                         Devoxx France <http://www.devoxx.fr/>
>>>>>
>>>>>                         _______________________________________________
>>>>>                         forge-dev mailing list
>>>>>                         forge-dev at lists.jboss.org
>>>>>                         <mailto:forge-dev at lists.jboss.org>
>>>>>                         https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>
>>>>>
>>>>>
>>>>>                     _______________________________________________
>>>>>                     forge-dev mailing list
>>>>>                     forge-dev at lists.jboss.org
>>>>>                     <mailto:forge-dev at lists.jboss.org>
>>>>>                     https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                 -- 
>>>>>                 Antonio Goncalves
>>>>>                 Software architect and Java Champion
>>>>>
>>>>>                 Web site <http://www.antoniogoncalves.org/> |
>>>>>                 Twitter <http://twitter.com/agoncal> | LinkedIn
>>>>>                 <http://www.linkedin.com/in/agoncal> | Paris JUG
>>>>>                 <http://www.parisjug.org/> | Devoxx France
>>>>>                 <http://www.devoxx.fr/>
>>>>>                 _______________________________________________
>>>>>                 forge-dev mailing list
>>>>>                 forge-dev at lists.jboss.org
>>>>>                 <mailto:forge-dev at lists.jboss.org>
>>>>>                 https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>
>>>>                 _______________________________________________
>>>>                 forge-dev mailing list
>>>>                 forge-dev at lists.jboss.org
>>>>                 <mailto:forge-dev at lists.jboss.org>
>>>>                 https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>
>>>>
>>>>
>>>>
>>>>             -- 
>>>>             Antonio Goncalves
>>>>             Software architect and Java Champion
>>>>
>>>>             Web site <http://www.antoniogoncalves.org/> | Twitter
>>>>             <http://twitter.com/agoncal> | LinkedIn
>>>>             <http://www.linkedin.com/in/agoncal> | Paris JUG
>>>>             <http://www.parisjug.org/> | Devoxx France
>>>>             <http://www.devoxx.fr/>
>>>>             _______________________________________________
>>>>             forge-dev mailing list
>>>>             forge-dev at lists.jboss.org
>>>>             <mailto:forge-dev at lists.jboss.org>
>>>>             https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>             _______________________________________________
>>>             forge-dev mailing list
>>>             forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>>>             https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>
>>>
>>>
>>>         -- 
>>>         Antonio Goncalves
>>>         Software architect and Java Champion
>>>
>>>         Web site <http://www.antoniogoncalves.org/> | Twitter
>>>         <http://twitter.com/agoncal> | LinkedIn
>>>         <http://www.linkedin.com/in/agoncal> | Paris JUG
>>>         <http://www.parisjug.org/> | Devoxx France
>>>         <http://www.devoxx.fr/>
>>>         _______________________________________________
>>>         forge-dev mailing list
>>>         forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>>>         https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>         _______________________________________________
>>         forge-dev mailing list
>>         forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>>         https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>>
>>
>>     -- 
>>     Antonio Goncalves
>>     Software architect and Java Champion
>>
>>     Web site <http://www.antoniogoncalves.org/> | Twitter
>>     <http://twitter.com/agoncal> | LinkedIn
>>     <http://www.linkedin.com/in/agoncal> | Paris JUG
>>     <http://www.parisjug.org/> | Devoxx France <http://www.devoxx.fr/>
>>     _______________________________________________
>>     forge-dev mailing list
>>     forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>>     https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
>
> -- 
> Antonio Goncalves
> Software architect and Java Champion
>
> Web site <http://www.antoniogoncalves.org/> | Twitter 
> <http://twitter.com/agoncal> | LinkedIn 
> <http://www.linkedin.com/in/agoncal> | Paris JUG 
> <http://www.parisjug.org/> | Devoxx France <http://www.devoxx.fr/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140331/e1c0ba55/attachment-0001.html 


More information about the forge-dev mailing list