[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: |
|
||||||||
| 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. To use it first download 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
-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) |