[forge-dev] Hello World Template
George Gastaldi
ggastald at redhat.com
Mon Mar 31 13:19:29 EDT 2014
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140331/c76ad8ab/attachment-0001.html
More information about the forge-dev
mailing list