Code Monkey home page Code Monkey logo

vraptor's Introduction

VRaptor 3

Build status

A web MVC framework for fast and maintainable development. Documentation can be found at http://vraptor3.vraptor.org

Latest version

The latest version is available at https://github.com/caelum/vraptor4 and it should be used for new projects.
It's documentation can be found at http://vraptor.org

Downloading directly or using it through Maven

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

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

Building in your machine

If you want to use the example applications contained within vraptor, execute:

mvn package

And then configure the projects in your eclipse using maven:

mvn eclipse:eclipse

Contribute to VRaptor

Want to contribute with code, documentation or bug report?

You can find guidelines to contribute to VRaptor here.

vraptor's People

Contributors

abstractj avatar adrianoalmeida7 avatar asouza avatar caiofilipini avatar ceci avatar danilomunoz avatar davidpaniz avatar davisnog avatar dipold avatar dtelaroli avatar fabiokung avatar garcia-jj avatar ggotardo avatar guilhermesilveira avatar jonasabreu avatar josedonizetti avatar lavieri avatar leocwolter avatar lucascs avatar luiz avatar marceloemanoel avatar nykolaslima avatar peas avatar qmx avatar rafaeldff avatar renanreismartins avatar rodolfoliviero avatar sergiolopes avatar turini avatar wbotelhos 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

vraptor's Issues

decide @Path priority

@path priority is still a problem. one (chosen) approach was to allow a priority int property which works as a field to sort routes.
another idea was to sort them by "full match" or "regex match"

Injecting session objects on components

When I put an object into HttpSession, I cant use it as a dependency:

this.session.setAttribute("currentUser", user);

@resource
public class MyController {
public MyController(User currentUser) {...}
}

dont work

redirectTo fails when there are exceptions on constructor

on
result.redirectTo(SomeController.class).someMethod();

if SomeController has:

public SomeController(Dependency dependency) {
dependency.someMethod();
}

redirect fails with a NullPointerException, inside DefaultProxifier > line
return enhancer.create(parameterTypes, parameterValues);

all parameters passed are null...

perhaps bypass the constructor will resolve

cache cglib enhancers

cglib enhancer objects can be cached. check if its a real optimization or not. maybe its not worthy

TimeConverters

create time based converters (hh:mm, Time.SHORT and so on)... both locale based and a fixed one.

jodatime converters

create jodatime converters (the same ones as from vraptor2).
only register them automatically if jodatime api is on the classpath

Improve message for jsp not found.

When VRaptor doesn't find a jsp, it just shows a resource not found page. It would be better if VRaptor told that it couldn't find the jsp.

i18n converters

create both converter types for BigDecimal, BigInteger, all decimal and float types:

  • locale based
  • fixed pattern

Dispatch to view from another logic method

Similar to current LogicResult, but without going trough the whole request cycle again. IOW, given a logic method, figure out the view VRaptor would have computed and redirect to that.

(Issue by Fabio Kung)

commons-upload should be optional

Most applications don't use uploading, so this jar should be optional.

It is required because MultipartInterceptor is always registered.

AppScoped ComponentFactory initialized twice in Pico

when we have an @ApplicationScoped ComponentFactory (for example one for hibernate SessionFactory) pico is initializing the component twice if we use callback annotations.

here is a test case:

@Component @ApplicationScoped
public class X implements ComponentFactory<Y> {
   @PreDestroy
    public void z() {}
}

also note a related bug: when using @PreDestroy the component is instantiated at register time not when the component is firstly used

Generalize code for dealing with scanned stereotyped components

Currently, both SpringProvider and PicoProvider have code to scan the classpath (Pico with Reflections and Spring with its own magic sauce), and deal with registration for sterotypes known to VRaptor, like registering resources and converters and some such. This issue is meant to remove the duplication.

(Issue by Fabio Kung)

cache static content existence

the CachedStaticContentHandler caches static content existence and may be a source of memoverflow. doc it as a way of optimization but only if you configure it as a real cache

Error while ovewriting VRaptor components with Spring

I created my own RoutesConfiguration but got this exception:

Error creating bean with name 'defaultRouter': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.route.RoutesConfiguration]: : No unique bean of type [br.com.caelum.vraptor.http.route.RoutesConfiguration] is defined: expected single matching bean but found 2: [noRoutesConfiguration, myRoutesConfiguration]

Apparently this is similar to the bug in pico's implementation (#41)

Changes to vraptor site [pt]

  • change everything to JSP and stop copying and pasting the menu, design etc
  • install google analytics
  • remove /htmlflat from the documentation URL
  • improve the support page
  • finish documentation
  • handle 404 errors (on every release we're changing URLs)
  • change downloads to somewhere with statistics (github doesn't count downloads)

MultipartInterceptor config

configuration should be done through a custom component @AppScoped i.e.:

interface MIConfig { File getNewTempFile(); int getMaxFileSize(); }

both max upload size and temp file name should be given by this interface

DefaultConverters beign registered twice

so PicoContainersProvider logs something like:

logger
                    .warn("VRaptor was already initialized, the contexts were created but you are registering a component."
                            + "This is nasty. The original component might already be in use."
                            + "Avoid doing it: "
                            + requiredType.getName());

Create inteligent Mocks for testing

When I try to test a logic, I want to use mocked Results and Validators...
I just cant ignore them on jMock, because of generic returns...

So I want a MockResult and a MockValidator that does nothing, and still runs on my logic code without NPE.

It might be nice too if I could retrieve some useful information for asserting stuff.

adding values to an existing list

if during parameter setting, a value is inserted in a list which already exists, the list wont be cleared after parameter setting... only newly created lists are cleaned later.

cache AsmTypeCreator instances

cache all types created by AsmTypeCreator. this is a real optimization as data is parsed and bytecode is generated every single request.

Specify different outcomes for different formats

Make it possible for a logic method to specify different outcomes (different calls to result) for different formats. VRaptor will choose the format from the Accept header, and possibly also from request parameters.

Note: Before implementing, read this and this.

(Issue by Fabio Kung)

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.