-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
TAP5-2742: smarter page cache invalidation
TAP5-2742: Initial work on smarter page cache invalidation TAP5-2742: more tests and code improvements TAP5-2742: page cache invalidation on template change working plus some additional logging for when invalidations are done and page instances created TAP5-2742: refactoring URLChangeTracker to make it parameterized TAP5-2742: work in progress for page invalidation on message file change TAP5-2742: smart page cache invalidation for message (i18n) files TAP5-2742: fixing ComponentMessagesSourceImplTest TAP5-2742: JavaDoc fixes TAP5-2744: upgrading Selenium and fixing integration tests TAP5-2744: upgrading Selenium TAP5-2744: upgrading Selenium again TAP5-2744: explicitly choosing Firefox for Selenium TAP5-2744: fixing tapestry-webresources build TAP5-2742: fixing NPE when production mode is off TAP5-2742: manual invalidation of cached pages and some error handling TAP5-2742: smarter @import asset caching invalidation TAP5-2742: fixing changes in PageLoaderImpl, plus other changes in ComponentClassCache and PropertyConduitSourceImpl TAP5-2742: handling @InjectComponent, @InjectPage and @component as proper dependencies between components TAP5-2742: fixing JavaDoc and NPE in ResourceChangeTrackerImpl TAP5-2742: fixing NPE in ResourceChangeTrackerImpl Trying to fix failing tests where Selenium doesn't find a link which is actually there. Attempt to get Firefox tests run on Linux with and without Snap TAP5-2742: fixing CoreBehaviorsTest.reload_from_nested_page Adding a bit of test code for our tests Adding a bit of test code for our tests (again) TAP5-2744: bug fix in ComponentClassCacheImpl TAP5-2744: better exception message parsing in RequestErrorFilter TAP5-2744: last commit before introducing a classloader tree TAP5-2744: first pass at page dependency graph TAP5-2744: eliminating a infinite recursion TAP5-2744: finished Graphviz component and PageDependencyGraph page TAP5-2744: storing component dependency information TAP5-2742: first pass at multiple classloader support for live class reloading Partial work commit for better page invalidation part 2 TAP-2742: live class reloading works, production mode doesn'r TAP-2742: production mode fixed, PageCatalog too TAP-2742: fixing JavaDoc errors Trying to fix build failure Temporarily removing tapestry-breanvalidator from the build Fixing syntax error on settings.gradle TAP-2742: fixing PageSourceImpl Reinstating tapestry-beanvalidator. TAP-2742: fixing tests in ComponentDependencyRegistryImplTest TAP-2742: code cleanup Fixing syntax error on settings.gradle again (:facepalm:) TAP-2742: fixing better class invalidation TAP-2742: fixing some Tapestry-IoC tests Trying to fix TapestryBeanValidationIntegrationTests.client_validation() TAP5-2742: fixes service implementation live class reloading Disabling WebDriver trace debugging level Turning off PageClassLoaderContextManager log at debug level TAP5-2742: fixes problems with page classes with subclasses Temporary change to a tapestry-beanvalidation TAP5-2742: forces pages to never rendered from the unknwon context TAP5-2742: fixing NestedBeanEditor test TAP5-2742: introducingtypes of dependencies Fixing a couple of tests in FormsTests Temporarily disabling the tapestry-beanvalidation build More test code improving (or workaround-ing) TAP5-2742: making method public so it works with smarter page invalidation TAP5-2742: fixing possible NPE when PCLC depends on the root context TAP5-2742: handling page dependencies better (or at least trying) TAP5-2742: specific stylig for superclass and inject page dependencies TAP5-2742: showing all dependencies, not just the already loaded pages TAP5-2742: fixing dependency file saving and loading TAP5-2742: removing commented-out code TAP5-2742: preprocessing page classloader context when possible TAP5-2742: PageClassloaderContext -> PageClassLoaderContext TAP5-2742: creating multiple classloader mode TAP5-2742: reenabling resource -> class tracking TAP5-2742: reenabling tapestry-beanvalidator TAP5-2742: component dependency and page classloader context preloading
- Loading branch information
Showing
84 changed files
with
5,802 additions
and
338 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
Scratch pad for changes destined for the 5.8.3 release notes page. | ||
|
||
# New configuration symbol | ||
|
||
* SymbolConstants.MULTIPLE_CLASSLOADERS: when set to true (default false), enables | ||
multiple classloaders for smarter page cache invalidation. | ||
|
||
# Added methods | ||
|
||
* add(URL url, String memo) to URLChangeTracker | ||
* getChangeResourcesMemos() to URLChangeTracker | ||
* getValues() to MultiKey | ||
* New getLogicalName() method in ComponentClassResolver. | ||
* New getPlasticManager() method in PlasticProxyFactory | ||
* New getPageNames() method in BeanBlockOverrideSource | ||
|
||
# Non-backward-compatible changes (but that probably won't cause problems) | ||
|
||
* New addInvalidationCallback(Function<List<String>, List<String>> callback) method in InvalidationEventHub | ||
* New getEmbeddedElementIds() method in ComponentPageElement (internal service) | ||
* New registerClassName() method in ResourceChangeTracker (internal service) | ||
* New clearClassName() method in ResourceChangeTracker (internal service) | ||
|
||
# Overall notes | ||
* Before |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
commons/src/main/java/org/apache/tapestry5/commons/util/DifferentClassVersionsException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// Copyright 2021 The Apache Software Foundation | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
package org.apache.tapestry5.commons.util; | ||
|
||
import org.apache.tapestry5.commons.internal.util.TapestryException; | ||
|
||
/** | ||
* Exception used when trying to assemble a page but different versions of the same class are found. | ||
* | ||
* @since 5.8.3 | ||
*/ | ||
public class DifferentClassVersionsException extends TapestryException | ||
{ | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
private final String className; | ||
|
||
private final ClassLoader classLoader1; | ||
|
||
private final ClassLoader classLoader2; | ||
|
||
public DifferentClassVersionsException(String message, String className, ClassLoader classLoader1, ClassLoader classLoader2) | ||
{ | ||
super(message, null); | ||
this.className = className; | ||
this.classLoader1 = classLoader1; | ||
this.classLoader2 = classLoader2; | ||
} | ||
|
||
public String getClassName() | ||
{ | ||
return className; | ||
} | ||
|
||
public ClassLoader getClassLoader1() | ||
{ | ||
return classLoader1; | ||
} | ||
|
||
public ClassLoader getClassLoader2() | ||
{ | ||
return classLoader2; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.