Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SUPPORT-1989: Update to 1.3.0 from upstream #3

Merged
merged 183 commits into from
Oct 25, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
d64165f
Version 1.0.1-SNAPHOT
skybber Dec 18, 2016
708287b
Jersey-CDI extension locator manager fixed
skybber Dec 18, 2016
68c17ff
tomcat artifact flexibility
vltr Dec 22, 2016
ceea164
Merge pull request #160 from vltr/patch-1
edudant Dec 22, 2016
eb3f0eb
Jersey reload on HK2 Service change
skybber Dec 22, 2016
6bc6928
Annotation added to signature
skybber Dec 22, 2016
ff19fb7
Unknown annotation type
skybber Dec 22, 2016
8b2359a
Fixes #161
skybber Dec 26, 2016
140ac35
Field access fixed
skybber Dec 26, 2016
6241e2a
Cleanup
skybber Dec 27, 2016
acc6c0f
Removed unused property extraWebappContext.
Jan 1, 2017
ee8f533
Merge remote-tracking branch 'origin/master'
Jan 1, 2017
5b1e1fd
Fix #167
skybber Jan 15, 2017
0cdb1c6
Fixes StackOverflow on Weld bean reloading
skybber Jan 15, 2017
c06ec6e
Owb plugin
skybber Jan 15, 2017
641f6be
Owb reade - weld references removed
skybber Jan 23, 2017
894218e
WeldPlugin - mergeable redefinition cmd
skybber Jan 24, 2017
c6c84b6
Owb plugin updates
skybber Jan 24, 2017
e71f86b
OWB ManagedBean property updating
skybber Jan 25, 2017
b2f2211
Adding two new configuration options into hotswap-agent-core
lancethomps Jan 26, 2017
3f1a83f
OWB new bean definition
skybber Jan 28, 2017
6469aa4
Removing reloadCallback from hotswap-agent-core; to be implemented in…
lancethomps Jan 31, 2017
cfb5772
Merge pull request #169 from lathomps/master
skybber Jan 31, 2017
6b60344
Owb plugin webContexts handling implemented
skybber Feb 5, 2017
551f6e9
Owb compatibility with Tomee
skybber Feb 7, 2017
1ab92dd
EARs mechanism removed from OwbPlugin
skybber Feb 9, 2017
9237855
Deltaspike 1.7.x fixes
skybber Feb 10, 2017
5d356a9
Deltaspike 1.7 support
skybber Feb 11, 2017
ac3b27f
Owb/Tomee contexts inheritance fixed
skybber Feb 11, 2017
79d4876
WeldPlugin cleanup
skybber Feb 11, 2017
4d76719
Npe fixed in config resolving
skybber Feb 11, 2017
c5d4f1d
OwbPlugin proxy recreate
skybber Feb 11, 2017
8fe92eb
DeltaSpike 1.7 PartialBean fixes
skybber Feb 11, 2017
3532328
Code cleanup
skybber Feb 12, 2017
45012c7
Owb on tomcat
skybber Feb 12, 2017
d5a1a84
OwbPlugin Tomee support
skybber Feb 13, 2017
4fbed06
Recreate proxy bug fix.
skybber Feb 14, 2017
89b4277
BeansDeployerTransformer fix
skybber Feb 14, 2017
4290769
Deltaspike proxy delagate error log added.
skybber Feb 14, 2017
fc0bb6c
OWB proxy fixes
skybber Feb 14, 2017
cae3145
OWB Proxy unit test
skybber Feb 14, 2017
f77f2c7
Weld proxy unit test added
skybber Feb 14, 2017
a66c9f0
HA synthetic flds/meth names __ convention
skybber Feb 14, 2017
5fa612a
OWB bean definition support
skybber Feb 16, 2017
168cd8c
Code cleanup
skybber Feb 16, 2017
2d55e7c
update to v1.1.0-SNAPSHOT
skybber Feb 16, 2017
4767292
OWB redefinition limited on bean archive
skybber Feb 17, 2017
c7e4eb8
OWB - skip JAR bean archives
skybber Feb 17, 2017
5de9c4f
Introspector flush for synthetic classes
skybber Feb 17, 2017
2e836de
Fixes #176 - multi resources in extraClassPath
skybber Feb 23, 2017
e9273f5
fixes #176 - call super if resource enum is empty
skybber Feb 23, 2017
b415e70
WeldPlugin - SessionScoped beans reinjection
skybber Feb 26, 2017
55cb77c
fix #170
lacivert Feb 27, 2017
eb000ee
Merge pull request #178 from lacivert/patch-1
skybber Feb 27, 2017
e7883ae
Compilation errror fixed
skybber Feb 27, 2017
27ce9d8
ClassNotFound ex. in BeanELResolver with DEBUG prio
skybber Feb 27, 2017
b6bf3d4
OwbPlugin - Ejb support
skybber Feb 27, 2017
3e9ad38
OwbPlugin - cleanup
skybber Feb 28, 2017
849f587
WeldPlugin - support for Ejb
skybber Feb 28, 2017
55239ac
Property value can reference system variable. Example:
skybber Mar 1, 2017
5ce93a5
JBoss AS export packages fixed
skybber Mar 5, 2017
476734e
maven eclipse plugin removed.
skybber Mar 7, 2017
12c56cf
GlassFish plugin initial version
skybber Mar 7, 2017
70b9996
GlassFish/Felix bundle URL to local URL resolving
skybber Mar 11, 2017
16b90fc
Glassfish/Weld initial version
skybber Mar 11, 2017
f56bc05
GlassFish/Weld classLoader issues fixed
skybber Mar 11, 2017
f2e498c
Glassfish ELResolver
skybber Mar 11, 2017
34ddfcf
GlassFish/Felix bundle classloaders ignored
skybber Mar 12, 2017
ef64ff4
Javassist updated to 3.21.0
skybber Mar 12, 2017
6163246
Annotation added to signature evaluation
skybber Mar 12, 2017
39ef60e
Problems with not started WebappClassLoader fixed
skybber Mar 17, 2017
8c0d748
fallback plugin handling fixed
skybber Mar 19, 2017
9cd9ece
SpringPlugin in JBossAS/Wildfly fixed
skybber Mar 19, 2017
e719261
STARTED flag handled correctly for WebappClassLoaderBase
Mar 20, 2017
9e037c3
Fix README
skybber Mar 21, 2017
0ed1347
Lock on instrumentation.redefineClasses()
skybber Mar 22, 2017
0db7081
Performance tweak for OSGI classloaders
skybber Apr 17, 2017
970793c
Missing synchr. on plugin registry map added
skybber Apr 22, 2017
c9c9041
Issue 197
May 5, 2017
3597705
Issue 197: multiple webappDir entries for Jetty
May 7, 2017
b779b6b
Merge pull request #198 from dennylofgren/feature/197
skybber May 7, 2017
6f22f6f
Code cleanup.
skybber May 8, 2017
d63e92b
Fix proposal for #78
brandstaetter May 22, 2017
c942b1a
fix typo
brandstaetter May 22, 2017
4b7498d
Merge pull request #199 from brandstaetter/patch-1
edudant May 22, 2017
0d57392
Sonar issues fixed
skybber Sep 24, 2017
6b61840
Travis fixed
skybber Sep 26, 2017
2b55fa8
Test jre-dcevm
skybber Sep 26, 2017
a36073b
Back to openjdk7
skybber Sep 26, 2017
f98014a
Skip test fixed
skybber Sep 26, 2017
8769850
OWB plugin - pass archiveUrl
skybber Oct 7, 2017
8108728
Hibernate5 test updates
skybber Oct 7, 2017
062b9bb
Initial java9 support in mvn
skybber Oct 8, 2017
79b1c6e
Revert "Performance tweak for OSGI classloaders"
skybber Oct 8, 2017
17b831d
fix #203 - Hotswapper follows symlinks
skybber Oct 8, 2017
4c30b03
JavaBeans moved to Jdk plugin, fix DCEVM crashes
skybber Oct 18, 2017
a1a7665
javassist 3.22.0 with java9 support
skybber Oct 21, 2017
ceaef4f
java9 support
skybber Oct 21, 2017
c6ded6e
Java9 ProxyGenerator package location fixed
skybber Oct 22, 2017
5ec9d6a
fix URLClassLoaderHelper URL Class type
Nick-The-Uncharted Nov 29, 2017
b0fca22
Use Arrays.toString to convert array so annoation with array value wo…
Nick-The-Uncharted Nov 29, 2017
3d11fc2
Add a default WatchResourcesClassLoader
Nick-The-Uncharted Nov 29, 2017
e55b74b
Xml defined bean reload
Nick-The-Uncharted Nov 29, 2017
e829336
fix xml can only be reloaded once
Nick-The-Uncharted Nov 30, 2017
fa5f227
Bug fixes, ResetRequestMappingCaches before destroy singleton bean
Nick-The-Uncharted Dec 2, 2017
8cf558d
Make xml reloading works with autoHotswap
Nick-The-Uncharted Dec 3, 2017
f4891cd
remove duplicate-functioned WatchResourceListener
Nick-The-Uncharted Dec 4, 2017
c782b92
fix annotationToString with value which is instance of Object[]'s sub…
Nick-The-Uncharted Dec 4, 2017
1cf3226
elaborate doc
Nick-The-Uncharted Dec 4, 2017
1f98152
use classpath path to filter spring xml
Nick-The-Uncharted Dec 4, 2017
32e7948
move registerBasePackage to construtor because init block run before …
Nick-The-Uncharted Dec 4, 2017
6f82e87
Merge pull request #219 from Nick-The-Uncharted/master
edudant Dec 4, 2017
b09a0fa
Fix java9 issue with URLClassPath
skybber Dec 4, 2017
bf38c8b
- Add tests new Spring versions.
Dec 4, 2017
94abde1
Merge remote-tracking branch 'origin/master'
Dec 4, 2017
0dbbe6f
Resolve java version if it contains non numerical characters (e.g. ja…
Dec 4, 2017
92e2b3c
Revert "Fix proposal for #78"
cchabanois-sfdc May 29, 2017
613570e
Better fix for #78 : wildcards support for component-scan basePackage
cchabanois May 30, 2017
a65a4bc
Code cleanup
skybber Dec 4, 2017
37c2faa
Add GC before class file deletion - it is necessary on windows to rel…
Dec 5, 2017
2912d3b
Update prototype instance is now supported, updating tests accordingly.
Dec 5, 2017
749ee6f
Rename configuration property 'basePackagePrefix' to 'spring.basePack…
Dec 5, 2017
72ecda7
Merge remote-tracking branch 'origin/master'
Dec 5, 2017
5e0fd6e
added some spring xml hotswap test
Nick-The-Uncharted Dec 17, 2017
898f558
Only clear metadata cache if field exists
Artur- Dec 19, 2017
e45d1ce
Merge pull request #220 from Nick-The-Uncharted/master
edudant Dec 20, 2017
65c8daf
Merge pull request #222 from Artur-/hibernatefix
edudant Dec 20, 2017
2096e95
CDI modules refactorization
skybber Jan 5, 2018
294e7da
Weld-Deltaspike integration
skybber Jan 28, 2018
987caec
Fix and cleanup Owb plugin
skybber Feb 3, 2018
ec2a8fa
Remove thread local cache in sess. context iteration
skybber Feb 3, 2018
807f469
Reattach ctx trackers on session deserialization
skybber Feb 3, 2018
8dd8aef
Synthetic convention 6286ha$
skybber Feb 4, 2018
eee3a53
Reinject deltaspike GroupedConversation
skybber Feb 4, 2018
5cbb01a
Reinject Weld-Deltaspike contexts
skybber Feb 4, 2018
8ca8a9d
Update CDI plugin doc
skybber Feb 5, 2018
e87fa95
Cleanup
skybber Feb 13, 2018
0128c72
OmniFaces plugin added
skybber Feb 13, 2018
7aee01f
Split JsfPlugin to MyFaces + Mojarra plugins
skybber Feb 16, 2018
7356bb9
Update docs
skybber Feb 16, 2018
6ffb43a
Extract common CDI stuff to CDI plugin
skybber Feb 17, 2018
be00a1d
Reinject MyFaces CDI/ViewScoped beans
skybber Feb 17, 2018
de57e0a
Use Bean registration strategy instead tracking
skybber Feb 23, 2018
58796b7
Activate mojarra transformer
skybber Feb 25, 2018
c01370d
Remove WebBeansContextsServiceTransformer
skybber Feb 26, 2018
85a0dc1
Revert omnifaces plugin
skybber Feb 26, 2018
81ea319
Define OWB beans using BeansDeployer
skybber Feb 26, 2018
c7aa505
HotswapperPlugin: listen also to FileEvent.CREATE
Mar 5, 2018
500a30f
Skip OWB tests for j9
skybber Mar 6, 2018
9e47552
Merge pull request #228 from alex-dorokhov/fix-hotswapper-watcher
skybber Mar 8, 2018
4cf196c
Version 1.2
skybber Mar 8, 2018
e55279d
Update README.md
skybber Mar 8, 2018
5934aa9
Support for CDI contexts in mvn scope provided
skybber Mar 9, 2018
8d0bffb
Fix weld/wildfly issue with provided scopes
skybber Mar 10, 2018
64a44af
pom.xml v1.2.1-SNAPSHOT
skybber Mar 13, 2018
efa5dae
Fix Tomee webapp classloader resolving
skybber Mar 13, 2018
d8f0138
Fix #229 - race cond. in PluginRegistry
skybber Mar 15, 2018
9ac7f7e
Update README.md
skybber Mar 16, 2018
dac4a19
Updates README (tomee, glassfish, payara sup.)
skybber Mar 16, 2018
491ea5d
Cleanup README.
skybber Mar 27, 2018
7e2bb70
Plugin for Vaadin platform
Artur- Apr 23, 2018
a3e4e45
Merge pull request #235 from Artur-/master
skybber Apr 27, 2018
beeda97
Update README.md
arnzel Apr 27, 2018
dd80f75
Merge pull request #237 from arnzel/master
skybber Apr 27, 2018
2bd18b9
Typo in the link for JBossModules
atilacamurca May 2, 2018
7aa00b9
Merge pull request #238 from atilacamurca/patch-1
skybber May 2, 2018
5ef5920
Autodeploy snapshot from master to Maven / Sonatype
Artur- May 3, 2018
6ee5ea5
Update groupId to match what is deployed to Maven
Artur- May 3, 2018
df9c1a3
Merge pull request #239 from Artur-/master-snapshot
edudant May 3, 2018
d9aaece
Merge pull request #240 from Artur-/maven-groupid
edudant May 3, 2018
e0a321b
#163 - Publish to central - sonatype secret username/password
May 3, 2018
3bec7a8
#163 - Publish to central - sonatype secret username/password
May 3, 2018
719003c
#223 (No match for watch event) - TreeWatcherNIO registered events fo…
May 4, 2018
eaffc83
#242 - HA plugins as a maven dependency - new maven plugin aggregator…
May 4, 2018
91abb3c
#241 - all classes were regarded as Spring plugins (missing isCandida…
May 4, 2018
d8558fd
#232 - Cannot create proxy for spring component without default const…
May 7, 2018
a55c476
#232 - do not know why Spring 4.2.6 AND 4.3.0 does not work, probably…
May 16, 2018
1c5787d
Release 1.3.0
May 16, 2018
6969aad
Merge tag 'RELEASE-1.3.0' into cg-master
Oct 16, 2018
b31d987
SUPPORT-1989: fix poms
Oct 18, 2018
6b4ecf0
SUPPORT-1989: don't pass scannerAgent in Spring plugin
Oct 18, 2018
1b53921
SUPPORT-1989: Fixed groupId name in -javaagent path #244
Oct 18, 2018
7c85a7e
1.3.0-cg.1
Oct 18, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .travis.deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

mvn deploy --settings ./.travis.settings.xml -DaltDeploymentRepository=sonatype-snapshots::default::https://oss.sonatype.org/content/repositories/snapshots -DskipTests -B
9 changes: 9 additions & 0 deletions .travis.settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<settings>
<servers>
<server>
<id>sonatype-snapshots</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
</servers>
</settings>
13 changes: 12 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,23 @@ notifications:
- lada.dvorak7@gmail.com

jdk:
- oraclejdk7
- openjdk7

env:

matrix:
- WELD_VERSION=2.2.13.Final

global:
# SONATYPE
- secure: "WkSh9OeKNC1YZKiQTtfONWwHr+Y3e//URAjlbvmzig2eEMJHeQO/1ZXpvxSFDAhYDfDUFE2sCdTlO8s4cDF8/7+ZCzcvCj/ZeUUQYEf6KRCrkn1awVo+VBBVyJPN80j67oVBN3zipkRXRkxU5lMyHZkABH+722/9YhGcZvg3BIHGPKRvHrZfN61LJirpsyJ0hN6okX1pqyibWiVOsq324vXXZ8Z1kdubH6KIqA6w4uX6IZ9HtOJKe570NXE13xxXIHJ4oO+g1is8w4j8axjLkoX+5ZaIo3tSmmVTNE1oCOLulkAxwis5t4+w4lkGFqOkOrvrWkkch0IrnmNAbP5WVdC/9ILemwF09qiVb9cnNPykRbLwMHFrlDzP+nyMk4ecXbWq1FhLj/WqpdJAk3s8RgZVFwX6R8DQFVk5tCDnycKuM8HSxxNYE35KRcBAxh/9YL88wkufGt7BtrflCg6eG+Hkk+SQE4FHd7xW07YyODn/RhA6s0yF8x2g76zAkvYlLd7xbigApnmmA80fcJP0lDKDOHNVGsX/2VU/ucHq5/DaqsT3A/AlrFz3YwjHf1XG4w+Dl8l38im19OW6dxrqSEaucrECm94muXhfvs0GnIcdmPrfeWX43LHx7XItcK3/hp/iG09DuUVvbLIe75iFkmI2CSxOQpCFJpb8qOTCTdg="
- secure: "aXfkaGzi80Uaa93pCnhIw5xMjaBhL9k5ArOZwgeKeK5mey1Tt5ttump8LuP/kb7rToauzUr8Su6YeaMZgFhUf+oZNOZ8giq4OO+qsnXAudLROMGEYrPnbC03YalCcsThDRQua6//U3Z3abG0TSS227peQaGgFJn26itRuoZd5WalWXOfCWaxrSCljmEHNJui1UnNwRFYKETw/QdsCbd2C0SO0nT/85hxKy50RwujDbgHMfZsW6o5YpAZbkUchYtON1vkCNc2G1sH4EPLci5zsgPDn6THoznqXBc4byOUtYHPPA2852TW52YtzhUgwyNxP42mJGGlgoH+3Df6FnK+8jLDLpHQAHpJeqndB67bO6KzyWuO8YLsAzHbnWJUbOIJxrb2/pBsn3z8ImM9NQMNuShJXbatNw5iIdr+/+RQiBUsNwPsAJJ42iybjufLouC+xJL+zmDnLygFmy2Y6O3uR6oRa3E+rQscWdKvOplpKgf6hPjoy44y147IJzHDbHUCnBHt8vg2Vy7zT+pM+Uvb4kESwl0NDbEDE3X3tWT7JeRZmF2GWOsSnPK8XDr/EO0QlNFwJ+SN6CYYPME8CxnD0iSO90CThiquHpT4GfvIep88UMTbu3WbmqYA2XKvPzaCWZrgZQ9q1TumYNtqHfVdRX8HcPm+o2VK0+7RBOJ1ciA="


script: "mvn clean install -DskipTests"
deploy:
- provider: script
script: ./.travis.deploy.sh
skip_cleanup: true
on:
branch: master
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ Java unlimited runtime class and resource redefinition.
The main purpose of this project is to avoid infamous change->restart + *wait*->check development lifecycle.
Save&Reload during development should be standard and many other languages (including C#) contain this feature.

This project is still in a beta version.

### Easy to start
Download and install latest [DCEVM Java patch](https://github.com/dcevm/dcevm/releases) +
[agent jar](https://github.com/HotswapProjects/HotswapAgent/releases) and launch your application server
Expand Down Expand Up @@ -145,33 +143,37 @@ uses agent services to:

#### Java frameworks plugins:

* [Deltaspike](plugin/hotswap-agent-deltaspike-plugin/README.md) (1.x) - messages, ViewConfig, repository, proxy reloading.
* [Deltaspike](plugin/hotswap-agent-deltaspike-plugin/README.md) (1.x) - messages, ViewConfig, repository, proxy reloading. Deltaspike scoped CDI beans reinjection.
* [ELResolver](plugin/hotswap-agent-el-resolver-plugin/README.md) 2.2 (JuelEL, Appache Commons EL, Oracle EL 3.0)- clear ELResolver cache on class change. Support hotswap for #{...} expressions.
* [Hibernate](plugin/hotswap-agent-hibernate-plugin/README.md) (3x,4x,5x) - Reload Hibernate configuration after entity create/change.
* [Jersey1](plugin/hotswap-agent-jersey1-plugin/README.md) - reload Jersey1 container after root resource or provider class definition or redefinition.
* [Jersey2](plugin/hotswap-agent-jersey2-plugin/README.md) - reload Jersey2 container after root resource or provider class definition or redefinition.
* [JSF](plugin/hotswap-agent-jsf-plugin/README.md) (mojarra 2.1, 2.2, MyFaces 2.2) - support for application resource bundle changes (properties files).
* [Logback](plugin/hotswap-agent-logback-plugin/README.md) - Logback configuration reload.
* [Log4j2](plugin/hotswap-agent-log4j2-plugin/README.md) - Log4j2 configuration reload.
* [Mojarra](plugin/hotswap-agent-mojarra-plugin/README.md) (2.1,2.2) - support for application resource bundle changes (properties files). Support for ViewScoped beans reinjection/reloading.
* [MyFaces](plugin/hotswap-agent-myfaces-plugin/README.md) (2.2) - support for application resource bundle changes (properties files). Support for ViewScoped beans reinjection/reloading.
* [OmniFaces](plugin/hotswap-agent-owb-plugin/README.md) - support for ViewScoped beans reinjection/reloading.
* [OpenWebBeans](plugin/hotswap-agent-owb-plugin/README.md) - (CDI) (1.7.x) - reload bean class definition after class definition/change. Beans can be reloaded according strategy defined in property file.
* [OsgiEquinox](plugin/hotswap-agent-osgiequinox-plugin/README.md) - Hotswap support for Eclipse plugin or Eclipse platform development.
* [RestEasy](plugin/hotswap-agent-resteasy-registry-plugin/README.md) (2.x, 3.x) - Cleanups and registers class redefinitions.
* [Seam](plugin/hotswap-agent-seam-plugin/README.md) (2.2, 2.3) - flush JBoss reference cache. Support for properties file change (messages[])
* [Spring](plugin/hotswap-agent-spring-plugin/README.md) (3x, 4.x) - Reload Spring configuration after class definition/change.
* [Vaadin](plugin/hotswap-agent-vaadin-plugin/README.md) (10.x) - Update routes, template models and in practice anything on the fly.
* [WebObjects](plugin/hotswap-agent-webobjects-plugin/README.md) - Clear key value coding, component, action and validation caches after class change.
* [Weld](plugin/hotswap-agent-weld-plugin/README.md) (CDI) (2.2-2.4) - reload bean class definition after class definition/change. Support for weld proxy, EAR. Beans can be reloaded according strategy defined in property file.
* [Weld](plugin/hotswap-agent-weld-plugin/README.md) (CDI) (2.2-2.4) - reload bean class definition after class definition/change. Beans can be reloaded according strategy defined in property file.
* [WildFlyELResolver](plugin/hotswap-agent-wildfly-el-plugin/README.md) - Clear BeanELResolver after any class redefinition.
* [ZK](plugin/hotswap-agent-zk-plugin/README.md) (5x-7x) - ZK Framework (http://www.zkoss.org/). Change library properties default values to disable caches, maintains Label cache and bean resolver cache.

#### Servlet containers and application servers plugins:

* [JBossModules](plugin/ihotswap-agent-jbossmodules-plugin/README.md) - add extra class path to JBoss's module class loader. (Wildfly)
* [JBossModules](plugin/hotswap-agent-jbossmodules-plugin/README.md) - add extra class path to JBoss's module class loader. (Wildfly)
* [Jetty](plugin/hotswap-agent-jetty-plugin/README.md) - add extra classpath to the app classloader. All versions supporting WebAppContext.getExtraClasspath should be supported.
* [Tomcat](plugin/hotswap-agent-tomcat-plugin/README.md) (7.x, 8.x) configure Apache Tomcat with extraClasspath property.
* [Tomcat](plugin/hotswap-agent-tomcat-plugin/README.md) (7.x, 8.x) configure Apache Tomcat with extraClasspath and webApp property. Supports also GlassFish, Payara and Tomee7.

#### JVM plugins - hotswapping enhancements:

* [AnonymousClassPatch](hotswap-agent-core/src/main/java/org/hotswap/agent/plugin/jvm/README.md) - Swap anonymous inner class names to avoid not compatible changes.
* [ClassInit](hotswap-agent-core/src/main/java/org/hotswap/agent/plugin/jvm/README.md) - initializes new static members/enum values after class/enum redefinition and keeps surviving static values. (Fix of known DCEVM)
* [ClassInit](hotswap-agent-core/src/main/java/org/hotswap/agent/plugin/jvm/README.md) - initializes new static members/enum values after class/enum redefinition and keeps surviving static values. (Fix of known DCEVM limitation)
* [Hotswapper](hotswap-agent-core/src/main/java/org/hotswap/agent/plugin/hotswapper/README.md) - Watch for any class file change and reload (hotswap) it on the fly via Java Platform Debugger Architecture (JPDA)
* [Proxy](plugin/hotswap-agent-proxy-plugin/README.md) (supported com.sun.proxy, CGlib) - redefines proxy classes that implement or extend changed interfaces or classes.

Expand All @@ -198,7 +200,7 @@ agent JAR dependency to compile, but be careful NOT to add the JAR to your appli
as a javaagent. Maven dependency:

<dependency>
<groupId>org.hotswap.agent</groupId>
<groupId>org.hotswapagent</groupId>
<artifactId>HotswapAgent</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
Expand Down Expand Up @@ -233,7 +235,7 @@ Hotswap agent:
* Jiri Bubnik - project coordinator, initial implementation
* Alexandros Papadakis - Maven Versioning, Weld, JSF, Hibernate3, RestEasy, WildFly plugins
* Erki Ehtla - Spring plugin, Proxy plugin
* Vladimir Dvorak - Seam, ELResolver, JSF, OsgiEquinox, Weld, Deltaspike, JavaBean, JBossModules, ClassInit
* Vladimir Dvorak - ELResolver, OsgiEquinox, Weld, Owb, Deltaspike, Jvm, Jdk, JBossModules, ClassInit, JSF
* Sergey Lysenko - Weld plugin
* Samuel Pelletier - WebObjects plugin
* Jan Tecl - web design
Expand Down
8 changes: 5 additions & 3 deletions hotswap-agent-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.hotswap.agent</groupId>
<groupId>org.hotswapagent</groupId>
<artifactId>hotswap-agent-parent</artifactId>
<version>1.0-cg-1</version>
<version>1.3.0-cg.1</version>
<relativePath>../hotswap-agent-parent/pom.xml</relativePath>
</parent>

Expand All @@ -19,6 +19,7 @@
<os>
<family>!mac</family>
</os>
<jdk>(,1.9)</jdk>
</activation>
<dependencies>
<dependency>
Expand All @@ -37,6 +38,7 @@
<os>
<family>mac</family>
</os>
<jdk>(,1.9)</jdk>
</activation>
<dependencies>
<dependency>
Expand Down Expand Up @@ -114,6 +116,6 @@
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock-legacy</artifactId>
</dependency>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -134,5 +134,6 @@ private static void fixJboss7Modules() {
+ "org.hotswap.agent.plugin," //
+ "org.hotswap.agent.util," //
+ "org.hotswap.agent.watch," //
+ "org.hotswap.agent.versions," //
+ "org.hotswap.agent.javassist";
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,19 @@
*/
String description() default "";

/**
* Plugin group the plugin belongs to. Group is used to resolve fallback plugin
*
* @return the string
*/
String group() default "";

/**
* If no other plugin matches and fallback is set to true, then use this plugin
* @return
*/
boolean fallback() default false;

/**
* Version of target framework this framework was tested with.
*/
Expand All @@ -42,4 +55,5 @@
* supporting class in addition to pluginClass itself.
*/
Class<?>[] supportClass() default {};

}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
/*
* Copyright 2016 the original author or authors.
*
*
* This file is part of HotswapAgent.
*
*
* HotswapAgent is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 2 of the License, or (at your
* option) any later version.
*
*
* HotswapAgent is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
*
* You should have received a copy of the GNU General Public License along
* with HotswapAgent. If not, see http://www.gnu.org/licenses/.
*/
Expand All @@ -28,7 +28,7 @@
/**
* Defines an artifact (jar) which needs to be matched against Maven coordinates
* of Manifest file information for this plugin to be enabled
*
*
* The above are matched as OR (any of).
*
* @author alpapad@gmail.com
Expand All @@ -38,11 +38,6 @@
@Target({ElementType.TYPE, ElementType.METHOD })
public @interface Versions {

/**
* If no other plugin matches and fallback is set to true, then use this plugin
* @return
*/
boolean fallback() default false;
/**
* A list of maven coordinates to be matched.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

import org.hotswap.agent.annotation.Versions;
import org.hotswap.agent.annotation.Plugin;
import org.hotswap.agent.logging.AgentLogger;
import org.hotswap.agent.versions.DeploymentInfo;
import org.hotswap.agent.versions.VersionMatchResult;
Expand Down Expand Up @@ -39,42 +39,45 @@ public class PluginAnnotation<T extends Annotation> {

// plugin matcher
final PluginMatcher pluginMatcher;

// Method matcher
final MethodMatcher methodMatcher;


// plugin group (elresolver etc..)
final String group;

// Falback plugin - plugin is used if no other plugin in the group version matches
final boolean fallback;

public PluginAnnotation(Class<?> pluginClass, Object plugin, T annotation, Method method) {
this.pluginClass = pluginClass;
this.plugin = plugin;
this.annotation = annotation;
this.method = method;


Plugin pluginAnnotation = pluginClass.getAnnotation(Plugin.class);
this.group = (pluginAnnotation.group() != null && !pluginAnnotation.group().isEmpty()) ? pluginAnnotation.group() : null;
this.fallback = pluginAnnotation.fallback();

if(method != null && (Modifier.isStatic(method.getModifiers()))) {
this.pluginMatcher = new PluginMatcher(pluginClass);
this.methodMatcher= new MethodMatcher(method);
Versions v = pluginClass.getAnnotation(Versions.class);
if(v == null || v.fallback()) {
this.fallback = Boolean.TRUE;
} else {
this.fallback = Boolean.FALSE;
}
} else {
this.pluginMatcher = null;
this.methodMatcher = null;
this.fallback = Boolean.TRUE;
}
}
}

public PluginAnnotation(Class<?> pluginClass, Object plugin, T annotation, Field field) {

this.pluginClass = pluginClass;
this.plugin = plugin;
this.annotation = annotation;
this.field = field;
this.pluginMatcher = null;
this.methodMatcher = null;
this.fallback = Boolean.TRUE;
this.methodMatcher = null;
this.fallback = false;
this.group = null;
}

/**
Expand All @@ -99,7 +102,7 @@ public Method getMethod() {
public Field getField() {
return field;
}

public boolean shouldCheckVersion() {
return //
(this.plugin == null)//
Expand All @@ -110,12 +113,21 @@ public boolean shouldCheckVersion() {
(methodMatcher != null && methodMatcher.isApply())//
);//
}


/**
* @return true, if plugin is fallback
*/
public boolean isFallBack() {
return fallback;
}


/**
* @return the plugin group
*/
public String getGroup() {
return group;
}

/**
* Matches.
*
Expand All @@ -127,7 +139,7 @@ public boolean matches(DeploymentInfo deploymentInfo){
LOGGER.debug("No matchers, apply");
return true;
}

if(pluginMatcher != null && pluginMatcher.isApply()) {
if(VersionMatchResult.REJECTED.equals(pluginMatcher.matches(deploymentInfo))){
LOGGER.debug("Plugin matcher rejected");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,19 @@ public boolean isPluginDisabled(ClassLoader loader){
// can't tell
return false;
}

public boolean shouldCheckVersion(){
return pluginAnnotation.shouldCheckVersion();
}
public boolean isDefaultPlugin(){

public boolean isFallbackPlugin(){
return pluginAnnotation.isFallBack();
}


public String getPluginGroup() {
return pluginAnnotation.getGroup();
}

public boolean versionMatches(ClassLoader loader){
if (pluginAnnotation.shouldCheckVersion()) {
DeploymentInfo info = DeploymentInfo.fromClassLoader(loader);
Expand All @@ -67,7 +71,7 @@ public boolean versionMatches(ClassLoader loader){
}
return true;
}

@Override
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
if ((classBeingRedefined == null) ? !events.contains(LoadEvent.DEFINE) : !events.contains(LoadEvent.REDEFINE)) {
Expand All @@ -84,8 +88,8 @@ public byte[] transform(ClassLoader loader, String className, Class<?> classBein

return transform(pluginManager, pluginAnnotation, loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
}


@Override
public String toString() {
return "\n\t\t\tPluginClassFileTransformer [pluginAnnotation=" + pluginAnnotation + "]";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public void onWatchEvent(PluginAnnotation<T> pluginAnnotation, WatchFileEvent ev
} else if (watchEventDTO.isClassFileEvent() && type.isAssignableFrom(CtClass.class)) {
args.add(ctClass);
} else if (watchEventDTO.isClassFileEvent() && type.isAssignableFrom(String.class)) {
args.add(ctClass.getName());
args.add(ctClass != null ? ctClass.getName() : null);
} else {
LOGGER.error("Unable to call method {} on plugin {}. Method parameter type {} is not recognized.",
pluginAnnotation.getMethod().getName(), plugin.getClass().getName(), type);
Expand Down
Loading