Giter Site home page Giter Site logo

caelum / vraptor4 Goto Github PK

View Code? Open in Web Editor NEW
348.0 78.0 329.0 13.76 MB

A web MVC action-based framework, on top of CDI, for fast and maintainable Java development.

Home Page: http://vraptor.org

License: Apache License 2.0

Shell 0.02% Java 78.27% CSS 0.80% JavaScript 0.48% Ruby 0.51% HTML 19.92%

vraptor4's Introduction

image

A web MVC action-based framework, on top of CDI, for fast and maintainable Java development.

Downloading

For a quick start, you can use this snippet in your maven POM:

<dependency>
    <groupId>br.com.caelum</groupId>
    <artifactId>vraptor</artifactId>
    <version>4.2.2</version> <!--or the latest version-->
</dependency>

More detailed prerequisites and dependencies can be found here.

Documentation

More detailed documentation and Javadoc are available at VRaptor's website. You also might be interested in our articles and presentations' page.

Building in your machine

You can build VRaptor by running:

mvn package

VRaptor uses Maven as build tool, so you can easily import it into your favorite IDE.

Contribute to VRaptor

Do you want to contribute with code, documentation or reporting a bug? You can find our guideline here.

vraptor4's People

Contributors

adolfoweloy avatar angeliski avatar asouza avatar ceci avatar chkal avatar csokol avatar danilomunoz avatar dipold avatar dtelaroli avatar felipeweb avatar fernandabernardo avatar fmstefanini avatar garcia-jj avatar guilhermesilveira avatar ivosestren avatar jonasabreu avatar lucascs avatar luiz avatar marcosalles avatar mariofts avatar nykolaslima avatar peas avatar philippeehlert avatar renanigt avatar robsonperassoli avatar rponte avatar rsaraiva avatar turini avatar valeriolopes avatar vitornp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vraptor4's Issues

Remove parent pom

I think that we don't need to use pom as modules, since we only will deploy vraptor-core on maven. The other modules will only zipped to use in dist files.

What you thing, devs? @lucascs @Turini @mariofts

Plugins to do

  • ExtJS
  • Serializer that works with Hibernate Proxies #102
  • Persistence plugins (existing like Hibernate, JPA)
  • Restfulie, see #131

SessionScoped bean included in request gets replaced with a container version

a class:

@SessionScoped
class X{ } 

in the controller:

public void bla(){
   syso(someXInstance) // prints X@123
   result.include("theX", someXInstance);
} 

in jsp

${theX} <!-- prints X@987, should be the same included in the controller-->

Apparently the included version was replaced by a container version (from CDI) . Need more tests to confirm.

Forward/redirect(String) doesn't work

java.lang.RuntimeException: java.lang.String is final
at javassist.util.proxy.ProxyFactory.checkClassAndSuperName(ProxyFactory.java:748)
at javassist.util.proxy.ProxyFactory.makeSortedMethodList(ProxyFactory.java:772)
at javassist.util.proxy.ProxyFactory.computeSignature(ProxyFactory.java:781)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:392)
at br.com.caelum.vraptor4.proxy.JavassistProxifier.proxify(JavassistProxifier.java:89)
at br.com.caelum.vraptor4.proxy.JavassistProxifier$Proxy$_$$_WeldClientProxy.proxify(Unknown Source)
at br.com.caelum.vraptor4.view.DefaultLogicResult.forwardTo(DefaultLogicResult.java:91)

Update/removing dependencies

Hi devs. I think that we can change some dependencies in core.

slf4j - Migrate to 1.7 family, that allow us to use varargs instead of methods with array (up to 3 objects only).

Scannotations - should be removed, since we don't need classpath scanning.

OGNL - IOGI can do all workd better.

Configure travis

Configure travis to help us to receive a fast feedback for each push.

Move MessageConverter to xtream package

MessageConverter exists into br.com.caelum.vraptor4.validator. But this class have xstream features, so needs to be moved to br.com.caelum.vraptor4.serialization.xstream package.

linkTo is waiting for null parameters if nothing is informed

When we try to use linkTo on Brutal with the following method:

@SimpleBrutauthRules({ModeratorOrKarmaRule.class})
@AccessLevel(PermissionRulesConstants.MODERATE_EDITS)
@Post("/publicar/{moderatableType}")
public void publish(Long moderatableId, String moderatableType, Long aprovedInformationId,  String aprovedInformationType)

we got an exception when no parameters are informed. We try to use it like this:

${linkTo[HistoryController].publish}

The exception we got is:

Error 500

javax.servlet.ServletException: java.lang.NullPointerException
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:944)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:879)
at org.apache.jsp.WEB_002dINF.jsp.history.similarAnswers_jsp.jspService(similarAnswers_jsp.java:287)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1365)
at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:80)
at br.com.caelum.vraptor.core.DefaultStaticContentHandler$Proxy$
$$WeldClientProxy.deferProcessingToContainer(Unknown Source)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:92)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:539)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:412)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:271)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:98)
at br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:69)
at br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:70)
at br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:93)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.interceptors.ConversionErrorsInterceptor.intercept(ConversionErrorsInterceptor.java:29)
at br.com.caelum.brutal.interceptors.ConversionErrorsInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:78)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:101)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutauth.interceptors.SimpleBrutauthRuleInterceptor.intercept(SimpleBrutauthRuleInterceptor.java:39)
at br.com.caelum.brutauth.interceptors.SimpleBrutauthRuleInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.providers.GlobalInterceptor.intercept(GlobalInterceptor.java:69)
at br.com.caelum.brutal.providers.GlobalInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:98)
at br.com.caelum.vraptor.interceptor.FlashInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack.next(DefaultSimpleInterceptorStack.java:34)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.simplemail.AsyncMailerFlushInterceptor.intercept(AsyncMailerFlushInterceptor.java:33)
at br.com.caelum.vraptor.simplemail.AsyncMailerFlushInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:46)
at br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:37)
at br.com.caelum.vraptor.interceptor.AroundExecutor.execute(AroundExecutor.java:34)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:75)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.interceptors.RedirectCommitInterceptor.intercept(RedirectCommitInterceptor.java:39)
at br.com.caelum.brutal.interceptors.RedirectCommitInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack.next(DefaultSimpleInterceptorStack.java:34)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.brutal.providers.TransactionInterceptor.intercept(TransactionInterceptor.java:41)
at br.com.caelum.brutal.providers.TransactionInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:46)
at br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:37)
at br.com.caelum.vraptor.interceptor.AroundExecutor.execute(AroundExecutor.java:34)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:75)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:79)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.interceptor.StackNextExecutor.execute(StackNextExecutor.java:27)
at br.com.caelum.vraptor.interceptor.StackNextExecutor.execute(StackNextExecutor.java:8)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:75)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.interceptors.RulesInterceptor.intercept(RulesInterceptor.java:46)
at br.com.caelum.brutal.interceptors.RulesInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.interceptors.InternalErrorInterceptor.intercept(InternalErrorInterceptor.java:36)
at br.com.caelum.brutal.interceptors.InternalErrorInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.brutal.interceptors.PimpMyControllerInterceptor.intercept(PimpMyControllerInterceptor.java:31)
at br.com.caelum.brutal.interceptors.PimpMyControllerInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:63)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.interceptor.ControllerLookupInterceptor.intercept(ControllerLookupInterceptor.java:81)
at br.com.caelum.vraptor.interceptor.ControllerLookupInterceptor$Proxy$
$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$
$$WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:48)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:106)
at br.com.caelum.vraptor.ioc.cdi.CDIProvider.provideForRequest(CDIProvider.java:24)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:112)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:521)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:412)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:351)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:451)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:916)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:76)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.NullPointerException
at br.com.caelum.vraptor.http.route.DefaultParametersControl.fillUri(DefaultParametersControl.java:112)
at br.com.caelum.vraptor.http.route.FixedMethodStrategy.urlFor(FixedMethodStrategy.java:83)
at br.com.caelum.vraptor.http.route.DefaultRouter.urlFor(DefaultRouter.java:169)
at br.com.caelum.vraptor.http.route.DefaultRouter$Proxy$
$$_WeldClientProxy.urlFor(Unknown Source)
at br.com.caelum.vraptor.view.LinkToHandler$Linker.toString(LinkToHandler.java:140)
at com.sun.el.lang.ELSupport.coerceToString(ELSupport.java:340)
at com.sun.el.lang.ELSupport.coerceToType(ELSupport.java:370)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:222)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1009)
at org.apache.jsp.tag.web.historyForm_tag.doTag(historyForm_tag.java:128)
at org.apache.jsp.WEB_002dINF.jsp.history.similarAnswers_jsp._jspx_meth_tags_historyForm_0(similarAnswers_jsp.java:537)
at org.apache.jsp.WEB_002dINF.jsp.history.similarAnswers_jsp._jspx_meth_c_forEach_0(similarAnswers_jsp.java:502)
at org.apache.jsp.WEB_002dINF.jsp.history.similarAnswers_jsp._jspx_meth_c_if_1(similarAnswers_jsp.java:454)
at org.apache.jsp.WEB_002dINF.jsp.history.similarAnswers_jsp._jspService(similarAnswers_jsp.java:137)
... 161 more

Unsatisfied dependencies for type MethodHandleFactory

After #142 was merged into master, I'm getting this exception.

SEVERE: Exception sending context initialized event to listener instance of class org.jboss.weld.environment.servlet.Listener
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type MethodHandleFactory with qualifiers @default
at injection point [BackedAnnotatedParameter] Parameter 2 of [BackedAnnotatedConstructor] @Inject public br.com.caelum.vraptor.reflection.DefaultMethodExecutor(@lru CacheStore<Method, MethodHandle>, MethodHandleFactory)
at br.com.caelum.vraptor.reflection.DefaultMethodExecutor.(DefaultMethodExecutor.java:0)

smart interceptor discovery

In Vraptor3 we have @Lazy Interceptors in order to speed up accept's resolution for non dynamic conditions... I think we can improve this, finding a way to associate controllers with only interceptors that makes sense for it... Every AnnotationCustomInterceptor should be checked in startup, interceptor that only depends of ControllerMethod...

My english is not so good to explain my idea... Sorry :).

supports lazy evaluation for put methods on vraptor cache

As @lucascs says:

we could add an element supplier "function" to VRaptorCache. what do you think?

Something like:

MethodHandle methodHandle = cache.getOrPut(method, new Supplier<>() {
     public MethodHandle get() {
         return methodHandleFactory.create(instance.getClass(), method);
     }
});

Better messages signature

I18nMessage class have constructor like (String category, String message, Object... parameters) and ValidationMessage class have constructor like (String message, String category, Object... messageParameters)

Change all constructors to use the same signature, avoiding mistakes.

remove MethodInfo and create ActionParameters, ActionResult (or something like this)

vraptor-brutauth project need easy access to parameters names, and it would be much more interesting if instead of putting a new method into MethodInfo, create a ActionParameter "component" that besides returning the parameters, already has this behavior (return parameters names).

*** not sure if Action prefix is really intuitive, any ideas?

New LinkTo sintax not working on Jetty

Apparently Jetty (and other containers) does not supports method calls in Expression Language when the method is a varargs.

The stack:

Caused by: 
org.apache.jasper.JasperException: java.lang.IllegalArgumentException: wrong number of arguments

To reproduce just run music-jungle on jetty and navigate. I just push a branch with all the configurations needed to start CDI on jetty on https://github.com/caelum/vraptor4/tree/jetty.

just run mvn jetty:run

Use method syntax for linkTo

Since everyone will use Servlet 3.0, we could support something like:

${linkTo[SomeController].method(arg1, arg2)}

ConcurrentModificationException on Redirect

When a application redirect the FlashInterceptor inserts the attributes of the current request in the session inside a redirect listener. But if the application defines a redirect listener that inserts more data into the result, this can cause ConcurrentModificationException if the user sends multiple requests.

As a possible solution, we could execute the FlashInterceptor's redirect listener as the last redirect listener of the request, this way we ensure there is no more modifications to the result map inside the request.

Proxifier should use superclass when proxifying a weld proxy

If the proxyfier tries to proxify a class that is already proxified, javassist throws a exception. Something like:

Caused by: java.lang.RuntimeException: duplicate method: getHandler in br.com.caelum.brutal.infra.rss.converter.OndeTrabalharRSSJob$Proxy$_$$_WeldClientProxy_$$_javassist_20
    at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:509)
    at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)
    at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)
    at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)
    at br.com.caelum.vraptor4.proxy.JavassistProxifier.proxify(JavassistProxifier.java:84)

So, before creating the proxy, the proxyfier should verify if the instance is already a proxy and get its superclass.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.