[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