Projetos brasileiros, frameworks mvc vraptor, mentawai, etc

Pessoal, um dos principais problemas que enfrento em adotar um framework mvc brasileiro e a falta de constante evolução dos frameworks. Os outros frameworks como struts, springmvc, etc estão em constante evolução e tem muitas pessoas envolvidas no projeto.

Gostaria de saber como anda a evolução do framework mentawai, pois eu pude notar que este framework deste janeiro deste ano não teve nenhuma outra evolução. Existe em andamento uma outra versão ?

E o projeto vraptor, como anda? Notei que o pessoal do framework so anda preocupado com o controler do mvc, tendo em vista que poderia criar facilidades com uso de tag libraries na camada de visão, etc… Como o mentawai…

O pessoal envolvido neste forum, tem em mente ou esta construindo algum outro framework brasileiro.

Comentem a respeito.

Pelo que eu conheço do projeto VRaptor, essa preocupação de desenvolver apenas o controller é uma característica do projeto e eles não largarão mão disso.

Sempre foi intenção do projeto focar apenas nessa parte e não virar um canivete suíço para desenvolvimento web.

O fato de não ter lançado uma nova versão desde janeiro se deve apenas ao fato de gostarmos de acumular várias novidades e correções para só então lançar uma nova release.

É claro que se há uma nova feature e/ou uma correção importante, então nos apressamos para lançar uma nova versão, o que não é o caso no momento.

Veja através do nosso fórum que o framework está bastante ativo, com discussoes constantes para a inclusão de novas features.

Recomendamos que vc utilize o jar beta, que disponibilizamos diariamente no site.

Quanto a camada de visão, acreditamos que JSTL deixa um pouco a desejar por ser genérica e um conjunto de tags extensíveis e integradas com o framework é bastante importante para simplificar as coisas. Claro que nada te impede de utilizar JSTL, EL, Velocity, etc.

Para matar a sua curiosidade, esse é o changelog para a versão 1.9:

- tag i18n now accepts the key in the body as well as through the key attribute.
That's to allow dynamic keys, something like:

<mtw:i18n>
   <mtw:out value="something" />
</mtw:i18n>

- method LocaleManager.setDir to change the default location of the i18n files. (Default = "/i18n")

So to set it to be inside the WEB-INF directory, you can do: LocaleManager.setDir("WEB-INF/i18n");

- Now you can add a filter specific to an action (ActionConfig) that will be executed BEFORE any global filter.

action("/Foo", FooAction.class)
    .filterFirst(new ValidatorFilter(VAL_ERROR))
    .on(SUCCESS, fwd("/cool.jsp")
    .on(ERROR, fws("/nocool.jsp");
    

- Improvement in the exceptions, in other words, now you will see the correct exception in your browser even when it happened through a reflection call (and not the InvocationTargetException that does not tell you anything!)

- Debug logs throughout the code, specially on DIFilter, so that you can turn on DEBUG and see how the filter is operating.

Debug.enable(true);


- Paginator Tag improvements: http://paginator.mentaframework.org/


- CollectionFilter to turn a list of html parameters into a collection.

Ex:

<input name="name1">
<input name="name2">
<input name="name3">
...
<input name="name10">

You can add:

filter(new CollectionFilter("name"));

and get a collection from the action input:

Collection coll = (Collection) input.getValue("name");

Note: They will be in order and if there is a gap in the sequence, the value of the gap will be null in the collection.


- MultiApplicationManager to load different application managers for the same application.

public class ApplicationManager extends MultiApplicationManager {
  
  	public void registerManagers() {
  		register(ModuleOneApplicationManager.class);
  		register(ModuleTwoApplicationManager.class);
  		register(ModuleThreeApplicationManager.class);
  	}
}


- New Ajaxtags inside the org.mentawai.ajaxtag package.


- LocaleManager.setDefaultDateMask("dd/MM/yyyy") and LocaleManager.setDateMask(Locale loc, String mask) so that you can set the default date mask 
and a date mask specific of that locale. Date mask will be used with a SimpleDateFormat to convert a date.


- ApplicationManager.setViewDir to set up a directory where all JSPs will reside.

Ex:

setViewDir("/WEB-INF/jsp");

so a new Forward("/hello.jsp") will go to:

/WEB-INF/jsp/hello.jsp


!!!! - Now inner actions can also be defined as Java inner classes (static or non-static) !!! Check the HelloInnerActions example below:

package examples.inneractions;

import java.util.*;

import org.mentawai.core.*;

public class HelloInnerActions extends BaseAction {
	
	public String execute() throws Exception {
		output.setValue("speak", "Hello there!");
		return SUCCESS;
	}
	
	public String sayBye() throws Exception {
		output.setValue("speak", "Bye for now...");
		return SUCCESS;
	}
	
	public class SayBye2 extends BaseAction {
		
		public String execute() throws Exception {
			
			output.setValue("speak", "Bye for now from SayBye2 inner action class!");
			
			return SUCCESS;
			
		}
		
	}
	
	public static class SayBye3 extends BaseAction {
		
		public String execute() throws Exception {
			
			output.setValue("speak", "Bye for now from SayBye3 static inner action class!");
			
			return SUCCESS;
			
		}
	}
}
	
		
- min and max for DateRule (validation)

- add support to JPA