<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 03:18:56 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MAGNOLIA-588] Refactoring vs JSF with Facelets vs Wicket</title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-588</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;Here we discuss the way we refactor the dialogs&lt;/p&gt;</description>
                <environment></environment>
        <key id="11191">MAGNOLIA-588</key>
            <summary>Refactoring vs JSF with Facelets vs Wicket</summary>
                <type id="5" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10896&amp;avatarType=issuetype">Sub-task</type>
                            <parent id="11190">MAGNOLIA-587</parent>
                                    <priority id="3" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="8">Outdated</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="pbaerfuss">Philipp B&#228;rfuss</reporter>
                        <labels>
                    </labels>
                <created>Mon, 31 Oct 2005 18:47:14 +0100</created>
                <updated>Tue, 3 Dec 2013 14:51:26 +0100</updated>
                            <resolved>Tue, 3 Dec 2013 14:51:26 +0100</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="11481" author="pbracher" created="Wed, 2 Nov 2005 10:44:05 +0100"  >&lt;p&gt;This is a very hard decission to take. Perhaps someone like to answer some of those questions:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Can one create dynamic dialogs (component hierarchy) in Wicket? I mean not based on templates but based on the configuration in the config repository&lt;/li&gt;
	&lt;li&gt;Can one save the data with Wicket in a dynamic way? There is no bean class for each paragraph defined in the config. Is there a way to solve that in Wicket? Perhaps using DynaBeans.&lt;/li&gt;
	&lt;li&gt;Has anyone used Facelets and thinks we should go for that?&lt;/li&gt;
	&lt;li&gt;Is someone offering some work or other support if we chose the one or the other solution? &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Refactoring would be a lesser effort for the core team where JSF would bring a standardized framework&lt;/p&gt;</comment>
                            <comment id="11506" author="janne" created="Wed, 2 Nov 2005 19:37:32 +0100"  >
&lt;p&gt;&amp;gt; - Can one create dynamic dialogs (component hierarchy) in Wicket? I mean not based on templates but based on the configuration in the config repository&lt;/p&gt;

&lt;p&gt;Yes, this can be done with Panels.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://wicket.sourceforge.net/apidocs/wicket/markup/html/panel/Panel.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://wicket.sourceforge.net/apidocs/wicket/markup/html/panel/Panel.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;gt; - Can one save the data with Wicket in a dynamic way? There is no bean class for each paragraph defined in the config. Is there a way to solve that in Wicket? Perhaps using DynaBeans. &lt;/p&gt;

&lt;p&gt;Yes, no problem.  This can be done with PropertyModels or custom Models.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.wicket-wiki.org.uk/wiki/index.php/Newuserguide#Property_models&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.wicket-wiki.org.uk/wiki/index.php/Newuserguide#Property_models&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;gt; - Is someone offering some work or other support if we chose the one or the other solution? &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; &lt;/p&gt;

&lt;p&gt;I have experience on both, Wicket and Magnolia internals and I could offer some help.&lt;/p&gt;</comment>
                            <comment id="11511" author="pbracher" created="Thu, 3 Nov 2005 10:16:48 +0100"  >&lt;p&gt;First of all: thanks for offering help. To make magnolia 3.0 real we will need experienced developers taking there parts.&lt;/p&gt;

&lt;p&gt;Reading your comment I think we should take the option to use Wicket more serious since it is better following the principle of simplicity than JSF does. I will read myself a little bit deeper into the docs.&lt;/p&gt;

&lt;p&gt;Are there any ideas how spread this technology currently is and will be in the future.&lt;/p&gt;

&lt;p&gt;Philipp Bracher &lt;/p&gt;</comment>
                            <comment id="11515" author="janne" created="Thu, 3 Nov 2005 11:27:16 +0100"  >&lt;p&gt;&amp;gt; Are there any ideas how spread this technology currently is and will be in the future. &lt;/p&gt;

&lt;p&gt;Wicket is still quite new project, but is developing and maturing fast. More and more developers are using it, and most important, like it. &lt;/p&gt;

&lt;p&gt;Weakest part of Wicket is still the documentation, but .API is clean and community support is great, so there should not be problems with that.&lt;/p&gt;

&lt;p&gt;Janne Hietam&#228;ki&lt;/p&gt;
</comment>
                            <comment id="11591" author="pbracher" created="Fri, 9 Dec 2005 09:20:39 +0100"  >&lt;p&gt;I would go for Wicket. This follows the concept of simplicity and gives us the best benefit. I do not have a proper reason, but a good feeling. With some help of the comunity we could do it soon.&lt;/p&gt;</comment>
                            <comment id="11594" author="ferris" created="Fri, 9 Dec 2005 09:51:33 +0100"  >&lt;p&gt;To attract the largest number of developers and users, I think we should either use the de facto web framework (which does not exist above JSP at current time), or make the web layer pluggable.&lt;/p&gt;

&lt;p&gt;Is it possible to use different web frameworks at the same time based on file extension and configuration? Template folder would look like this:&lt;br/&gt;
/templates/jsp&lt;br/&gt;
/templates/servlets&lt;br/&gt;
/templates/wicket&lt;br/&gt;
/templates/jsf&lt;br/&gt;
/templates/portlets&lt;br/&gt;
/templates/...&lt;/p&gt;

&lt;p&gt;Etc.. Sounds very complicated without having thought too much about it, but would definitely be grand if users could choose themselves. Choice of web frameworks is so disputed (and things will change a lot more in the next years, I guess).&lt;/p&gt;</comment>
                            <comment id="11595" author="kraft" created="Fri, 9 Dec 2005 10:17:38 +0100"  >&lt;p&gt;The templating will stay as JSP - wicket was proposed only for the rendering of the admin GUI (dialogs)&lt;/p&gt;

&lt;p&gt;Your idea of  allowing different kits for rendering is cool on one hand, on the other it will fragment the community (just imagine everybody is giving his examples in a different language!). For simple html templating I&apos;d rather have smarter tags so that the JSP in general is HTML plus tags - easy enough so that any html dev can make sense of it. (but that should go to another thread).&lt;/p&gt;</comment>
                            <comment id="11626" author="pbracher" created="Thu, 12 Jan 2006 12:18:15 +0100"  >&lt;p&gt;Ugh ... finally I came to a conclusion: we use JSF!&lt;/p&gt;

&lt;p&gt;Ok, I have to explain this a little. First I must mention after looking at Wicket I look at wicket as a realy nice framework. But JSF is better known and a lot of resources  (components, developers, documentation, ...) are available. It is also better useable in JSP contexts what is important since the templating is still pure JSP. Therefore I think that magnolia will benefit more from a JSF implementation.&lt;/p&gt;

&lt;p&gt;I walked deep in the JSF forest (a little afraid) finding a clearing called Facelets. Never else it was not what I was looking for (after knowing wicket), but I realized how easy JSF could be by dumping the JSP part.&lt;/p&gt;

&lt;p&gt;Inspired by Facelets I made a custom ViewHandler and added templated components (using freemarker) and I ended up with what I liked:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the view tree is builded programmatically (like wicket -&amp;gt; the controls are instantiate and configured in the code and afterward passed to the templates)&lt;/li&gt;
	&lt;li&gt;the controls are templated (make the source readable and ready for changes)&lt;/li&gt;
	&lt;li&gt;everything provided from JSF (controls, validation, statemanagement, ..) is still working&lt;/li&gt;
	&lt;li&gt;since the root node is a page object the controls can provide javascripts and css to it&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I will pack this into a independent magnolia-jsf module on which the new interface can rely on.&lt;/p&gt;
</comment>
                            <comment id="74930" author="pbaerfuss" created="Tue, 3 Dec 2013 14:51:26 +0100"  >&lt;p&gt;We use Vaadin since M5.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>woowai.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 2 Nov 2005 10:44:05 +0100</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ajones</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            10 years, 11 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>kraft</customfieldvalue>
            <customfieldvalue>janne</customfieldvalue>
            <customfieldvalue>pbaerfuss</customfieldvalue>
            <customfieldvalue>pbracher</customfieldvalue>
            <customfieldvalue>ferris</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02e47:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14024</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>