[BLOSSOM-210] Spring Loaded plugin for Blossom development Created: 29/May/15  Updated: 22/Jun/17  Resolved: 03/Jul/15

Status: Closed
Project: Blossom
Component/s: blossom-spring-loaded
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Neutral
Reporter: Tobias Mattsson Assignee: Tobias Mattsson
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to BLOSSOM-197 Page Edit does not work after reload ... Closed
Template:
Acceptance criteria:
Empty
Date of First Response:

 Description   

Plugin for Spring Loaded that refreshes the application contexts of BlossomDispatcherServlets when a class annotated with @Controller or a type level Blossom annotation is reloaded.

The behavior can be customized using these two system properties:

BlossomSpringLoadedPlugin.refreshOnAnyChange will make the plugin refresh when any class is changed, not just those with Blossom annotations or the @Controller annotation.
BlossomSpringLoadedPlugin.refreshAllDispatcherServlets will make the plugin also refresh plain DispatcherServlets.

To use it first download Spring Loaded
https://github.com/spring-projects/spring-loaded

Then add it using JVM arguments, for instance:

-javaagent:/Users/user/Downloads/springloaded-1.2.3.RELEASE.jar
-noverify
-Xmx512m
-XX:MaxPermSize=128M
-DBlossomSpringLoadedPlugin.refreshOnAnyChange=true
-DBlossomSpringLoadedPlugin.refreshAllDispatcherServlets=true

Then add the plugin JAR to your project:

<dependency>
  <groupId>info.magnolia.blossom</groupId>
  <artifactId>magnolia-blossom-spring-loaded</artifactId>
  <version>1.0.3</version>
</dependency>

Spring Loaded 1.2.3 can't reload classes packaged in JAR files. This is coming in the next release, 1.2.4. In the mean time you can change your IDE to package classes into the WEB-INF/classes directory instead of making a JAR file in WEB-INF/lib.



 Comments   
Comment by Tobias Mattsson [ 29/May/15 ]

Released version 1.0 today, more details on my blog http://tobias-mattsson-magnolia.blogspot.se/2015/05/develop-faster-with-blossom-plugin-for.html

Comment by Jan Haderka [ 25/Jul/16 ]

Bulk close of all old resolved tickets.

Comment by chandan agarwal [ 22/Jun/17 ]

It still does not work for me. I get the same error as before
Here is my config in pom.xml. I am using springloaded-1.2.7.RELEASE

 -javaagent:${settings.localRepository}/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar
-noverify
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
-Xnoagent
-Djava.compiler=NONE
-agentpath:${project.build.directory}/../lib/lib/${jrebel.agent}
-DBlossomSpringLoadedPlugin.refreshOnAnyChange=true
-DBlossomSpringLoadedPlugin.refreshAllDispatcherServlets=true
 -Drebel.log=trace

here is the error

 Caused by: info.magnolia.objectfactory.MgnlInstantiationException: Unable to resolve parameters for constructor public info.magnolia.ui.dialog.formdialog.FormDialogPresenterImpl(info.magnolia.ui.dialog.registry.DialogDefinitionRegistry,info.magnolia.objectfactory.ComponentProvider,info.magnolia.ui.dialog.actionarea.DialogActionExecutor,info.magnolia.ui.dialog.formdialog.FormView,info.magnolia.i18nsystem.I18nizer,info.magnolia.i18nsystem.SimpleTranslator,info.magnolia.ui.api.availability.AvailabilityChecker,info.magnolia.ui.vaadin.integration.contentconnector.ContentConnector,info.magnolia.ui.form.FormPresenter). Unresolved parameter(s) are: 3rd parameter which is of type info.magnolia.ui.dialog.actionarea.DialogActionExecutor
[INFO] [talledLocalContainer] 	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:97)
[INFO] [talledLocalContainer] 	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:121)
[INFO] [talledLocalContainer] 	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstance(GuiceComponentProvider.java:107)
[INFO] [talledLocalContainer] 	at info.magnolia.ui.dialog.formdialog.FormDialogPresenterFactoryImpl.createFormDialogPresenter(FormDialogPresenterFactoryImpl.java:80)
[INFO] [talledLocalContainer] 	at info.magnolia.ui.dialog.formdialog.FormDialogPresenterFactoryImpl.createFormDialogPresenter(FormDialogPresenterFactoryImpl.java:69)
[INFO] [talledLocalContainer] 	at info.magnolia.ui.framework.action.OpenCreateDialogAction.execute(OpenCreateDialogAction.java:99)
[INFO] [talledLocalContainer] 	at info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:62)

Generated at Sun Feb 11 23:31:14 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.