Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Magnus Kvalheim
Just verified again with a simple form like this one:
http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html

=tml=
h2Selected type: ${type}/h2
t:zone t:id=formZone
t:form t:zone=^ t:id=radioForm

t:label for=type /:

 t:radiogroup t:id=type
 t:radio t:id=masterCard /
t:label for=masterCard /
t:radio t:id=visa /
 t:label for=visa /
t:radio t:id=amex /
t:label for=amex /
 t:radio t:id=dinersClub /
t:label for=dinersClub /
t:radio t:id=discover /
 t:label for=discover /
/t:radiogroup
 t:submit/

/t:form
/t:zone

=Java=
public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS, DINERS_CLUB,
DISCOVER}

@InjectComponent private Zone formZone;
@Inject private Request request;

@Property
@Persist
private CardType type;

public CardType getMasterCard() { return CardType.MASTER_CARD; }

public CardType getVisa() { return CardType.VISA; }

public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }

public CardType getDinersClub() { return CardType.DINERS_CLUB; }

public CardType getDiscover() { return CardType.DISCOVER; }

Object onSubmitFromRadioForm() {
return request.isXHR() ? formZone.getBody() : null;
}

=Request Form data=
t:zoneid:formZone
t:submit:[submit_19b3a276fbae1_0,submit_0]
t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
*type:MASTER_CARD*
*type:VISA*
*type:AMERICAN_EXPRESS*
*type:DINERS_CLUB*
*type:DISCOVER*

Looks like the forms.gatherParameters (forms.js) is adding all values -
and not just the checked one.

I'll create a JIRA.

magnus

On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim mag...@kvalheim.euwrote:

 Hi guys.

 Just notised a strange issue with radio ajax/zone submit. It submits all
 values - selected and not selected.

 - If I disable javascript - then it submits single value. Correct
 - If I remove form t:zone then it also submits fine. Correct

 If I enable t:zone then it submits all possible radio values.


 Please let me know if anyone can confirm.

 Thanks
 Magnus



Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Magnus Kvalheim
JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231

On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim mag...@kvalheim.eu wrote:

 Just verified again with a simple form like this one:

 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html

 =tml=
 h2Selected type: ${type}/h2
 t:zone t:id=formZone
 t:form t:zone=^ t:id=radioForm

 t:label for=type /:

  t:radiogroup t:id=type
  t:radio t:id=masterCard /
 t:label for=masterCard /
 t:radio t:id=visa /
  t:label for=visa /
 t:radio t:id=amex /
 t:label for=amex /
  t:radio t:id=dinersClub /
 t:label for=dinersClub /
 t:radio t:id=discover /
  t:label for=discover /
 /t:radiogroup
  t:submit/

 /t:form
 /t:zone

 =Java=
 public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS, DINERS_CLUB,
 DISCOVER}

 @InjectComponent private Zone formZone;
 @Inject private Request request;

 @Property
 @Persist
 private CardType type;

 public CardType getMasterCard() { return CardType.MASTER_CARD; }

 public CardType getVisa() { return CardType.VISA; }

 public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }

 public CardType getDinersClub() { return CardType.DINERS_CLUB; }

 public CardType getDiscover() { return CardType.DISCOVER; }

 Object onSubmitFromRadioForm() {
 return request.isXHR() ? formZone.getBody() : null;
 }

 =Request Form data=
 t:zoneid:formZone
 t:submit:[submit_19b3a276fbae1_0,submit_0]

 t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
 *type:MASTER_CARD*
 *type:VISA*
 *type:AMERICAN_EXPRESS*
 *type:DINERS_CLUB*
 *type:DISCOVER*

 Looks like the forms.gatherParameters (forms.js) is adding all values -
 and not just the checked one.

 I'll create a JIRA.

 magnus

 On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim mag...@kvalheim.euwrote:

 Hi guys.

 Just notised a strange issue with radio ajax/zone submit. It submits all
 values - selected and not selected.

 - If I disable javascript - then it submits single value. Correct
 - If I remove form t:zone then it also submits fine. Correct

 If I enable t:zone then it submits all possible radio values.


 Please let me know if anyone can confirm.

 Thanks
 Magnus





Re: The Rise and Fall of Tapestry

2013-11-22 Thread Lance Java
 7. Why Howard finally embraced Wicket and started using it in his
clients' projects.

Drink a shot!

 8. When Tapestry became Wicketstry

Drink a shot!

 or Tapwickstry.

... and another!


Re: The Rise and Fall of Tapestry

2013-11-22 Thread Taha Siddiqi
I came to Tapestry from Wicket after reading such a trolling email but I could 
never thank the guy.

If it were you Emmanuel, then thank you.


On Nov 22, 2013, at 3:05 PM, Lance Java wrote:

 7. Why Howard finally embraced Wicket and started using it in his
 clients' projects.
 
 Drink a shot!
 
 8. When Tapestry became Wicketstry
 
 Drink a shot!
 
 or Tapwickstry.
 
 ... and another!



Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Magnus Kvalheim
So, was looking into fixing this myself as a temporary workaround.

I think the fix is quite clean, and of interest for others in similar
situation, so I'll briefly post it.

--
What I wanted to do was to make a modified version of forms.coffee and
contribute/override that somehow.
The forms.coffee mod is quite simple: (line 77)

Replace:  return if type is checkbox  field.checked() is false
with: return if (type is checkbox || type is radio)  field.checked()
is false


Then contribute to JavascriptStack like so
@Contribute(JavaScriptStack.class)
 @Core
public static void
setupCoreJavaScriptStack(OrderedConfigurationStackExtension
configuration) {
 configuration.override(t5/core/forms, new
StackExtension(StackExtensionType.MODULE, t5-custom/core/forms));
}

However, t5/core/forms is not actually added to the stack so I had to look
elsewhere.


The solution: Set and alias path on Requirejs config for forms module
Thiagos RequireJs config contribution have now made this possible,
https://issues.apache.org/jira/browse/TAP5-2196

jsSupport.addModuleConfigurationCallback(new ModuleConfigurationCallback() {
 @Override
public JSONObject configure(JSONObject configuration) {
 JSONObject paths = (JSONObject) configuration.opt(paths);
if(paths==null) paths = new JSONObject();
 paths.put(t5/core/forms, t5-custom/core/forms);
 configuration.put(paths, paths);
 return configuration;
}
});


Just great, thanks again Thiago :-)


On Fri, Nov 22, 2013 at 9:34 AM, Magnus Kvalheim mag...@kvalheim.eu wrote:

 JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231

 On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim mag...@kvalheim.euwrote:

 Just verified again with a simple form like this one:

 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html

 =tml=
 h2Selected type: ${type}/h2
 t:zone t:id=formZone
 t:form t:zone=^ t:id=radioForm

 t:label for=type /:

  t:radiogroup t:id=type
  t:radio t:id=masterCard /
 t:label for=masterCard /
 t:radio t:id=visa /
  t:label for=visa /
 t:radio t:id=amex /
 t:label for=amex /
  t:radio t:id=dinersClub /
 t:label for=dinersClub /
 t:radio t:id=discover /
  t:label for=discover /
 /t:radiogroup
  t:submit/

 /t:form
 /t:zone

 =Java=
 public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS, DINERS_CLUB,
 DISCOVER}

 @InjectComponent private Zone formZone;
 @Inject private Request request;

 @Property
 @Persist
 private CardType type;

 public CardType getMasterCard() { return CardType.MASTER_CARD; }

 public CardType getVisa() { return CardType.VISA; }

 public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }

 public CardType getDinersClub() { return CardType.DINERS_CLUB; }

 public CardType getDiscover() { return CardType.DISCOVER; }

 Object onSubmitFromRadioForm() {
 return request.isXHR() ? formZone.getBody() : null;
 }

 =Request Form data=
 t:zoneid:formZone
 t:submit:[submit_19b3a276fbae1_0,submit_0]

 t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
 *type:MASTER_CARD*
 *type:VISA*
 *type:AMERICAN_EXPRESS*
 *type:DINERS_CLUB*
 *type:DISCOVER*

 Looks like the forms.gatherParameters (forms.js) is adding all values -
 and not just the checked one.

 I'll create a JIRA.

 magnus

 On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim mag...@kvalheim.euwrote:

 Hi guys.

 Just notised a strange issue with radio ajax/zone submit. It submits all
 values - selected and not selected.

 - If I disable javascript - then it submits single value. Correct
 - If I remove form t:zone then it also submits fine. Correct

 If I enable t:zone then it submits all possible radio values.


 Please let me know if anyone can confirm.

 Thanks
 Magnus






Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Chris Poulsen
Why not submit a patch, now that you've spent the time figuring it out?


On Fri, Nov 22, 2013 at 12:07 PM, Magnus Kvalheim mag...@kvalheim.euwrote:

 So, was looking into fixing this myself as a temporary workaround.

 I think the fix is quite clean, and of interest for others in similar
 situation, so I'll briefly post it.

 --
 What I wanted to do was to make a modified version of forms.coffee and
 contribute/override that somehow.
 The forms.coffee mod is quite simple: (line 77)

 Replace:  return if type is checkbox  field.checked() is false
 with: return if (type is checkbox || type is radio)  field.checked()
 is false


 Then contribute to JavascriptStack like so
 @Contribute(JavaScriptStack.class)
  @Core
 public static void
 setupCoreJavaScriptStack(OrderedConfigurationStackExtension
 configuration) {
  configuration.override(t5/core/forms, new
 StackExtension(StackExtensionType.MODULE, t5-custom/core/forms));
 }

 However, t5/core/forms is not actually added to the stack so I had to look
 elsewhere.


 The solution: Set and alias path on Requirejs config for forms module
 Thiagos RequireJs config contribution have now made this possible,
 https://issues.apache.org/jira/browse/TAP5-2196

 jsSupport.addModuleConfigurationCallback(new ModuleConfigurationCallback()
 {
  @Override
 public JSONObject configure(JSONObject configuration) {
  JSONObject paths = (JSONObject) configuration.opt(paths);
 if(paths==null) paths = new JSONObject();
  paths.put(t5/core/forms, t5-custom/core/forms);
  configuration.put(paths, paths);
  return configuration;
 }
 });


 Just great, thanks again Thiago :-)


 On Fri, Nov 22, 2013 at 9:34 AM, Magnus Kvalheim mag...@kvalheim.eu
 wrote:

  JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231
 
  On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim mag...@kvalheim.eu
 wrote:
 
  Just verified again with a simple form like this one:
 
 
 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html
 
  =tml=
  h2Selected type: ${type}/h2
  t:zone t:id=formZone
  t:form t:zone=^ t:id=radioForm
 
  t:label for=type /:
 
   t:radiogroup t:id=type
   t:radio t:id=masterCard /
  t:label for=masterCard /
  t:radio t:id=visa /
   t:label for=visa /
  t:radio t:id=amex /
  t:label for=amex /
   t:radio t:id=dinersClub /
  t:label for=dinersClub /
  t:radio t:id=discover /
   t:label for=discover /
  /t:radiogroup
   t:submit/
 
  /t:form
  /t:zone
 
  =Java=
  public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS, DINERS_CLUB,
  DISCOVER}
 
  @InjectComponent private Zone formZone;
  @Inject private Request request;
 
  @Property
  @Persist
  private CardType type;
 
  public CardType getMasterCard() { return CardType.MASTER_CARD; }
 
  public CardType getVisa() { return CardType.VISA; }
 
  public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }
 
  public CardType getDinersClub() { return CardType.DINERS_CLUB; }
 
  public CardType getDiscover() { return CardType.DISCOVER; }
 
  Object onSubmitFromRadioForm() {
  return request.isXHR() ? formZone.getBody() : null;
  }
 
  =Request Form data=
  t:zoneid:formZone
  t:submit:[submit_19b3a276fbae1_0,submit_0]
 
 
 t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
  *type:MASTER_CARD*
  *type:VISA*
  *type:AMERICAN_EXPRESS*
  *type:DINERS_CLUB*
  *type:DISCOVER*
 
  Looks like the forms.gatherParameters (forms.js) is adding all values
 -
  and not just the checked one.
 
  I'll create a JIRA.
 
  magnus
 
  On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim mag...@kvalheim.eu
 wrote:
 
  Hi guys.
 
  Just notised a strange issue with radio ajax/zone submit. It submits
 all
  values - selected and not selected.
 
  - If I disable javascript - then it submits single value. Correct
  - If I remove form t:zone then it also submits fine. Correct
 
  If I enable t:zone then it submits all possible radio values.
 
 
  Please let me know if anyone can confirm.
 
  Thanks
  Magnus
 
 
 
 



Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Magnus Kvalheim
Hi Chris, yes sure - will do that in the Jira.

I think also the solution is interesting because it shows what's possible
now with more flexible requirejs config on Tapestry side.
One obvious use case for paths is to configure 'local' paths for thirdparty
amd modules which themselves express dependencies.
(But can also be used to 'patch' tapestry modules as mentioned here)


On Fri, Nov 22, 2013 at 12:20 PM, Chris Poulsen mailingl...@nesluop.dkwrote:

 Why not submit a patch, now that you've spent the time figuring it out?


 On Fri, Nov 22, 2013 at 12:07 PM, Magnus Kvalheim mag...@kvalheim.eu
 wrote:

  So, was looking into fixing this myself as a temporary workaround.
 
  I think the fix is quite clean, and of interest for others in similar
  situation, so I'll briefly post it.
 
  --
  What I wanted to do was to make a modified version of forms.coffee and
  contribute/override that somehow.
  The forms.coffee mod is quite simple: (line 77)
 
  Replace:  return if type is checkbox  field.checked() is false
  with: return if (type is checkbox || type is radio) 
 field.checked()
  is false
 
 
  Then contribute to JavascriptStack like so
  @Contribute(JavaScriptStack.class)
   @Core
  public static void
  setupCoreJavaScriptStack(OrderedConfigurationStackExtension
  configuration) {
   configuration.override(t5/core/forms, new
  StackExtension(StackExtensionType.MODULE, t5-custom/core/forms));
  }
 
  However, t5/core/forms is not actually added to the stack so I had to
 look
  elsewhere.
 
 
  The solution: Set and alias path on Requirejs config for forms module
  Thiagos RequireJs config contribution have now made this possible,
  https://issues.apache.org/jira/browse/TAP5-2196
 
  jsSupport.addModuleConfigurationCallback(new
 ModuleConfigurationCallback()
  {
   @Override
  public JSONObject configure(JSONObject configuration) {
   JSONObject paths = (JSONObject) configuration.opt(paths);
  if(paths==null) paths = new JSONObject();
   paths.put(t5/core/forms, t5-custom/core/forms);
   configuration.put(paths, paths);
   return configuration;
  }
  });
 
 
  Just great, thanks again Thiago :-)
 
 
  On Fri, Nov 22, 2013 at 9:34 AM, Magnus Kvalheim mag...@kvalheim.eu
  wrote:
 
   JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231
  
   On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim mag...@kvalheim.eu
  wrote:
  
   Just verified again with a simple form like this one:
  
  
 
 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html
  
   =tml=
   h2Selected type: ${type}/h2
   t:zone t:id=formZone
   t:form t:zone=^ t:id=radioForm
  
   t:label for=type /:
  
t:radiogroup t:id=type
t:radio t:id=masterCard /
   t:label for=masterCard /
   t:radio t:id=visa /
t:label for=visa /
   t:radio t:id=amex /
   t:label for=amex /
t:radio t:id=dinersClub /
   t:label for=dinersClub /
   t:radio t:id=discover /
t:label for=discover /
   /t:radiogroup
t:submit/
  
   /t:form
   /t:zone
  
   =Java=
   public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS, DINERS_CLUB,
   DISCOVER}
  
   @InjectComponent private Zone formZone;
   @Inject private Request request;
  
   @Property
   @Persist
   private CardType type;
  
   public CardType getMasterCard() { return CardType.MASTER_CARD; }
  
   public CardType getVisa() { return CardType.VISA; }
  
   public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }
  
   public CardType getDinersClub() { return CardType.DINERS_CLUB; }
  
   public CardType getDiscover() { return CardType.DISCOVER; }
  
   Object onSubmitFromRadioForm() {
   return request.isXHR() ? formZone.getBody() : null;
   }
  
   =Request Form data=
   t:zoneid:formZone
   t:submit:[submit_19b3a276fbae1_0,submit_0]
  
  
 
 t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
   *type:MASTER_CARD*
   *type:VISA*
   *type:AMERICAN_EXPRESS*
   *type:DINERS_CLUB*
   *type:DISCOVER*
  
   Looks like the forms.gatherParameters (forms.js) is adding all
 values
  -
   and not just the checked one.
  
   I'll create a JIRA.
  
   magnus
  
   On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim mag...@kvalheim.eu
  wrote:
  
   Hi guys.
  
   Just notised a strange issue with radio ajax/zone submit. It submits
  all
   values - selected and not selected.
  
   - If I disable javascript - then it submits single value. Correct
   - If I remove form t:zone then it also submits fine. Correct
  
   If I enable t:zone then it submits all possible radio values.
  
  
   Please let me know if anyone can confirm.
  
   Thanks
   Magnus
  
  
  
  
 



Re: Web frameworks

2013-11-22 Thread Matheus Eduardo Machado Moreira
   Good Lord, I did't know that Tapestry list had a let's have fun topic
like this one! :-)

   Emmanuel, it is not that you *(...) won't cite anything about that
interview (...)*. You just *can't* because it just exists in your head.
You call Howard coward and Thiago (who is my personal friend from a long
time) a liar but you are acting the *same* (and I don't think that Howard
is a coward and I *know* that Thiago is not a liar). Never one person here
threatened another one and you're using this excuse as a way to run away
from the responsability of presenting facts when *you can't*.

   Even if Tapestry is not relevant in the web framework space (and I'm not
saying it isn't), there are a lot to be learned with it (and its IOC
framework), with its community (which is very supportive, well behaved --
except from you -- and intelligent), reading the source codes and learning
incredible solutions that are the result of the work of great minds.

   Atenciosamente,

Matheus Eduardo Machado Moreira
matheus@gmail.com


2013/11/21 Muhammad Gelbana m.gelb...@gmail.com

 Tapestry is an idea Mr. Emmanuel and Ideas are troll proof.

 *-*
 *Muhammad Gelbana*
 http://www.linkedin.com/in/mgelbana


 On Thu, Nov 21, 2013 at 1:05 PM, Peter Hvass p.hv...@albourne.com wrote:

  Wooow! What is this inane crap? :D This is hilarious in general on all
  sides!
 
 
  The best bit was discovering this wiki page;
  http://wiki.apache.org/tapestry/Tapestry5Trolls
 
 
  Have been giggling with a colleague over this today. :)
 
  - Original Message -
 
  From: ICE Ernesto Arteaga Zavala arterza...@gmail.com
  To: Tapestry users users@tapestry.apache.org
  Sent: Thursday, November 21, 2013 1:03:04 AM
  Subject: Re: Web frameworks
 
  Emmanuel,
 
  Then have sex with Wicket and let us work with the framework we
  prefer...
 
 
  2013/11/20 Emmanuel Sowah eso...@gmail.com
 
   And let me clarify some more about live class reloading in Wicket.
 Wicket
   has 2 modes- development and production. When you turn on development
  mode,
   it reloads classes live. So don't fool yourself and others to think
   Tapestry is the only framework that does live class reloading.
  
  
   On Wed, Nov 20, 2013 at 10:18 PM, Thiago H de Paula Figueiredo 
   thiag...@gmail.com wrote:
  
On Wed, 20 Nov 2013 19:04:30 -0200, Emmanuel Sowah eso...@gmail.com
 
wrote:
   
Don't listen to Thiago, he is just blowing hot air. Tapestry is no
 more
relevant, as can be seen in the article:
http://zeroturnaround.com/rebellabs/the-2014-decision-
makers-guide-to-java-web-frameworks/
As you may see, Tapestry is not mentioned anywhere in that article.
   
   
A single article shouldn't be the single decision point of any
  decision.
Not to mention that ZeroTurnaround provides a tool that provides live
   class
reloading, which Tapestry already does for some scenarios.
   
   
What about Vaadin, GWT or Wicket?
   
   
Drink another shot! :D
   
   
Thiago, please stop misleading people.
   
   
Now you're calling me a liar or something by accusing me of
 misleading
people. That's rude, specially in a medium which is archived for many
   years
to come, and most people don't like rude people. You're being so
  pathetic
the only feeling I have right now about you isn't anger. It's pity.
   
   
Tapestry is just dying a slow death.
Even Howard admitted that in a recent interview.
   
   
[citation needed]
   
   
--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br
   
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
   
   
  
 
 
 
  --
  Saludos,
 
  ---
  Nada que se consiga sin pena y sin trabajo
  es verdaderamente valioso.
  Joseph Addison
  ---
 
  ICE Ernesto Arteaga Zavala
  Ingeniero de Desarrollo
 
 



Re: [5.4.25] Ajax submit with Radiogroup submits all values

2013-11-22 Thread Chris Poulsen
Cool! Seems like the right way to go, now that you did almost all the work
anyway :)



On Fri, Nov 22, 2013 at 12:31 PM, Magnus Kvalheim mag...@movellas.comwrote:

 Hi Chris, yes sure - will do that in the Jira.

 I think also the solution is interesting because it shows what's possible
 now with more flexible requirejs config on Tapestry side.
 One obvious use case for paths is to configure 'local' paths for thirdparty
 amd modules which themselves express dependencies.
 (But can also be used to 'patch' tapestry modules as mentioned here)


 On Fri, Nov 22, 2013 at 12:20 PM, Chris Poulsen mailingl...@nesluop.dk
 wrote:

  Why not submit a patch, now that you've spent the time figuring it out?
 
 
  On Fri, Nov 22, 2013 at 12:07 PM, Magnus Kvalheim mag...@kvalheim.eu
  wrote:
 
   So, was looking into fixing this myself as a temporary workaround.
  
   I think the fix is quite clean, and of interest for others in similar
   situation, so I'll briefly post it.
  
   --
   What I wanted to do was to make a modified version of forms.coffee and
   contribute/override that somehow.
   The forms.coffee mod is quite simple: (line 77)
  
   Replace:  return if type is checkbox  field.checked() is false
   with: return if (type is checkbox || type is radio) 
  field.checked()
   is false
  
  
   Then contribute to JavascriptStack like so
   @Contribute(JavaScriptStack.class)
@Core
   public static void
   setupCoreJavaScriptStack(OrderedConfigurationStackExtension
   configuration) {
configuration.override(t5/core/forms, new
   StackExtension(StackExtensionType.MODULE, t5-custom/core/forms));
   }
  
   However, t5/core/forms is not actually added to the stack so I had to
  look
   elsewhere.
  
  
   The solution: Set and alias path on Requirejs config for forms module
   Thiagos RequireJs config contribution have now made this possible,
   https://issues.apache.org/jira/browse/TAP5-2196
  
   jsSupport.addModuleConfigurationCallback(new
  ModuleConfigurationCallback()
   {
@Override
   public JSONObject configure(JSONObject configuration) {
JSONObject paths = (JSONObject) configuration.opt(paths);
   if(paths==null) paths = new JSONObject();
paths.put(t5/core/forms, t5-custom/core/forms);
configuration.put(paths, paths);
return configuration;
   }
   });
  
  
   Just great, thanks again Thiago :-)
  
  
   On Fri, Nov 22, 2013 at 9:34 AM, Magnus Kvalheim mag...@kvalheim.eu
   wrote:
  
JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231
   
On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim mag...@kvalheim.eu
   wrote:
   
Just verified again with a simple form like this one:
   
   
  
 
 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html
   
=tml=
h2Selected type: ${type}/h2
t:zone t:id=formZone
t:form t:zone=^ t:id=radioForm
   
t:label for=type /:
   
 t:radiogroup t:id=type
 t:radio t:id=masterCard /
t:label for=masterCard /
t:radio t:id=visa /
 t:label for=visa /
t:radio t:id=amex /
t:label for=amex /
 t:radio t:id=dinersClub /
t:label for=dinersClub /
t:radio t:id=discover /
 t:label for=discover /
/t:radiogroup
 t:submit/
   
/t:form
/t:zone
   
=Java=
public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS,
 DINERS_CLUB,
DISCOVER}
   
@InjectComponent private Zone formZone;
@Inject private Request request;
   
@Property
@Persist
private CardType type;
   
public CardType getMasterCard() { return CardType.MASTER_CARD; }
   
public CardType getVisa() { return CardType.VISA; }
   
public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }
   
public CardType getDinersClub() { return CardType.DINERS_CLUB; }
   
public CardType getDiscover() { return CardType.DISCOVER; }
   
Object onSubmitFromRadioForm() {
return request.isXHR() ? formZone.getBody() : null;
}
   
=Request Form data=
t:zoneid:formZone
t:submit:[submit_19b3a276fbae1_0,submit_0]
   
   
  
 
 t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
*type:MASTER_CARD*
*type:VISA*
*type:AMERICAN_EXPRESS*
*type:DINERS_CLUB*
*type:DISCOVER*
   
Looks like the forms.gatherParameters (forms.js) is adding all
  values
   -
and not just the checked one.
   
I'll create a JIRA.
   
magnus
   
On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim 
 mag...@kvalheim.eu
   wrote:
   
Hi guys.
   
Just notised a strange issue with radio ajax/zone submit. It
 submits
   all
values - selected and not selected.
  

Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread Lance Java
Probably best to see some code before calling it a bug. Perhaps you are
initializing a variable in its  declaration (instead of @SetupRender) or
possibly a @Persist issue?


Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread John
I have a utility class that recieves emails with a background TimerTask that 
needs to invoke a method on one of my injected DAOs to store the messages in 
the db.

How do I get this class to load when I start my app and make sure the injected 
services are set? With EagerLoad the class gets instantiated but of course the 
services are null.

John

Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Dmitry Gusev
Put it to ParallelExecutor?
http://tapestry.apache.org/parallel-execution.html

http://blog.tapestry5.de/index.php/2011/09/18/scheduling-jobs-with-tapestry/

There's also Quartz scheduler support:
https://github.com/anjlab/anjlab-tapestry-commons/tree/master/anjlab-tapestry-quartz



On Fri, Nov 22, 2013 at 8:03 PM, John j...@quivinco.com wrote:

 I have a utility class that recieves emails with a background TimerTask
 that needs to invoke a method on one of my injected DAOs to store the
 messages in the db.

 How do I get this class to load when I start my app and make sure the
 injected services are set? With EagerLoad the class gets instantiated but
 of course the services are null.

 John




-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com


Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Muhammad Gelbana
I don't believe eager loading loads a service without it's dependencies
injected. Try starting your background service in a @Startup annotation
method in your module's class. Starting your service just means calling one
of it's methods.

*-*
*Muhammad Gelbana*
http://www.linkedin.com/in/mgelbana


On Fri, Nov 22, 2013 at 6:03 PM, John j...@quivinco.com wrote:

 I have a utility class that recieves emails with a background TimerTask
 that needs to invoke a method on one of my injected DAOs to store the
 messages in the db.

 How do I get this class to load when I start my app and make sure the
 injected services are set? With EagerLoad the class gets instantiated but
 of course the services are null.

 John


Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread George Christman
I would like to share some additional details related to this issue. I'm
finding after removing a row and refreshing the page the selected option is
marked selected in the html correctly, however the option displayed in the
select menu is the former select option from the previously deleted row.
I'm not sure why the selected option is being ignored. If I change the
ajaxformloop to a loop and refresh the page, all my select options the
appear to be correct. Below is the code used to reproduce the bug.

How I to reproduce it.

Add 3 rows.

Row 1. Select Mobile - Type test1
Row 2. Select Home - Type test2
Row 3 Select Fax - Type test3

Save results

Remove Row 1

Refresh page.

Notice how the results change to the following.

Row 1. Select Mobile - Type test2
Row 2. Select Home - Type test3

Code used to reproduce bug.

tml

html t:type=layout title=AjaxFormLoopDemo xmlns:t=
http://tapestry.apache.org/schema/tapestry_5_1_0.xsd;
xmlns:p=tapestry:parameter
t:form t:id=form
div t:type=ajaxformloop t:id=phones source=person.phones
value=phone encoder=encoder
t:select t:id=type model=selectModel
value=phone.phoneType/
t:textfield t:id=number value=phone.number/
t:removerowlinkremove/t:removerowlink
/div
input type=submit value=Update/
/t:form
/html

java

public class AjaxFormLoopDemo {

@Property
private Phone phone;
@PageActivationContext
@Property
private Person person;
@Inject
private SelectModelFactory selectModelFactory;
@Inject
private Session session;

void onPrepare() {
if (person == null) {
person = new Person();
}

ListPhoneType phoneTypes =
session.createCriteria(PhoneType.class).addOrder(Order.desc(id)).list();

if (phoneTypes.isEmpty()) {
setupPhoneTypes();
}
}

@CommitAfter
public void setupPhoneTypes() {
PhoneType phoneType = new PhoneType(HOME);
session.save(phoneType);

phoneType = new PhoneType(MOBILE);
session.save(phoneType);

phoneType = new PhoneType(FAX);
session.save(phoneType);
}

@CommitAfter
public void onSuccess() {
session.saveOrUpdate(person);
}

public SelectModel getSelectModel() {
ListPhoneType phoneTypes =
session.createCriteria(PhoneType.class).addOrder(Order.asc(type)).list();
return selectModelFactory.create(phoneTypes, type);
}

Object onAddRow() {
return new Phone(person);
}

@CommitAfter
void onRemoveRow(Phone phone) {
person.getPhones().remove(phone);
session.delete(phone);
}

public ValueEncoderPhone getEncoder() {
return new ValueEncoderPhone() {
@Override
public String toClient(Phone v) {
Long id = v.getId();
return id != null ? id.toString() :
v.getTempId().toString();
}

@Override
public Phone toValue(String toValue) {
Long id = Long.parseLong(toValue);

if (id  0) {
Phone phone = (Phone) session.get(Phone.class, id);
return phone;
}
Phone phone = new Phone(person);
person.getPhones().add(phone);
return phone;
}
};
}
}

Person entity

@Entity
public class Person implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@OneToMany(mappedBy = person, cascade = CascadeType.ALL,
orphanRemoval = true)
@OrderBy(id)
private ListPhone phones;

@Transient
private Long tempId = -System.nanoTime();

public Person() {
}

public Long getTempId() {
return tempId;
}

public void setTempId(Long tempId) {
this.tempId = tempId;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public ListPhone getPhones() {
if (phones == null) {
phones = new ArrayList();
}
return phones;
}

public void setPhones(ListPhone phones) {
this.phones = phones;
}

}

Phone Entity

@Entity
public class Phone implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = phone_type_id)
private PhoneType phoneType;
@ManyToOne
@JoinColumn(name = person_id)
private Person person;
private String number;
@Transient
private Long tempId = -System.nanoTime();

public Phone() {
}

public Phone(Person person) {
this.person = person;
}

public Person getPerson() {
return person;
}

public void setPerson(Person person) {
this.person = person;
}


Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Thiago H de Paula Figueiredo

On Fri, 22 Nov 2013 14:03:10 -0200, John j...@quivinco.com wrote:

How do I get this class to load when I start my app and make sure the  
injected services are set? With EagerLoad the class gets instantiated  
but of course the services are null.


This statement is not correct as far as I know. Tapestry-IoC injects  
service proxies (when the service is defined by an interface), so the  
dependencies may not even be initialized yet, but, when you first call  
them, they will be initialized.


--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: The Rise and Fall of Tapestry

2013-11-22 Thread Thiago H de Paula Figueiredo
On Fri, 22 Nov 2013 05:37:11 -0200, Peter Hvass p.hv...@albourne.com  
wrote:



demon enclosure that is Tapestry with its patron lord of darkness Howard.


I also want a cool title like that! :D

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread John
I need my setup method to run when this class is instantiated but log is null 
so mailDAO will also be null.

John


public class EmailReceiverUtil {

public static final int SHOW_MESSAGES = 1;
public static final int CLEAR_MESSAGES = 2;
public static final int SHOW_AND_CLEAR =
SHOW_MESSAGES + CLEAR_MESSAGES;
/**
 * The log.
 */
@Inject
private Logger log;
@Inject
private MailDAO mailDAO;
/**
 * Mail properties
 */
Properties props = new Properties();
/**
 * Timer for background task;
 */
Timer timer = new Timer();

public EmailReceiverUtil() {
System.out.println(EmailReceiverUtil instantiated);
}

@EagerLoad
public void setup() {
// configure properties
props.put(mail.user, John);
props.put(mail.host, diskstation);
props.put(mail.debug, false);
props.put(mail.store.protocol, pop3);
timer.schedule(new MailReceiverThread(), 1000, 6);
log.info(Email Receiver running);
}

private void checkInbox(int mode)
...
}

private boolean processPlainTextMessage(final String from, final String to,
final String subject, final String message) {
try {
String messageText = message;
return mailDAO.processIncomingMail(from, to, messageText);
} catch (DAOException ex) {
ex.printStackTrace();
}
return false;
}

class MailReceiverThread extends TimerTask {

public void run() {
try {
checkInbox(CLEAR_MESSAGES);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}

  - Original Message - 
  From: Thiago H de Paula Figueiredo 
  To: Tapestry users 
  Sent: Friday, November 22, 2013 5:26 PM
  Subject: Re: Tapetsry IoC starting a class with background task that uses an 
injected service


  On Fri, 22 Nov 2013 14:03:10 -0200, John j...@quivinco.com wrote:

   How do I get this class to load when I start my app and make sure the  
   injected services are set? With EagerLoad the class gets instantiated  
   but of course the services are null.

  This statement is not correct as far as I know. Tapestry-IoC injects  
  service proxies (when the service is defined by an interface), so the  
  dependencies may not even be initialized yet, but, when you first call  
  them, they will be initialized.

  -- 
  Thiago H. de Paula Figueiredo
  Tapestry, Java and Hibernate consultant and developer
  http://machina.com.br

  -
  To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
  For additional commands, e-mail: users-h...@tapestry.apache.org


Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Thiago H de Paula Figueiredo

On Fri, 22 Nov 2013 15:47:10 -0200, John j...@quivinco.com wrote:

I need my setup method to run when this class is instantiated but log is  
null so mailDAO will also be null.


Weird. Maybe the @EagerLoad-annotated method is being called before the  
field injection is done. If that's really the case, that's a bug.


By the way, why don't you receive the dependencies through the  
consturctor? That's my preferred way to do injection in services and it  
avoids problems like you're having. I don't think I ever used @Inject in a  
service.


--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Dmitry Gusev
@EagerLoad is for service builder methods:
http://tapestry.apache.org/5.3.7/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html

Don't use TimeTask, use Tapestry's PeriodicExecutor with
http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Startup.html




On Fri, Nov 22, 2013 at 9:47 PM, John j...@quivinco.com wrote:

 I need my setup method to run when this class is instantiated but log is
 null so mailDAO will also be null.

 John


 public class EmailReceiverUtil {

 public static final int SHOW_MESSAGES = 1;
 public static final int CLEAR_MESSAGES = 2;
 public static final int SHOW_AND_CLEAR =
 SHOW_MESSAGES + CLEAR_MESSAGES;
 /**
  * The log.
  */
 @Inject
 private Logger log;
 @Inject
 private MailDAO mailDAO;
 /**
  * Mail properties
  */
 Properties props = new Properties();
 /**
  * Timer for background task;
  */
 Timer timer = new Timer();

 public EmailReceiverUtil() {
 System.out.println(EmailReceiverUtil instantiated);
 }

 @EagerLoad
 public void setup() {
 // configure properties
 props.put(mail.user, John);
 props.put(mail.host, diskstation);
 props.put(mail.debug, false);
 props.put(mail.store.protocol, pop3);
 timer.schedule(new MailReceiverThread(), 1000, 6);
 log.info(Email Receiver running);
 }

 private void checkInbox(int mode)
 ...
 }

 private boolean processPlainTextMessage(final String from, final
 String to,
 final String subject, final String message) {
 try {
 String messageText = message;
 return mailDAO.processIncomingMail(from, to, messageText);
 } catch (DAOException ex) {
 ex.printStackTrace();
 }
 return false;
 }

 class MailReceiverThread extends TimerTask {

 public void run() {
 try {
 checkInbox(CLEAR_MESSAGES);
 } catch (Exception ex) {
 ex.printStackTrace();
 }
 }
 }
 }

   - Original Message -
   From: Thiago H de Paula Figueiredo
   To: Tapestry users
   Sent: Friday, November 22, 2013 5:26 PM
   Subject: Re: Tapetsry IoC starting a class with background task that
 uses an injected service


   On Fri, 22 Nov 2013 14:03:10 -0200, John j...@quivinco.com wrote:

How do I get this class to load when I start my app and make sure the
injected services are set? With EagerLoad the class gets instantiated
but of course the services are null.

   This statement is not correct as far as I know. Tapestry-IoC injects
   service proxies (when the service is defined by an interface), so the
   dependencies may not even be initialized yet, but, when you first call
   them, they will be initialized.

   --
   Thiago H. de Paula Figueiredo
   Tapestry, Java and Hibernate consultant and developer
   http://machina.com.br

   -
   To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
   For additional commands, e-mail: users-h...@tapestry.apache.org




-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com


Re: The Rise and Fall of Tapestry

2013-11-22 Thread Borut Bolčina
You need professional help. That's my contribution.


2013/11/21 Emmanuel Sowah eso...@gmail.com

 Hi guys,

 Tapestry did not make it to a recent Web frameworks report released by
 Zeroturnaround found here:

 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
 .

 This to me, and many others, is the clearest evidence yet that Tapestry has
 failed and that Tapestry is no more relevant. Tapestry, once a rising star
 with huge following, is reduced to rags with a very small cult following.
 Users of Tapestry now are mostly newbies to Java or just finished school
 and playing about with some home hobby projects. Or people, like Thiago H
 de Paula Figueiredo, who write applications not used by more than 3 people.

 Now, to hammer the last nails on Tapestry's coffin, I've decide to write a
 blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
 would discuss include:

 1. The begin
 2. How Tapestry betrayed it's users by breaking existing code base at any
 major release.
 3. The arrogance of Howard Lewis *Ship*
 4. When the 'H' in Howard became 'C' to form Coward.
 5. When the Ship sank.
 4. How Tapestry became a one-man project
 5. Migration path to other web frameworks
 6. How Tapestry would be remembered.
 7. Why Howard finally embraced Wicket and started using it in his clients'
 projects.
 8. When Tapestry became Wicketstry or Tapwickstry.
 ...

 I want to have 10 points to write about in my blog. Please feel free to
 suggest some other points for me.

 I have to mention that I will strictly moderate comments on my blog in
 order to filter out venomous comments from Tapestry cult trolls like the
 ones I've seen here the last few days.

 Please contribute.

 Cheers



Re: The Rise and Fall of Tapestry

2013-11-22 Thread Muhammad Gelbana
LOOOL @ Thiago :D

*-*
*Muhammad Gelbana*
http://www.linkedin.com/in/mgelbana


On Fri, Nov 22, 2013 at 8:20 PM, Borut Bolčina borut.bolc...@gmail.comwrote:

 You need professional help. That's my contribution.


 2013/11/21 Emmanuel Sowah eso...@gmail.com

  Hi guys,
 
  Tapestry did not make it to a recent Web frameworks report released by
  Zeroturnaround found here:
 
 
 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
  .
 
  This to me, and many others, is the clearest evidence yet that Tapestry
 has
  failed and that Tapestry is no more relevant. Tapestry, once a rising
 star
  with huge following, is reduced to rags with a very small cult following.
  Users of Tapestry now are mostly newbies to Java or just finished school
  and playing about with some home hobby projects. Or people, like Thiago H
  de Paula Figueiredo, who write applications not used by more than 3
 people.
 
  Now, to hammer the last nails on Tapestry's coffin, I've decide to write
 a
  blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
  would discuss include:
 
  1. The begin
  2. How Tapestry betrayed it's users by breaking existing code base at any
  major release.
  3. The arrogance of Howard Lewis *Ship*
  4. When the 'H' in Howard became 'C' to form Coward.
  5. When the Ship sank.
  4. How Tapestry became a one-man project
  5. Migration path to other web frameworks
  6. How Tapestry would be remembered.
  7. Why Howard finally embraced Wicket and started using it in his
 clients'
  projects.
  8. When Tapestry became Wicketstry or Tapwickstry.
  ...
 
  I want to have 10 points to write about in my blog. Please feel free to
  suggest some other points for me.
 
  I have to mention that I will strictly moderate comments on my blog in
  order to filter out venomous comments from Tapestry cult trolls like the
  ones I've seen here the last few days.
 
  Please contribute.
 
  Cheers
 



Re: Tapetsry IoC starting a class with background task that uses an injected service

2013-11-22 Thread Muhammad Gelbana

 That's my preferred way to do injection in services and it avoids problems
 like you're having

If you do that, you'll have to refactor your constructor parameters and
assignment statement if you remove\add a new service. It should be a lot
easier to use

@Inject
private MyService svc;

If using a constructor makes sure that all passed services (as parameters
to the constructor) are proxied and ready to be instantiated, then so
should injecting a service as a class member (i.e. as the 2 lines of code I
wrote earlier), they should behave the same, else it would be a bug,
exactly like you said.

The only case I know where one MUST use a service's constructor to pass a
dependency, is when you need the logger service injected.

*-*
*Muhammad Gelbana*
http://www.linkedin.com/in/mgelbana


On Fri, Nov 22, 2013 at 7:55 PM, Dmitry Gusev dmitry.gu...@gmail.comwrote:

 @EagerLoad is for service builder methods:

 http://tapestry.apache.org/5.3.7/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html

 Don't use TimeTask, use Tapestry's PeriodicExecutor with

 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Startup.html




 On Fri, Nov 22, 2013 at 9:47 PM, John j...@quivinco.com wrote:

  I need my setup method to run when this class is instantiated but log is
  null so mailDAO will also be null.
 
  John
 
 
  public class EmailReceiverUtil {
 
  public static final int SHOW_MESSAGES = 1;
  public static final int CLEAR_MESSAGES = 2;
  public static final int SHOW_AND_CLEAR =
  SHOW_MESSAGES + CLEAR_MESSAGES;
  /**
   * The log.
   */
  @Inject
  private Logger log;
  @Inject
  private MailDAO mailDAO;
  /**
   * Mail properties
   */
  Properties props = new Properties();
  /**
   * Timer for background task;
   */
  Timer timer = new Timer();
 
  public EmailReceiverUtil() {
  System.out.println(EmailReceiverUtil instantiated);
  }
 
  @EagerLoad
  public void setup() {
  // configure properties
  props.put(mail.user, John);
  props.put(mail.host, diskstation);
  props.put(mail.debug, false);
  props.put(mail.store.protocol, pop3);
  timer.schedule(new MailReceiverThread(), 1000, 6);
  log.info(Email Receiver running);
  }
 
  private void checkInbox(int mode)
  ...
  }
 
  private boolean processPlainTextMessage(final String from, final
  String to,
  final String subject, final String message) {
  try {
  String messageText = message;
  return mailDAO.processIncomingMail(from, to, messageText);
  } catch (DAOException ex) {
  ex.printStackTrace();
  }
  return false;
  }
 
  class MailReceiverThread extends TimerTask {
 
  public void run() {
  try {
  checkInbox(CLEAR_MESSAGES);
  } catch (Exception ex) {
  ex.printStackTrace();
  }
  }
  }
  }
 
- Original Message -
From: Thiago H de Paula Figueiredo
To: Tapestry users
Sent: Friday, November 22, 2013 5:26 PM
Subject: Re: Tapetsry IoC starting a class with background task that
  uses an injected service
 
 
On Fri, 22 Nov 2013 14:03:10 -0200, John j...@quivinco.com wrote:
 
 How do I get this class to load when I start my app and make sure the
 injected services are set? With EagerLoad the class gets instantiated
 but of course the services are null.
 
This statement is not correct as far as I know. Tapestry-IoC injects
service proxies (when the service is defined by an interface), so the
dependencies may not even be initialized yet, but, when you first call
them, they will be initialized.
 
--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br
 
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
 



 --
 Dmitry Gusev

 AnjLab Team
 http://anjlab.com



Re: The Rise and Fall of Tapestry

2013-11-22 Thread Emmanuel Sowah
Hi guys,

To my huge surprise, I've received many contributions to my upcoming blog
post and I want to thank all of you that did that. Of  course I welcome
some more. So if you haven't sent a contribution please do so. Like the
others did, send them to my email address. I'll keep it confidential so no
need to worry.

I'm still working on the blog post. I will post the link here on the
mailing list after I publish it.

Again, thanks to all that mailed me their contributions.

Cheers


On Thu, Nov 21, 2013 at 11:31 PM, Emmanuel Sowah eso...@gmail.com wrote:

 Hi guys,

 Tapestry did not make it to a recent Web frameworks report released by
 Zeroturnaround found here:
 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
 .

 This to me, and many others, is the clearest evidence yet that Tapestry
 has failed and that Tapestry is no more relevant. Tapestry, once a rising
 star with huge following, is reduced to rags with a very small cult
 following. Users of Tapestry now are mostly newbies to Java or just
 finished school and playing about with some home hobby projects. Or people,
 like Thiago H de Paula Figueiredo, who write applications not used by more
 than 3 people.

 Now, to hammer the last nails on Tapestry's coffin, I've decide to write a
 blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
 would discuss include:

  1. The begin
 2. How Tapestry betrayed it's users by breaking existing code base at any
 major release.
 3. The arrogance of Howard Lewis *Ship*
 4. When the 'H' in Howard became 'C' to form Coward.
 5. When the Ship sank.
 4. How Tapestry became a one-man project
 5. Migration path to other web frameworks
 6. How Tapestry would be remembered.
 7. Why Howard finally embraced Wicket and started using it in his clients'
 projects.
 8. When Tapestry became Wicketstry or Tapwickstry.
 ...

 I want to have 10 points to write about in my blog. Please feel free to
 suggest some other points for me.

 I have to mention that I will strictly moderate comments on my blog in
 order to filter out venomous comments from Tapestry cult trolls like the
 ones I've seen here the last few days.

 Please contribute.

 Cheers





Re: The Rise and Fall of Tapestry

2013-11-22 Thread Jon Williams
Great. Let's hear what all your Anonymous Cowards have to say.


On Fri, Nov 22, 2013 at 1:03 PM, Emmanuel Sowah eso...@gmail.com wrote:

 Hi guys,

 To my huge surprise, I've received many contributions to my upcoming blog
 post and I want to thank all of you that did that. Of  course I welcome
 some more. So if you haven't sent a contribution please do so. Like the
 others did, send them to my email address. I'll keep it confidential so no
 need to worry.

 I'm still working on the blog post. I will post the link here on the
 mailing list after I publish it.

 Again, thanks to all that mailed me their contributions.

 Cheers


 On Thu, Nov 21, 2013 at 11:31 PM, Emmanuel Sowah eso...@gmail.com wrote:

  Hi guys,
 
  Tapestry did not make it to a recent Web frameworks report released by
  Zeroturnaround found here:
 
 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
  .
 
  This to me, and many others, is the clearest evidence yet that Tapestry
  has failed and that Tapestry is no more relevant. Tapestry, once a rising
  star with huge following, is reduced to rags with a very small cult
  following. Users of Tapestry now are mostly newbies to Java or just
  finished school and playing about with some home hobby projects. Or
 people,
  like Thiago H de Paula Figueiredo, who write applications not used by
 more
  than 3 people.
 
  Now, to hammer the last nails on Tapestry's coffin, I've decide to write
 a
  blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
  would discuss include:
 
   1. The begin
  2. How Tapestry betrayed it's users by breaking existing code base at any
  major release.
  3. The arrogance of Howard Lewis *Ship*
  4. When the 'H' in Howard became 'C' to form Coward.
  5. When the Ship sank.
  4. How Tapestry became a one-man project
  5. Migration path to other web frameworks
  6. How Tapestry would be remembered.
  7. Why Howard finally embraced Wicket and started using it in his
 clients'
  projects.
  8. When Tapestry became Wicketstry or Tapwickstry.
  ...
 
  I want to have 10 points to write about in my blog. Please feel free to
  suggest some other points for me.
 
  I have to mention that I will strictly moderate comments on my blog in
  order to filter out venomous comments from Tapestry cult trolls like the
  ones I've seen here the last few days.
 
  Please contribute.
 
  Cheers
 
 
 



Re: The Rise and Fall of Tapestry

2013-11-22 Thread Boris Horvat
Well I am sure his imaginary friend this he is cool


On Fri, Nov 22, 2013 at 8:10 PM, Jon Williams
williams.jonat...@gmail.comwrote:

 Great. Let's hear what all your Anonymous Cowards have to say.


 On Fri, Nov 22, 2013 at 1:03 PM, Emmanuel Sowah eso...@gmail.com wrote:

  Hi guys,
 
  To my huge surprise, I've received many contributions to my upcoming blog
  post and I want to thank all of you that did that. Of  course I welcome
  some more. So if you haven't sent a contribution please do so. Like the
  others did, send them to my email address. I'll keep it confidential so
 no
  need to worry.
 
  I'm still working on the blog post. I will post the link here on the
  mailing list after I publish it.
 
  Again, thanks to all that mailed me their contributions.
 
  Cheers
 
 
  On Thu, Nov 21, 2013 at 11:31 PM, Emmanuel Sowah eso...@gmail.com
 wrote:
 
   Hi guys,
  
   Tapestry did not make it to a recent Web frameworks report released by
   Zeroturnaround found here:
  
 
 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
   .
  
   This to me, and many others, is the clearest evidence yet that Tapestry
   has failed and that Tapestry is no more relevant. Tapestry, once a
 rising
   star with huge following, is reduced to rags with a very small cult
   following. Users of Tapestry now are mostly newbies to Java or just
   finished school and playing about with some home hobby projects. Or
  people,
   like Thiago H de Paula Figueiredo, who write applications not used by
  more
   than 3 people.
  
   Now, to hammer the last nails on Tapestry's coffin, I've decide to
 write
  a
   blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
   would discuss include:
  
1. The begin
   2. How Tapestry betrayed it's users by breaking existing code base at
 any
   major release.
   3. The arrogance of Howard Lewis *Ship*
   4. When the 'H' in Howard became 'C' to form Coward.
   5. When the Ship sank.
   4. How Tapestry became a one-man project
   5. Migration path to other web frameworks
   6. How Tapestry would be remembered.
   7. Why Howard finally embraced Wicket and started using it in his
  clients'
   projects.
   8. When Tapestry became Wicketstry or Tapwickstry.
   ...
  
   I want to have 10 points to write about in my blog. Please feel free to
   suggest some other points for me.
  
   I have to mention that I will strictly moderate comments on my blog in
   order to filter out venomous comments from Tapestry cult trolls like
 the
   ones I've seen here the last few days.
  
   Please contribute.
  
   Cheers
  
  
  
 




-- 
Sincerely
*Boris Horvat*


Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread Lance Java
Why is your encoder calling
person.getPhones().add(phone)???

That looks totally dodgy!


Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread George Christman
Without that line the phone object never gets added to the person object
prior to commit. Do you know of a better approach?


On Fri, Nov 22, 2013 at 2:20 PM, Lance Java lance.j...@googlemail.comwrote:

 Why is your encoder calling
 person.getPhones().add(phone)???

 That looks totally dodgy!




-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York


Re: Web frameworks

2013-11-22 Thread Emmanuel Sowah
Hi Matheus,

Well, I didn't call Thiago a liar. I personally don't know him but I won't
doubt that he's a nice guy. At least one can sense that from the way he
composes his mails.

What I know, for sure, is that Howard is a coward. He has a double agenda.
He doesn't practise what he preaches. He preaches Tapestry to his cult
members here but practises Wicket on his clients' projects. And admit that
too in an interview.
I hate the way he uses Thiago like a slave. He sits there and act like a
dictator. He even looks like Saddam Hussein, the dead dictator of Iraq.

Some years back, he used Jesse Kuhnert also like a slave until Jesse saw
the light and abandoned the sinking Ship. Jesse
left already in 2008 to a better Web framework. So Matteus, tell your
friend to quit, like Jesse did. He's a smart guy, I think,
and doesn't deserve to be treated like that. I hope when he leaves, all the
other cult members would disperse like flies.

Cheers



On Fri, Nov 22, 2013 at 2:18 PM, Matheus Eduardo Machado Moreira 
matheus@gmail.com wrote:

Good Lord, I did't know that Tapestry list had a let's have fun topic
 like this one! :-)

Emmanuel, it is not that you *(...) won't cite anything about that
 interview (...)*. You just *can't* because it just exists in your head.
 You call Howard coward and Thiago (who is my personal friend from a long
 time) a liar but you are acting the *same* (and I don't think that Howard
 is a coward and I *know* that Thiago is not a liar). Never one person here
 threatened another one and you're using this excuse as a way to run away
 from the responsability of presenting facts when *you can't*.

Even if Tapestry is not relevant in the web framework space (and I'm not
 saying it isn't), there are a lot to be learned with it (and its IOC
 framework), with its community (which is very supportive, well behaved --
 except from you -- and intelligent), reading the source codes and learning
 incredible solutions that are the result of the work of great minds.

Atenciosamente,

 Matheus Eduardo Machado Moreira
 matheus@gmail.com


 2013/11/21 Muhammad Gelbana m.gelb...@gmail.com

  Tapestry is an idea Mr. Emmanuel and Ideas are troll proof.
 
  *-*
  *Muhammad Gelbana*
  http://www.linkedin.com/in/mgelbana
 
 
  On Thu, Nov 21, 2013 at 1:05 PM, Peter Hvass p.hv...@albourne.com
 wrote:
 
   Wooow! What is this inane crap? :D This is hilarious in general on all
   sides!
  
  
   The best bit was discovering this wiki page;
   http://wiki.apache.org/tapestry/Tapestry5Trolls
  
  
   Have been giggling with a colleague over this today. :)
  
   - Original Message -
  
   From: ICE Ernesto Arteaga Zavala arterza...@gmail.com
   To: Tapestry users users@tapestry.apache.org
   Sent: Thursday, November 21, 2013 1:03:04 AM
   Subject: Re: Web frameworks
  
   Emmanuel,
  
   Then have sex with Wicket and let us work with the framework we
   prefer...
  
  
   2013/11/20 Emmanuel Sowah eso...@gmail.com
  
And let me clarify some more about live class reloading in Wicket.
  Wicket
has 2 modes- development and production. When you turn on development
   mode,
it reloads classes live. So don't fool yourself and others to think
Tapestry is the only framework that does live class reloading.
   
   
On Wed, Nov 20, 2013 at 10:18 PM, Thiago H de Paula Figueiredo 
thiag...@gmail.com wrote:
   
 On Wed, 20 Nov 2013 19:04:30 -0200, Emmanuel Sowah 
 eso...@gmail.com
  
 wrote:

 Don't listen to Thiago, he is just blowing hot air. Tapestry is no
  more
 relevant, as can be seen in the article:
 http://zeroturnaround.com/rebellabs/the-2014-decision-
 makers-guide-to-java-web-frameworks/
 As you may see, Tapestry is not mentioned anywhere in that
 article.


 A single article shouldn't be the single decision point of any
   decision.
 Not to mention that ZeroTurnaround provides a tool that provides
 live
class
 reloading, which Tapestry already does for some scenarios.


 What about Vaadin, GWT or Wicket?


 Drink another shot! :D


 Thiago, please stop misleading people.


 Now you're calling me a liar or something by accusing me of
  misleading
 people. That's rude, specially in a medium which is archived for
 many
years
 to come, and most people don't like rude people. You're being so
   pathetic
 the only feeling I have right now about you isn't anger. It's pity.


 Tapestry is just dying a slow death.
 Even Howard admitted that in a recent interview.


 [citation needed]


 --
 Thiago H. de Paula Figueiredo
 Tapestry, Java and Hibernate consultant and developer
 http://machina.com.br


 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: 

Re: Web frameworks

2013-11-22 Thread George Christman
Emmanuel Sowah, please provide me with a side by side comparison of the
code, some basic tapestry stuff and the equivalent in wicket. Maybe throw a
component into the mix such as the AjaxFormLoop, I'd like to see how you
would code it up in Tapestry5.4 and the equivalent in wicket. I'd like to
make my own assessment, not one from you.


On Fri, Nov 22, 2013 at 2:28 PM, Emmanuel Sowah eso...@gmail.com wrote:

 Hi Matheus,

 Well, I didn't call Thiago a liar. I personally don't know him but I won't
 doubt that he's a nice guy. At least one can sense that from the way he
 composes his mails.

 What I know, for sure, is that Howard is a coward. He has a double agenda.
 He doesn't practise what he preaches. He preaches Tapestry to his cult
 members here but practises Wicket on his clients' projects. And admit that
 too in an interview.
 I hate the way he uses Thiago like a slave. He sits there and act like a
 dictator. He even looks like Saddam Hussein, the dead dictator of Iraq.

 Some years back, he used Jesse Kuhnert also like a slave until Jesse saw
 the light and abandoned the sinking Ship. Jesse
 left already in 2008 to a better Web framework. So Matteus, tell your
 friend to quit, like Jesse did. He's a smart guy, I think,
 and doesn't deserve to be treated like that. I hope when he leaves, all the
 other cult members would disperse like flies.

 Cheers



 On Fri, Nov 22, 2013 at 2:18 PM, Matheus Eduardo Machado Moreira 
 matheus@gmail.com wrote:

 Good Lord, I did't know that Tapestry list had a let's have fun
 topic
  like this one! :-)
 
 Emmanuel, it is not that you *(...) won't cite anything about that
  interview (...)*. You just *can't* because it just exists in your head.
  You call Howard coward and Thiago (who is my personal friend from a long
  time) a liar but you are acting the *same* (and I don't think that Howard
  is a coward and I *know* that Thiago is not a liar). Never one person
 here
  threatened another one and you're using this excuse as a way to run away
  from the responsability of presenting facts when *you can't*.
 
 Even if Tapestry is not relevant in the web framework space (and I'm
 not
  saying it isn't), there are a lot to be learned with it (and its IOC
  framework), with its community (which is very supportive, well behaved --
  except from you -- and intelligent), reading the source codes and
 learning
  incredible solutions that are the result of the work of great minds.
 
 Atenciosamente,
 
  Matheus Eduardo Machado Moreira
  matheus@gmail.com
 
 
  2013/11/21 Muhammad Gelbana m.gelb...@gmail.com
 
   Tapestry is an idea Mr. Emmanuel and Ideas are troll proof.
  
   *-*
   *Muhammad Gelbana*
   http://www.linkedin.com/in/mgelbana
  
  
   On Thu, Nov 21, 2013 at 1:05 PM, Peter Hvass p.hv...@albourne.com
  wrote:
  
Wooow! What is this inane crap? :D This is hilarious in general on
 all
sides!
   
   
The best bit was discovering this wiki page;
http://wiki.apache.org/tapestry/Tapestry5Trolls
   
   
Have been giggling with a colleague over this today. :)
   
- Original Message -
   
From: ICE Ernesto Arteaga Zavala arterza...@gmail.com
To: Tapestry users users@tapestry.apache.org
Sent: Thursday, November 21, 2013 1:03:04 AM
Subject: Re: Web frameworks
   
Emmanuel,
   
Then have sex with Wicket and let us work with the framework we
prefer...
   
   
2013/11/20 Emmanuel Sowah eso...@gmail.com
   
 And let me clarify some more about live class reloading in Wicket.
   Wicket
 has 2 modes- development and production. When you turn on
 development
mode,
 it reloads classes live. So don't fool yourself and others to think
 Tapestry is the only framework that does live class reloading.


 On Wed, Nov 20, 2013 at 10:18 PM, Thiago H de Paula Figueiredo 
 thiag...@gmail.com wrote:

  On Wed, 20 Nov 2013 19:04:30 -0200, Emmanuel Sowah 
  eso...@gmail.com
   
  wrote:
 
  Don't listen to Thiago, he is just blowing hot air. Tapestry is
 no
   more
  relevant, as can be seen in the article:
  http://zeroturnaround.com/rebellabs/the-2014-decision-
  makers-guide-to-java-web-frameworks/
  As you may see, Tapestry is not mentioned anywhere in that
  article.
 
 
  A single article shouldn't be the single decision point of any
decision.
  Not to mention that ZeroTurnaround provides a tool that provides
  live
 class
  reloading, which Tapestry already does for some scenarios.
 
 
  What about Vaadin, GWT or Wicket?
 
 
  Drink another shot! :D
 
 
  Thiago, please stop misleading people.
 
 
  Now you're calling me a liar or something by accusing me of
   misleading
  people. That's rude, specially in a medium which is archived for
  many
 years
  to come, and most people don't like rude people. You're being so

Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread Lance Java
I didn't take the time to fully understand your code but a ValueEncoder's
role is solely to serialize between clientside string and serverside
object. Nothing more.


Re: The Rise and Fall of Tapestry

2013-11-22 Thread Matheus Eduardo Machado Moreira
+1 :-)

   Atenciosamente,

Matheus Eduardo Machado Moreira
matheus@gmail.com


2013/11/22 Borut Bolčina borut.bolc...@gmail.com

 You need professional help. That's my contribution.


 2013/11/21 Emmanuel Sowah eso...@gmail.com

  Hi guys,
 
  Tapestry did not make it to a recent Web frameworks report released by
  Zeroturnaround found here:
 
 
 http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/
  .
 
  This to me, and many others, is the clearest evidence yet that Tapestry
 has
  failed and that Tapestry is no more relevant. Tapestry, once a rising
 star
  with huge following, is reduced to rags with a very small cult following.
  Users of Tapestry now are mostly newbies to Java or just finished school
  and playing about with some home hobby projects. Or people, like Thiago H
  de Paula Figueiredo, who write applications not used by more than 3
 people.
 
  Now, to hammer the last nails on Tapestry's coffin, I've decide to write
 a
  blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
  would discuss include:
 
  1. The begin
  2. How Tapestry betrayed it's users by breaking existing code base at any
  major release.
  3. The arrogance of Howard Lewis *Ship*
  4. When the 'H' in Howard became 'C' to form Coward.
  5. When the Ship sank.
  4. How Tapestry became a one-man project
  5. Migration path to other web frameworks
  6. How Tapestry would be remembered.
  7. Why Howard finally embraced Wicket and started using it in his
 clients'
  projects.
  8. When Tapestry became Wicketstry or Tapwickstry.
  ...
 
  I want to have 10 points to write about in my blog. Please feel free to
  suggest some other points for me.
 
  I have to mention that I will strictly moderate comments on my blog in
  order to filter out venomous comments from Tapestry cult trolls like the
  ones I've seen here the last few days.
 
  Please contribute.
 
  Cheers
 



Re: Web frameworks

2013-11-22 Thread Thiago H de Paula Figueiredo
On Fri, 22 Nov 2013 17:28:22 -0200, Emmanuel Sowah eso...@gmail.com  
wrote:


What I know, for sure, is that Howard is a coward. He has a double  
agenda. He doesn't practise what he preaches. He preaches Tapestry to  
his cult
members here but practises Wicket on his clients' projects. And admit  
that too in an interview.

I hate the way he uses Thiago like a slave.


Don't let my wife know about that! She called dibs on my slavery! :D


He sits there and act like a
dictator. He even looks like Saddam Hussein, the dead dictator of Iraq.


Both have beards. I can see the similarity . . . :P

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread Lance Java
I'm assuming you know that the encoder is fired every time a conversion
between clientside id and serverside object is done. This includes your
delete action etc.


Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread George Christman
Yes I'm aware and I'm also aware the encoder is fired twice while adding a
row, once for the row and a second time for the remove action. The
ajaxformloop has never seemed to be straight forward, I'm always interested
in a simpler approach. Do you believe this may be the cause of the issue?


On Fri, Nov 22, 2013 at 3:02 PM, Lance Java lance.j...@googlemail.comwrote:

 I'm assuming you know that the encoder is fired every time a conversion
 between clientside id and serverside object is done. This includes your
 delete action etc.




-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York


Re: 5.4 Bug with select nested inside form loop.

2013-11-22 Thread George Christman
Your on :) you can just paypal me haha.

Well the value encoder doesn't appear to be the issue. :( I can completely
remove the encoder parameter from the component and refresh the page and it
will still hold on to the wrong result despite the correct select option
being selected in the select menu. I tried clearing my browser cache as
well, no change. Should I file a bug report with JIRA?


On Fri, Nov 22, 2013 at 3:24 PM, Lance Java lance.j...@googlemail.comwrote:

 As I said... I haven't taken the time to fully understand the code.

 That being said, I'd be willing to bet you a fiver that it's causing the
 issue
 :)




-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York


Re: The Rise and Fall of Tapestry

2013-11-22 Thread Thai Tran

7 years of trolling and hating. Common dude, grow up and get a life


On 11/23/2013 2:50 AM, Matheus Eduardo Machado Moreira wrote:

+1 :-)

Atenciosamente,

Matheus Eduardo Machado Moreira
matheus@gmail.com


2013/11/22 Borut Bolčina borut.bolc...@gmail.com


You need professional help. That's my contribution.


2013/11/21 Emmanuel Sowah eso...@gmail.com


Hi guys,

Tapestry did not make it to a recent Web frameworks report released by
Zeroturnaround found here:



http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/

.

This to me, and many others, is the clearest evidence yet that Tapestry

has

failed and that Tapestry is no more relevant. Tapestry, once a rising

star

with huge following, is reduced to rags with a very small cult following.
Users of Tapestry now are mostly newbies to Java or just finished school
and playing about with some home hobby projects. Or people, like Thiago H
de Paula Figueiredo, who write applications not used by more than 3

people.

Now, to hammer the last nails on Tapestry's coffin, I've decide to write

a

blog with the title: *The Rise and Fall of Tapestry*. The paragraphs I
would discuss include:

1. The begin
2. How Tapestry betrayed it's users by breaking existing code base at any
major release.
3. The arrogance of Howard Lewis *Ship*
4. When the 'H' in Howard became 'C' to form Coward.
5. When the Ship sank.
4. How Tapestry became a one-man project
5. Migration path to other web frameworks
6. How Tapestry would be remembered.
7. Why Howard finally embraced Wicket and started using it in his

clients'

projects.
8. When Tapestry became Wicketstry or Tapwickstry.
...

I want to have 10 points to write about in my blog. Please feel free to
suggest some other points for me.

I have to mention that I will strictly moderate comments on my blog in
order to filter out venomous comments from Tapestry cult trolls like the
ones I've seen here the last few days.

Please contribute.

Cheers




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org