You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Yuci Gou <yg...@gmail.com> on 2012/11/25 23:09:58 UTC

Is wicket-cdi native to Wicket 6.1 and upwards?

Just read the article - Status of wicket-cdi Module at
https://www.42lines.net/2012/09/11/status-of-wicket-cdi-module/.

Wonder if wicket-cdi is part of Wicket 6.1 release and upwards. I tried a
simple Wicket 6.3 application running in TomEE, but could not get the CDI
injection to work. These are the steps I used:

1. Create a Wicket project with Maven (according to
http://wicket.apache.org/start/quickstart.html)

mvn archetype:generate -DarchetypeGroupId=org.apache.wicket
-DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=6.3.0
-DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=
https://repository.apache.org/ -DinteractiveMode=false

2. Generate the eclipse configuration files
mvn eclipse:eclipse -Dwtpversion=2.0

(Note: Following steps are based on the tutorial on Youtube:
http://www.youtube.com/watch?v=Lr8pxEACVRI)
3. In folder src/main/webapp/WEB-INF, create file beans.xml
(Also in folder src/main/webapp/META-INF, create file beans.xml, according
to the explanation for this example:
http://tomee.apache.org/examples-trunk/cdi-basic/README.html, and also
src/main/resources/META-INF/beans.xml just in case)

4. Create a POJO
public class Faculty {
    private List<String> facultyMembers;
    private String facultyName;

    @PostConstruct
    public void initialize() {
        this.facultyMembers = new ArrayList<String>();
        facultyMembers.add("Ian Schultz");
        facultyMembers.add("Diane Reyes");
        facultyName = "Computer Science";
    }

    public List<String> getFacultyMembers() {
        return facultyMembers;
    }

    public String getFacultyName() {
        return facultyName;
    }
}

5. Inject the POJO in HomePage.java and display it.
public class HomePage extends WebPage {
        private static final long serialVersionUID = 1L;

        @Inject
        private Faculty faculty;

        public HomePage(final PageParameters parameters) {
                super(parameters);

                if (faculty != null) {
                        add(new Label("cdi", faculty.getFacultyName()));
                } else {
                        add(new Label("cdi", "Not working!"));
                }
    }
}

Note, class HomePage is the class for the Wicket homepage, as specified
below:
public class WicketApplication extends WebApplication
{
        /**
         * @see org.apache.wicket.Application#getHomePage()
         */
        @Override
        public Class<? extends WebPage> getHomePage()
        {
                return HomePage.class;
        }
}

These are the steps I tried, but when running, "Not working!" is displayed
on the home page. I debugged it and confirmed that faculty is null, which
means not injected.

Many thanks for your kind help!

Yuci

Re: Is wicket-cdi native to Wicket 6.1 and upwards?

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

Take a look at the sources of
http://www.wicket-library.com/wicket-examples-6.0.x/cdi/ application.
Especially in its WebApplication class.


On Sun, Nov 25, 2012 at 11:09 PM, Yuci Gou <yg...@gmail.com> wrote:

> Just read the article - Status of wicket-cdi Module at
> https://www.42lines.net/2012/09/11/status-of-wicket-cdi-module/.
>
> Wonder if wicket-cdi is part of Wicket 6.1 release and upwards. I tried a
> simple Wicket 6.3 application running in TomEE, but could not get the CDI
> injection to work. These are the steps I used:
>
> 1. Create a Wicket project with Maven (according to
> http://wicket.apache.org/start/quickstart.html)
>
> mvn archetype:generate -DarchetypeGroupId=org.apache.wicket
> -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=6.3.0
> -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=
> https://repository.apache.org/ -DinteractiveMode=false
>
> 2. Generate the eclipse configuration files
> mvn eclipse:eclipse -Dwtpversion=2.0
>
> (Note: Following steps are based on the tutorial on Youtube:
> http://www.youtube.com/watch?v=Lr8pxEACVRI)
> 3. In folder src/main/webapp/WEB-INF, create file beans.xml
> (Also in folder src/main/webapp/META-INF, create file beans.xml, according
> to the explanation for this example:
> http://tomee.apache.org/examples-trunk/cdi-basic/README.html, and also
> src/main/resources/META-INF/beans.xml just in case)
>
> 4. Create a POJO
> public class Faculty {
>     private List<String> facultyMembers;
>     private String facultyName;
>
>     @PostConstruct
>     public void initialize() {
>         this.facultyMembers = new ArrayList<String>();
>         facultyMembers.add("Ian Schultz");
>         facultyMembers.add("Diane Reyes");
>         facultyName = "Computer Science";
>     }
>
>     public List<String> getFacultyMembers() {
>         return facultyMembers;
>     }
>
>     public String getFacultyName() {
>         return facultyName;
>     }
> }
>
> 5. Inject the POJO in HomePage.java and display it.
> public class HomePage extends WebPage {
>         private static final long serialVersionUID = 1L;
>
>         @Inject
>         private Faculty faculty;
>
>         public HomePage(final PageParameters parameters) {
>                 super(parameters);
>
>                 if (faculty != null) {
>                         add(new Label("cdi", faculty.getFacultyName()));
>                 } else {
>                         add(new Label("cdi", "Not working!"));
>                 }
>     }
> }
>
> Note, class HomePage is the class for the Wicket homepage, as specified
> below:
> public class WicketApplication extends WebApplication
> {
>         /**
>          * @see org.apache.wicket.Application#getHomePage()
>          */
>         @Override
>         public Class<? extends WebPage> getHomePage()
>         {
>                 return HomePage.class;
>         }
> }
>
> These are the steps I tried, but when running, "Not working!" is displayed
> on the home page. I debugged it and confirmed that faculty is null, which
> means not injected.
>
> Many thanks for your kind help!
>
> Yuci
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Re: Is wicket-cdi native to Wicket 6.1 and upwards?

Posted by Andrea Del Bene <a....@abanet.it>.
Hi,

If you are using Wicket with a Tomcat-based server like TomEE maybe you 
could find helpful my example project on integrating OpenEJB and Wicket: 
https://github.com/bitstorm/Wicket-tutorial-examples/tree/master/CdiInjectionExample.


> Hey,
>
> http://devlearnings.wordpress.com/2011/05/15/apache-openwebbeans-cdi-from-standalone-to-webapp/
> http://docs.jboss.org/weld/reference/1.0.1-Final/en-US/html/environments.html
> - this is for jboss, but there's something for using it in tomcat as
> well, and it's possible to replace weld-related stuff with
> openwebbeans
>
> Most of solutions I found are using Weld, but you actually don't need
> it. You can use Openwebbeans (tomee) as well, as Igor states out:
> http://web.archiveorange.com/archive/v/t3xmoyfvrPfZN7bZZbeB
>
> I'm not using maven since it made me feel from time to time loosing
> control, but it should work. I added some libraries (to tomcat/lib),
> added some code to HomePage.java and all was fine. Making it work for
> wicket WebSessions as well was a little harder, but I had it solved
> (thanks to this mailing list), so you might check out the recent
> archives of this list
> (http://wicket-users.markmail.org/search/?q=injector.get%28%29). I
> posted most of my code yesterday (to solve the issue with injection in
> WebSession). I can send the configurations this afternoon - it's
> morning now - and check how it made it work with tomee.
>
> Kurt
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Is wicket-cdi native to Wicket 6.1 and upwards?

Posted by Kurt Sys <ku...@gmail.com>.
Hey,

http://devlearnings.wordpress.com/2011/05/15/apache-openwebbeans-cdi-from-standalone-to-webapp/
http://docs.jboss.org/weld/reference/1.0.1-Final/en-US/html/environments.html
- this is for jboss, but there's something for using it in tomcat as
well, and it's possible to replace weld-related stuff with
openwebbeans

Most of solutions I found are using Weld, but you actually don't need
it. You can use Openwebbeans (tomee) as well, as Igor states out:
http://web.archiveorange.com/archive/v/t3xmoyfvrPfZN7bZZbeB

I'm not using maven since it made me feel from time to time loosing
control, but it should work. I added some libraries (to tomcat/lib),
added some code to HomePage.java and all was fine. Making it work for
wicket WebSessions as well was a little harder, but I had it solved
(thanks to this mailing list), so you might check out the recent
archives of this list
(http://wicket-users.markmail.org/search/?q=injector.get%28%29). I
posted most of my code yesterday (to solve the issue with injection in
WebSession). I can send the configurations this afternoon - it's
morning now - and check how it made it work with tomee.

Kurt

2012/11/25 Yuci Gou <yg...@gmail.com>:
> Just read the article - Status of wicket-cdi Module at
> https://www.42lines.net/2012/09/11/status-of-wicket-cdi-module/.
>
> Wonder if wicket-cdi is part of Wicket 6.1 release and upwards. I tried a
> simple Wicket 6.3 application running in TomEE, but could not get the CDI
> injection to work. These are the steps I used:
>
> 1. Create a Wicket project with Maven (according to
> http://wicket.apache.org/start/quickstart.html)
>
> mvn archetype:generate -DarchetypeGroupId=org.apache.wicket
> -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=6.3.0
> -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=
> https://repository.apache.org/ -DinteractiveMode=false
>
> 2. Generate the eclipse configuration files
> mvn eclipse:eclipse -Dwtpversion=2.0
>
> (Note: Following steps are based on the tutorial on Youtube:
> http://www.youtube.com/watch?v=Lr8pxEACVRI)
> 3. In folder src/main/webapp/WEB-INF, create file beans.xml
> (Also in folder src/main/webapp/META-INF, create file beans.xml, according
> to the explanation for this example:
> http://tomee.apache.org/examples-trunk/cdi-basic/README.html, and also
> src/main/resources/META-INF/beans.xml just in case)
>
> 4. Create a POJO
> public class Faculty {
>     private List<String> facultyMembers;
>     private String facultyName;
>
>     @PostConstruct
>     public void initialize() {
>         this.facultyMembers = new ArrayList<String>();
>         facultyMembers.add("Ian Schultz");
>         facultyMembers.add("Diane Reyes");
>         facultyName = "Computer Science";
>     }
>
>     public List<String> getFacultyMembers() {
>         return facultyMembers;
>     }
>
>     public String getFacultyName() {
>         return facultyName;
>     }
> }
>
> 5. Inject the POJO in HomePage.java and display it.
> public class HomePage extends WebPage {
>         private static final long serialVersionUID = 1L;
>
>         @Inject
>         private Faculty faculty;
>
>         public HomePage(final PageParameters parameters) {
>                 super(parameters);
>
>                 if (faculty != null) {
>                         add(new Label("cdi", faculty.getFacultyName()));
>                 } else {
>                         add(new Label("cdi", "Not working!"));
>                 }
>     }
> }
>
> Note, class HomePage is the class for the Wicket homepage, as specified
> below:
> public class WicketApplication extends WebApplication
> {
>         /**
>          * @see org.apache.wicket.Application#getHomePage()
>          */
>         @Override
>         public Class<? extends WebPage> getHomePage()
>         {
>                 return HomePage.class;
>         }
> }
>
> These are the steps I tried, but when running, "Not working!" is displayed
> on the home page. I debugged it and confirmed that faculty is null, which
> means not injected.
>
> Many thanks for your kind help!
>
> Yuci

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org