[forge-dev] Hello World Template

George Gastaldi ggastald at redhat.com
Mon Mar 31 15:10:09 EDT 2014


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> 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>:
>> 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> 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>:
>>>> 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> 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>:
>>>>>> 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> 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>:
>>>>>>>> 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> 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>:
>>>>>>>>> 
>>>>>>>>>> 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>:
>>>>>>>>>> 
>>>>>>>>>>> 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> 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>:
>>>>>>>>>>>>> Why it doesn't work? Is any exception being thrown?
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Em 30/03/2014, às 17:14, Antonio Goncalves <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>:
>>>>>>>>>>>>>>> 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> 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 | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>> Antonio Goncalves 
>>>>>>>>>>>>>> Software architect and Java Champion
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>>> 
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> -- 
>>>>>>>>>>>> Antonio Goncalves 
>>>>>>>>>>>> Software architect and Java Champion
>>>>>>>>>>>> 
>>>>>>>>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>> 
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> -- 
>>>>>>>>>> Antonio Goncalves 
>>>>>>>>>> Software architect and Java Champion
>>>>>>>>>> 
>>>>>>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> Antonio Goncalves 
>>>>>>>>> Software architect and Java Champion
>>>>>>>>> 
>>>>>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> forge-dev mailing list
>>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>> 
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> forge-dev mailing list
>>>>>>>> forge-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> Antonio Goncalves 
>>>>>>> Software architect and Java Champion
>>>>>>> 
>>>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>>> _______________________________________________
>>>>>>> forge-dev mailing list
>>>>>>> forge-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>> 
>>>>>> _______________________________________________
>>>>>> forge-dev mailing list
>>>>>> forge-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Antonio Goncalves 
>>>>> Software architect and Java Champion
>>>>> 
>>>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>> _______________________________________________
>>>>> forge-dev mailing list
>>>>> forge-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>> 
>>>> _______________________________________________
>>>> forge-dev mailing list
>>>> forge-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>> 
>>> 
>>> 
>>> -- 
>>> Antonio Goncalves 
>>> Software architect and Java Champion
>>> 
>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>> 
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
> 
> 
> 
> -- 
> Antonio Goncalves 
> Software architect and Java Champion
> 
> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140331/061cc12d/attachment-0001.html 


More information about the forge-dev mailing list