Version 2.4

Release Notes - VRaptor - Version 2.4

** Bug
    * [VRA-28] - validation and common errors
    * [VRA-400] - Link to myDVDs on pt site is broken

** Improvement
    * [VRA-25] - regex view manager should drop $1, $2, $3
    * [VRA-204] - Reorganize VRaptor´s dependencies and contents in vraptor-all.zip
    * [VRA-262] - Improve log with Log4J trace level and better exception messages
    * [VRA-329] - Deprecate @Logic.parameters in favor of a new @Parameters
    * [VRA-351] - do not use capital letters for @Component when class name has no Logic/Command/Action/Controller
    * [VRA-358] - create a plugin which generate vraptor.xml  automatically
    * [VRA-367] - Reduce dependencies, as Hibernate Validator now is a top level project
    * [VRA-378] - Configuration options for SpringPlugin
    * [VRA-398] - Use the jstl message bundle for Hibernate Validator
    * [VRA-402] - Autoregister LocaleBigDecimalConverter

** New Feature
    * [VRA-369] - create tutorial on error handling with vraptor 
    * [VRA-404] - Create new flash scope

** Task
    * [VRA-221] - 70% test coverage

Version 2.3.3

Release Notes - VRaptor - Version 2.3.3

** Bug
    * [VRA-197] - org.vraptor.config.Configuration throws NullPointerException when using TestEngine (won't fix)
    * [VRA-342] - Mydvds demo - Register form must use post instead of get
    * [VRA-389] - ExpressionEvaluator does not support null as its last value
    * [VRA-392] - Hibernate validator plugin does not set the path attribute in FixedMessage when using @Validate(params...)

** Improvement
    * [VRA-74] - pmd: Avoid long methods (won't fix)
    * [VRA-198] - mention new MockedServletContext("WebContent") in test plugin tutorial
    * [VRA-371] - Create a simple logic example on blank project for users to know how it works
    * [VRA-376] - JPA Plugin Unit tests
    * [VRA-377] - Update @Out javadoc
    * [VRA-384] - improve VRaptorExecution code
    * [VRA-388] - RemoteViewManager should outject values from any scope 
    * [VRA-390] - update mydvds using jquery for ajax request
    * [VRA-391] - hibernate validator plugin should eject any method parameter on validation error
    * [VRA-393] - recieve the user as method parameter in mydvd's NewUserComponent
    * [VRA-394] - fix file-download tutorial

** New Feature
    * [VRA-23] - different regex strings for different matching paths (won't fix)
    * [VRA-332] - New plugin: outjecter (won't fix)
    * [VRA-379] - properties support for plugin 

** Task
    * [VRA-14] - tutorial on direct context access
    * [VRA-382] - Check SpringPlugin test cases for failing resources (cannot reproduce)
    * [VRA-385] - component and method parameter instantiations refactoring (won't fix)
    * [VRA-386] - API Change Remove LogicContext
    * [VRA-387] - component instantiation can only happen after basic interceptors due to their outjection process

** API Changes

        * RegisterAttributesInterceptor does not register the JavaMethod wrapper and METHOD_PARAMETERS within the LogicContext scope. Use
        flow.getLogicRequest().getLogicDefinition().getLogicMethod instead.

        * LogicContext has been removed

Version 2.3.2.1

** Bug
    * [VRA-372] - VRaptor does not lookup components if vraptor.xml is not present

Version 2.3.2

** Bug
    * [VRA-260] - @In should create ArrayList for a List if create=true
    * [VRA-343] - VRaptor servlet shout not convert java.lang.Exception to HTTP Status 500 error
    * [VRA-345] - SpringProvider does not correctly call its dependencies
    * [VRA-357] - primtive parameter on a method should be optional
    * [VRA-361] - view redirect fails to carry over request outjected objects
    * [VRA-362] - support GregorianCalendar as the default implementation of the Calendar interface
    * [VRA-364] - InterceptorDealer throws a NullPointerException when using InterceptorStack
    * [VRA-365] - vraptor does not inject ServletContext in Component when using @In

** Improvement
    * [VRA-268] - Improve object instantiation through create=true
    * [VRA-338] - @Parameter with multiple values doesn't work as logic method parameter
    * [VRA-347] - update mydvds using a transaction interceptor
    * [VRA-349] - remove ThreadLocal from mydvds
    * [VRA-352] - Interceptor spring injection
    * [VRA-363] - Joda Time has deprecated YearMonthDay and TimeOfDay classes
    * [VRA-366] - Use the overloaded version of Class.forName() to prevent loading of unnecessary classes
    * [VRA-370] - do not use TRACE level of log4j

** New Feature
    * [VRA-30] - spring ioc integration for @In annotation
    * [VRA-316] - Inject an EntityManager through @PersistenceContext
    * [VRA-344] - allow methods to be intercepted
    * [VRA-350] - Converter to BigDecimal (contributed by Ricardo A. F. da Cruz)
    * [VRA-353] - constructor injection support for interceptors
    * [VRA-359] - Support autoDiscover option on vraptor.xml to disable automatic classes lookup

** Task
    * [VRA-301] - use the BeanProvider interface to provide beans for the basic introspector
    * [VRA-327] - VRaptor .zip assembly should not expose all the optional jars
    * [VRA-346] - Update jars on MyDvds

        632 tests (+28)
        68% coverage (+0.8)

Version 2.3.1

** Bug
    [VRA-266] - accept an arraylist as a method parameter
    [VRA-318] - Update "Filling combo boxes" apt documentation
    [VRA-325] - serious: annotated logics with @Logic  that has not the optional value attribute gets named as "".
    [VRA-330] - Mydvds demo - Ant build is not adding /resources into the war file
    [VRA-336] - fix content-type for ajax requests

** Improvement
        - blank-project log level of vraptor messages changes to INFO as default
        - log level info also shows all found components
    [VRA-156] - add the locale converter to the base converters
    [VRA-174] - add client side redirection with support for expression language to faq
    [VRA-175] - add client side redirection with support for expression language tutorial
    [VRA-229] - Improve VRaptor.xml options
    [VRA-233] - all logic methods should be cached
    [VRA-235] - refactor getter and setter exception
    [VRA-246] - More elegant URL defaults
    [VRA-252] - add faq on how to change user locale with session
    [VRA-253] - subversion
    [VRA-264] - Scan .jars that have vraptor.prorpeties inside it for @Components
    [VRA-280] - error path should be the entire path
    [VRA-288] - logout button on mydvds
    [VRA-315] - Create some shortcuts for redirecting and forwarding to different views, avoiding a big view properties
    [VRA-320] - ajax tutorial corrections
    [VRA-323] - Deprecate @Parameter
    [VRA-328] - DefaultComponentManager has a bizarre logics attribute

** New Feature
    [VRA-47] - sample stats component example
    [VRA-50] - stats page
    [VRA-59] - stats page tutorial
    [VRA-142] - vraptor automatically loads all converters
    [VRA-153] - automatically inject all contexts for constructor injection
    [VRA-154] - automatically inject HttpServletResponse for constructor injection
    [VRA-160] - VRaptor Remoting - AJAX Features
    [VRA-242] - support two parameters of the same type for a logic
    [VRA-245] - normal validation needs to receive the same parameters as its logic
    [VRA-287] - Support stateful session bean interfaces as components
    [VRA-326] - tutorial on radio button
    [VRA-334] - create a tutorial on how to use log4j with vraptor
    [VRA-340] - New Tiles2 Tutorial (in behave of Ricardo Cruz
)

** Task
    [VRA-12] - velocity tutorial
    [VRA-324] - Rewrite entire documentation to prefer the newest ways to do simple things
    [VRA-327] - VRaptor .zip assembly should not expose all the optional jars

        67.2% coverage (+0.8)

Version 2.3

** Bug
    [VRA-274] - Logics doesn't work properly with c:import
    [VRA-286] - Logic methods don't accept basic wrapper types nor primitive types as parameters
    [VRA-289] - fix list users page on mydvds
    [VRA-294] - Mydvds demo - List User problem
    [VRA-295] - Mydvds demo - Login error
    [VRA-296] - mydvds should not allows to create two users with the same id
    [VRA-297] - remotable support breaks urls with dots on it
    [VRA-306] - update testproxyplugin to reflect removal of Result interface
    [VRA-308] - ajax example does not work under firefox
    [VRA-309] - vraptor doesnt work with cargo due to problem on automatic loading package including an extra dot
    [VRA-310] - SimpleBooleanConverter converts empty request parameters to Boolean.FALSE

** Improvement
    [VRA-180] - update mydvds app to hibernate validator
    [VRA-250] - create tutorial on interceptor stack use
    [VRA-254] - first example with parameter injection
    [VRA-293] - create commentaries for mydvds classes
    [VRA-299] - MockedRequest should receive a simple HttpSession in its constructor
    [VRA-305] - new tutorial on unitary testing
    [VRA-312] - Rename all logic classes in mydvds and add "Component" to the end of the class name

** New Feature
    [VRA-81] - all scopes should be available for injection
    [VRA-169] - Converters for Joda-Time API
    [VRA-189] - factory annotation and automatically loading of factories
    [VRA-225] - unitary testing
    [VRA-243] - support hibernate validator on method parameters
    [VRA-277] - Config URLManger that will be used in VRaptor.xml
    [VRA-278] - @Logic should help to name method parameters
    [VRA-281] - Add support for XML remote REST requests
    [VRA-284] - Spring Integration
    [VRA-300] - spring ioc integration for constructor injection
    [VRA-303] - spring ioc example app

** Task
    [VRA-298] - Broken VRapor web unit test : no more Results are returned
    [VRA-302] - spring ioc tutorial on constructor injection
    [VRA-304] - update tutorials on functional testing about selenium
    [VRA-314] - 66% test coverage

        585 tests (+31)

    66.4% coverage (+1.9)

Version 2.2.3

** Bug
    [VRA-269] - getURLocationXpto should be mapped to ${URLocationXpto} and not ${uRLocationXpto}
    [VRA-275] - Logics doesn't work properly with c:import

** Improvement
    [VRA-219] - Refactor the basic interceptor stack: InjectionInterceptor, OutjectionInterceptor, and so on
    [VRA-257] - @Out a getter to change key value
    [VRA-258] - Deprecate @Factory for further remove
    [VRA-263] - Deprecate unused stuff
    [VRA-265] - cache getters for outjection
    [VRA-270] - rename blank-project to eclipse-blank-project and provide a readme
    [VRA-271] - Simplify lookup for ComponentType, Object and LogicMethod encapsulating them

** New Feature
    [VRA-109] - VRaptor remoting features: easy AJAX

** Task
    [VRA-272] - ajax tutorial

        554 tests (+35)

    64.5% coverage (+1.7)

Version 2.2.2

** Bug

    [VRA-239] - static logic and outjection getter are exported

** Improvement

    [VRA-34] - List all default validation messages on the system
    [VRA-104] - contexts with method for constructor injection
    [VRA-213] - improve freemarker example and update extension
    [VRA-224] - migrate mydvds project to maven
    [VRA-227] - LogicRequest should incoporate methods only exposed on its SimpleLogicRequest subinterface
    [VRA-228] - ComponentType and CURRENT_COMPONENT dependencies refactoring
    [VRA-232] - improved hibernate validator plugin
    [VRA-236] - cleanup useless exception constructors
    [VRA-237] - Support logic method parameters
    [VRA-238] - Component default name
    [VRA-249] - Possibility to annotate method parameters with @Parameter

** New Feature

    [VRA-18] - support logic method parameters
    [VRA-58] - hibernate validator tutorial
    [VRA-161] - enhance faq

** Task

    [VRA-165] - put away those packages that should generate javadoc and those which shouldn't
    [VRA-231] - 60% test coverage
    [VRA-244] - tutorial on how to use method parameters
    [VRA-247] - link to vraptor eclipse plugin
    [VRA-240] - create forum for english speaking user

        519 tests (+37)

        62.8% coverage (+3.1)

Version 2.2.1

** Bug

    [VRA-196] - simple get() method within logic class causes exception when executing vraptor 2.2
    [VRA-199] - Fix encoding for pt_BR version of the site
    [VRA-201] - Error in page Request parameter lists on website
    [VRA-205] - application key should map to the ServletContext, not the Response
    [VRA-211] - MockedServletContext causes NullPointerException when creating with TestEngine
    [VRA-214] - RegisterAttributesInterceptor register request instead of servletContext
    [VRA-223] - Unnecessary dependencies added by Maven
    [VRA-226] - multipartinterceptor should write to tmp directory

** Improvement

    [VRA-73] - pmd code improvement
    [VRA-130] - update xstream to version 1.2
    [VRA-145] - Remove ScopeLocator, creating an abstract method at ScopeType to do this job
    [VRA-200] - hibernate tutorial on messages i18n
    [VRA-204] - Reorganize VRaptor´s dependencies and contents in vraptor-all.zip
    [VRA-206] - Auto injection of basic scopes for constructor injection
    [VRA-207] - improved faq on direct access to http objects
    [VRA-212] - Offer an easy way to have lots of interceptors: InterceptorStack a la WebWork
    [VRA-216] - Eliminate interceptor-inteceptor class parallels, improve InterceptorDealer
    [VRA-217] - Refactor and test the important classes: BasicLogicFlow and VRaptorExecution
    [VRA-218] - Deprecate LogicFlow.redirect for a simpler approach
    [VRA-222] - Remove all sort of references to VRaptorExecution: making stuff testable
    [VRA-230] - Avoid log-and-throw antipattern

** New Feature

    [VRA-31] - Integrate with JSF
    [VRA-61] - Create LogicFlow.getRequest
    [VRA-84] - client redirect support with expression language
    [VRA-108] - injecting SessionContext in logic
    [VRA-123] - hibernate validator tutorial
    [VRA-133] - proxy toys
    [VRA-136] - New localized, wrapped, double and float converters
    [VRA-143] - Deprecate the <package> usage in favor of auto Component discovery
    [VRA-146] - Auto injection of request, response, servletContext and session in ScopeType.REQUEST
    [VRA-147] - @In can read also from the request.parameters if scope=REQUEST, deprecating @Read, shriking the number of annotations
    [VRA-181] - new plugin tutorial
    [VRA-203] - ignore getter methods as business logic methods
    [VRA-215] - RegisterAttributesInterceptor should also use the full class names to inject

** Task

    [VRA-183] - move jira to new server
    [VRA-187] - update site.xml to reflect new portuguese forum and jira site
    [VRA-202] - Add sourceforge logo to mydvds app
    [VRA-210] - change first example printf to println

** Tests

        482 tests (+48)

        59.7% coverage (+2.9)

Version 2.2

** Improvement

    [VRA-168] - improve converter documentation
    [VRA-170] - faq: how to get/put objects from/to session
    [VRA-173] - add client side redirection to faq
    [VRA-191] - site link to mydvds application

** New Feature

    [VRA-83] - client redirect support
    [VRA-85] - tutorial on client redirect support
    [VRA-123] - hibernate validator tutorial
    [VRA-144] - Scan web-inf/classes to load all @Components, making the XML not mandatory
    [VRA-148] - Outjection can be automatically done through getters
    [VRA-172] - create a tutorial on getter outjection
    [VRA-177] - automatically loading tutorial
    [VRA-179] - @Parameter annotation
    [VRA-188] - create vraptor's forum

** Task

    [VRA-184] - create new website
    [VRA-185] - deploy maven website on new server
    [VRA-186] - Update the POM to upload generated site to the new dedicated server
    [VRA-190] - new logo
    [VRA-193] - rollback mydvds validation
    [VRA-194] - google analytics mydvds

** Tests

        434 tests (+29)

        56.8% coverage (+1.3)

Version 2.1.1

** Bug

    [VRA-80] - test two annotations on same field type
    [VRA-135] - locale converters are not looking at all contexts
    [VRA-141] - Website-Link to ScopeTypes broken
    [VRA-152] - Link to JIRA in website is broken

** Improvement

    [VRA-110] - better exception handling through interceptors
    [VRA-125] - mention FixedMessage on docs
    [VRA-127] - hibernate validator tutorial
    [VRA-139] - mydvds persistence
    [VRA-140] - german messages in MyDVD App
    [VRA-166] - Proper documentation for the Locale based converters

** New Feature

    [VRA-54] - component/logic not found should be a 404
    [VRA-119] - package tag automatically registers converters
    [VRA-131] - release mydvds without hibernate but using xstreams persistence api
    [VRA-137] - update view manager tutorial to describe the new supported styles: ${component} etc
    [VRA-149] - translate mydvd app to portuguese
    [VRA-150] - mydvds option to switch languages
    [VRA-151] - demo install tutorial
    [VRA-155] - bad written urls should be a 404
    [VRA-158] - new locale converter
    [VRA-159] - add a simple faq
    [VRA-163] - deploy vraptor 2.1.1 to maven repository
    [VRA-167] - new apt file describing all converters in detail

** Task

    [VRA-162] - generate clover report
    [VRA-164] - add counter to site

** Tests

        405 tests (+34)

        55.5% coverage

Version 2.1

** Bug

    [VRA-29] - invalid configuration doesn't startup vraptor
    [VRA-37] - class not found exception in vraptor.xml
    [VRA-100] - test classes should end with test
    [VRA-103] - package tag causes a NullPointerException when using TestEngine
    [VRA-112] - LocaleBasedCalendarConverter should accept null/empty string as null
    [VRA-114] - new tests for null conversion
    [VRA-115] - @In required=false should not override property with null if key is not found in the requested scope

** Improvement

    [VRA-26] - ConversionException constructor which receives a Message
    [VRA-52] - default stats page should come with data ordered
    [VRA-72] - pmd: Avoid if (x != y) ..; else ..;
    [VRA-94] - convert vraptor2 tests to junit asserts
    [VRA-101] - check all converter tests
    [VRA-102] - break each converter test in a sepparate method
    [VRA-105] - remove fileupload from blankproject
    [VRA-106] - xml tags should trim their text elements
    [VRA-118] - testsession throws vraptorexception
    [VRA-120] - portuguese translation of first tutorial
    [VRA-121] - portuguese translation of documentation
    [VRA-126] - hibernate validator plugin should generate already localized messages

** New Feature

    [VRA-16] - component scope
    [VRA-45] - sample stats component
    [VRA-51] - interceptorclass should make the class name available for stats page
    [VRA-60] - File upload tutorial
    [VRA-111] - role support through a interceptor/plugin
    [VRA-116] - @Destroy annotation allows to override the default destroy method
    [VRA-117] - support for java.util.Date conversion by default
    [VRA-124] - add support for non i18n messages

** Tests

        371 tests (+53)

Version 2.0.5

** Bug

    [VRA-95] - file upload is not handling parameters correctly
    [VRA-99] - vraptor should register only public classes

** Improvement

    [VRA-67] - pmd: Avoid using if statements without curly braces
    [VRA-71] - Avoid using implementation types like 'TreeSet'; use the interface instead
    [VRA-93] - base package loading should log if logics directory does not exist
    [VRA-96] - multipartrequestinterceptor should go ok if the request is not multipart
    [VRA-97] - invalid converter registration should not stop vraptor's initialization
    [VRA-98] - add application context to the request scope for injection

** New Feature

    [VRA-75] - create a stats component tutorial
    [VRA-90] - tutorial on redirection
    [VRA-92] - vraptor should log how long it took to initialize

** Tests

        318 tests (+49)

Version 2.0.4

** Bug

    [VRA-64] - change old assertions to new ones
    [VRA-87] - vraptor should leave messages.properties as an optional feature
    [VRA-91] - injection should not call our object toString method

** Improvement

    [VRA-63] - isolate Injection in a separate interceptor
    [VRA-65] - generate pmd report
    [VRA-66] - pmd: Avoid modifiers which are implied by the context
    [VRA-69] - pmd: No need to check for null before an instanceof
    [VRA-70] - Position literals first in String comparisons

** New Feature

    [VRA-55] - constructor injection
    [VRA-57] - base package
    [VRA-76] - base package tutorial and update tutorials
    [VRA-77] - make the logiccontext available to injection and adapt the mydvds example
    [VRA-78] - constructor injection tutorial
    [VRA-79] - uploaded files should be deleted on exit
    [VRA-88] - support for view redirection
    [VRA-89] - support for expression language on view redirection

** Tests

        269 tests (+37)

Version 2.0.3

** Bug

    [VRA-38] - validation fails --> outjection should happen
    [VRA-39] - basicintrospector is calling my objects toString
    [VRA-40] - include test support for empty parameters
    [VRA-41] - change test plugin assertion type to junit's one
    [VRA-42] - test assertion order is changed

** Improvement

    [VRA-44] - test engine should have a getApplicationContext method
    [VRA-46] - webApplication should be in application scope

** New Feature

    [VRA-19] - file upload interceptor
    [VRA-32] - Integrate with Hibernate Validator
    [VRA-43] and [VRA-49] - TestSession should have a method to grab the session
    [VRA-56] - component lookup interceptor

** Tests

        232 tests (removed old and +12)

Version 2.0.2

** Bug

    [VRA-7] - logiccontext has attribute throws StackOverflow
    [VRA-9] - optional @In field throws a RuntimeException if not filled
    [VRA-10] - parameter order is important
    [VRA-20] - validation tutorial problem
    [VRA-21] - conversion exceptions is actually a collection of errors instead of validationerrors


** New Feature

    [VRA-11] - mydvds example application using hibernate

239 tests (+63)

Version 2.0.1

** Bug

        [VRA-1] - parameter accessing array as first element
        [VRA-2] - ScopeLocator problem when accessing other types of scopes
        [VRA-5] - file download tutorial does not work (@Before annotation does not exist)

** New Feature

        [VRA-3] - conversion exception tutorial

** Task

        [VRA-6] - make javadoc available

173 tests (+17)

Version 2.0

  1. switch back to junit
  2. conversion exception is a validation error and returns to invalid
  3. junit functional testing support
  4. functional test tutorial
  5. junit test proxy plugin
  6. test plugin tutorial
  7. blank eclipse project with jstl and default resource bundle
  8. logic flow forward method for server side forward
  9. released example web application source code
  10. validation tutorial: programmatic is ok, annotations future releases
  11. mailing list
  12. jira

Version 2.0 beta4

  1. @Read(String key) attribute to change key
  2. implement application scope type
  3. no need to use views.properties anymore
  4. @Logic is optional and serves as an alias: all public methods are logics

Version 2.0-beta3

  1. @Conversion annotation for fields and setter methods (override default converter)
  2. allows logic aliases (more than one name per method)
  3. @Out(String key) attribute to change key
  4. look for views.properties in the classpath (/WEB-INF/classes and so on)
  5. cache InterceptorClass instances to make startup (much) faster
  6. accepts other extensions appart from *.logic
  7. tutorial on Conversion annotation
  8. new interceptor schema... much better
  9. new simple xml configuration file: faster start-up

Version 2.0-beta2

  1. Enum value and index based converter
  2. Enum converter tutorial
  3. @Read (create=true) instantiates objects as needed
  4. @Read (create=true) instantiates lists and sets as needed
  5. @Read (create=true) instantiates arrays as needed
  6. FactoryComponent annotation for classes
  7. directory parsing for factories
  8. Cache converters and recache when new is registered
  9. Basic converters tutorial
  10. All basic converters were implemented
  11. No view redirection using @Viewless
  12. file download example
  13. Example with multiple object instantiation in tutorial and web application
  14. factory tutorial
  15. sample web application

Version 2.0-beta1

  1. Support for annotations
  2. Tests with testng
  3. First public release
  4. Directory parsing for logic files
  5. Collections support on reading parameters
  6. Took out most libraries which were not programmer-friendly (jxpath for example)
  7. @Component, @Out, @In, @Read triplet (based on JBoss Seam)
  8. @Factory, @InterceptedBy (based on VRaptor 1)