file
command- added exclude option
- fixed paths under htdocs: for directory arguments, they were absolute paths, now they are relative
- improved error message for invalid gitea url
- fixed usage message for
file
- added Gitea support for IndexModules
- host properties
- added
modern
property to reject classic modules on publishing - added
bitbucketHosts
property to specify (comma-separated) the git hosts running bitbucket; everything else is consideded gitea; default isbitbucket.1and1.org
because old lavender versions would reject this property
- added
- changed system property
lavender.bitbucket.wirelog
tolavender.wirelog
; also works for gitea - dumped explicitly testing for and rejecting
pustefix.relative
- updated debian dependencies from Java 8 to 11
- no parent pom update, because it would compile for java 16, which is not yet an option (shops and bkshops use Java 15; telesales uses Java 13 Tower only has Java 11)
- fixed Bitbucket Module banchOrTag configuration
CAUTION - breaking change: requires Java 11+
Migration steps:
- update dependency version to 2.10.0
- update build process to generate lavender.properties with lavender-plugin
Changes
- added IndexModule and lavender-plugin to configure it
- environment variable LAVENDER_REDIRECTS replaces LAVENDER_SOURCES: it defines a comma-separated url prefix -> url prefix mapping
- added
info
command - renamed branch
master
tomain
, https://github.com/github/renaming - cleanup lavender.properties loading code:
- dumped
scan-legacy
command - introduced new lavender.properties format "modern" (the previous format is now called classic)
- module fields: name, scmurl, revision, path, includes, excludes, lavenderize, resourcePathPrefix, targetPathPrefix
- notes
- name is explicit now
- connection is now called scmurl
- tag is now called revision
- lavendelize is now called lavenderize
- connectionDevel is gone
- for classic properties
- prod- and devel connections have to be the same
- reject properties with multiple prefixes
- application lavender.properties with
legacy
are rejected as unknown (it was rejected since Lavender 2.8.0; I also checked the logs for 2021) - lavender.properties with
type
properties are rejected
(type had no effect and wasn't used in latest parent poms) - lavender.properties with
pustefix.relative
are rejected (they have been rejected for application properties; they were still supported for module properties) - removed unused module loading code
- dumped
- dumped pws work-around that tried to load pominfo.properties from target/classes
- fixed application warning with Java 16: the launcher no longer checks the Java version, and it no longer sets the illegal-access option
- big dependency update
- update parent 1.3.4 to 1.4.2 (compiles for Java 11)
- update sushi 3.2.1 to 3.3.0 (compiled for Java 11)
- update svnkit 1.9.3 to 1.10.3
- update slf4j 1.7.25 to 1.7.30
- update jsch 0.1.54 to 0.1.55
- update jsch.agentproxy 0.0.7 to 0.0.9
- update gson 2.8.4 to 2.8.6
- update inline 1.1.1 to 1.2.0
- update test dependencies to fix build on Java 16
- mockito 1.8.5 to 3.9.0
- tomcat 7.0.90 to 7.0.108
- other test dependency updates:
- update junit 5.7.0 to 5.7.1
- dumped httpcore 4.3.1, it's not needed
- dumped jaxb dependencies, they were needed by Tomcat in integration tests, but this was solved by compiling for Java 11
- update junit 4.12 to 5.7.0
- support og:image in meta-tags (thanks to Marcel E)
- changed HostProperties.network from Node to URI to avoid svn access (for Ionos Shops) CAUTION: this is an incompatible api change (although it's unlikely that this field is used by none-lavender code)
- added support for (thanks to Andreas P)
- updated parent 1.3.2 to 1.3.4
- reject
legacy
configuration - softInvalidateEntries invalidates after 10 seconds now (was 5)
- Bitbucket support
- fixed missing images due to lavender.properties
path
not removed from accessPath (thanks to Alex M) - fixed missing images if repository history longer then 1000 entries (for Alex M)
- fixed encoding problem in userInfo (for Lars H)
- added printlns to detect api bottlenecks
- fixed missing images due to lavender.properties
- Bitbucket support
- fixed lastCommit to also check for tags
- tweaked log output
- Bitbucket support
- added
lavender.bitbucket.wirelog
property to enable a wire log - fixed handling of JsonNull in page results (Bitbucket return nextPage null without indicating this by
isLastPage
)
- added
- fixed corrupt images server by DevelFilter
- added support for git lfs (contributed by Lars Hutzelmann)
- rewrite img/@srcset and source/@srcset (contributed by Marcus Trautwirg)
- fixed scm matching for secrets selection
- fixed anonymous bitbucket access
- fixed NumberFormatException when creating released git modules
- update lazy-foss-parent 1.0.4 to 1.2.0
- checkstyle fixes
- IntelliJ code inspection fixes
- do not rewrite
img/@src
attributes if their value starts withdata:
(case sensitive) - fixed Java Module detection in launcher script: Java 1.7 does not have modules
- update sushi 3.1.7 to 3.2.0
- update lazy-foss-parent 1.0.2 to 1.0.4
-
added support for bitbucket modules: derive you pom from at least frontend-parent 3.4.0 or application-parent-3.10.0; note that loading resources from the server does not see local changes that have not been pushed yet;
- caution: Bitbucket passwords do not equal intranet passwords; it's usually not defined because ssh is used for cloning a repository, ask Frank Kleine how to set it
-
DevelopmentFilter
- use etags only (based on Resource.getContentId), last-modified header is gone
-
cli
- dumped
-lastconfig
switch, it was not used by puc, and you can now reconfigurenetwork
in the host.properties - generalized
svn
command toscm
; the first argument is now the scm name defined in host.properties - simplified command line by aligning the arguments passed to the various publishing commands:
- 'war': it's just
war cluster docroot index
now - 'scm': it's just
scm cluster docroot index
now - 'file': mandatory arguments are now
archive cluster docroot index
- 'war': it's just
- dumped
-
improved locking of cluster hosts
- remove connection locks on ctrl-c (via shutdown hook)
- lock files now contain user, machine and command being executed
-
caching:
- dumped cache lock - use atomic reads and writes instead
- introduced md5 cache maintained by Distributor for all modules
- changed svn entry cache: dumped md5, size and last modified fields; svn caches entries now reside under /svn
-
module configuration cleanup
- svn properties generalized to scm properties (old svn properties still work (they are detected by the
pustefix.relative
property), but both application- and frontend-parents should be updated soon; they have to be updated to get bitbucket support)- svn prefix changed to scm
- dumped
scm.foo.relative
, it was always empty - added
scm.foo.path
to configure the path formerly appended to the url or devel url (typicallysrc/main/resources
) - replaced
revision
bytag
- dumped pustefix.* properties; thus, it's no longer possible to configure embedded resources; lavender reports an error if legacy descriptors contain a matchable filter
- added a
legacy
property to applications properties to configure legacy modules - i.e. modules that don't have a module descriptor; uselavender scan-legacy
to search a project for legacy modules - pominfo.properties, lavender.properties and resource index are now required for lavender modules
- svn properties generalized to scm properties (old svn properties still work (they are detected by the
-
admin configuration cleanup
- system properties -> host properties
- changed terminology: system properties are now called host properties (to better distinguish them from Java's system properties)
- renamed
lavender.properties
tolavender/host.properties
; also renamed the corresponding system propertylavender.properties
tolavender.hostproperties
and the environment variableLAVENDER_PROPERTIES
toLAVENDER_HOSTPROPERTIES
- added
network
property to configure the location of the network.xml - instead of a single svn url, you can now configure a map of scm urls (including git urls)
- configurable secrets path:
secrets
defines a comma-separated (CAUTION: not colon, because that's used in fault file names) path where to search for secrets files; wildcard allowed
- renamed net.xml to network.xml
- in network.xml
- renamed docroot type to docroot name
- renamed docroot docroot to docroot documents
- merge aliases into docroot
- system properties -> host properties
-
added java 11 support
- fixed hardcoded references to com.sun.zipfs
- added explicit javax.xml.bind dependencies
- launcher adds the respective java 9+ options when it its detected
-
dependency updates:
- sushi 3.1.6 to 3.1.7
- svnkit 1.8.5 to 1.9.3
- slf4j 1.7.5 to 1.7.25
- fixed file creation problem introduced in 2.6.1: infinite loop if _tmp_1 exists (thanks to Marcus T)
- fixed permission problem on svn cache: create files with permissions based on umask (2.6.0 created files with rw- --- --- permissions)
- added fsck -repair-all-idx option
- CssProcessor url rewrite fix: don't try to rewrite data urls (thanks to Julian B)
- Updated Sushi 2.8.x to 3.1.x and Inline 1.1.1 and Metadata 1.0.0 (thanks to Marcus T)
- Updated Jsch 0.1.51 to 0.1.54
q
- Added
remove-entry
command
- Fix CSS image urls with quotes, whitespaces and escaped chars
- production/development mixed mode can be triggered via system property 'lavender.allowProdDevMixMode'
- Also use production and development filter in test environment.
- HtmlProcessor refactoring for standalone usage.
- Fix java debian dependency, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803152.
- Make Lavender filter reloadable
- Refactored Lavender filter by ProductionFilter and DevelopmentFilter
- Update sushi 2.8.18 to 2.8.19 to get support for configurable ssh ports.
- Fixed tailing space problem when loading devel svn caches.
- Dumped /opt/ui from binary and properties path. Adjusted properties search path accordingly.
- Print servlet filter startup exceptions to stderr because logging might not be configured yet.
- Properly unlock svn cache when servlet filter startup fails with an exception.
- Properly document and check the first file command argument. It's now called archive.
- Improved search order to locate lavender.properties: It's now what you'll normally expect:
- "lavender.properties" system property
- "LAVENDER_PROPERTIES" environment variable
- classpath
- ~/.lavender.properties
- /etc/lavender.properties Thus, there's a new system property that's searched first. And the classpath is now searched before the home directory.
- Support configurable uri for hosts. This replaces the option to specify a path.
- Added revision property to svn properties to pin a module to one revision.
- lavender.properties: Added optional cache property to configure svn cache directory. Default is ~/.cache/lavender. The cache directory may be shared, it's properly locked and cache files are deleted before writing to avoid permission problems.
- Read svn resource with the scanned revision, not with latest revision.
- The war command takes on war argument now, and this war file is modified. This is an incompatible change, and this is the reason for the minor version bump.
- Speedup Svn modules: fixed path problem that prevented some caching; read without tmp files; get rid of checkPath call; cache scan results; append to war using TrueZip.
(See https://github.com/mlhartme/lavender/blob/lavender-2.2.6/src/changes/changes.xml for older changes)