1## Licensed to the Apache Software Foundation (ASF) under one 2## or more contributor license agreements. See the NOTICE file 3## distributed with this work for additional information 4## regarding copyright ownership. The ASF licenses this file 5## to you under the Apache License, Version 2.0 (the 6## "License"); you may not use this file except in compliance 7## with the License. You may obtain a copy of the License at 8## 9## http://www.apache.org/licenses/LICENSE-2.0 10## 11## Unless required by applicable law or agreed to in writing, 12## software distributed under the License is distributed on an 13## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14## KIND, either express or implied. See the License for the 15## specific language governing permissions and limitations 16## under the License. 17## 18 19Licensed to the Apache Software Foundation (ASF) under one or more 20contributor license agreements. See the NOTICE file distributed with 21this work for additional information regarding copyright ownership. 22The ASF licenses this file to You under the Apache License, Version 2.0 23(the "License"); you may not use this file except in compliance with 24the License. You may obtain a copy of the License at 25 26http://www.apache.org/licenses/LICENSE-2.0 27 28Unless required by applicable law or agreed to in writing, software 29distributed under the License is distributed on an "AS IS" BASIS, 30WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 31See the License for the specific language governing permissions and 32limitations under the License. 33 34 35 ${project.name} 36 Version ${version} 37 Release Notes 38 39 40INTRODUCTION: 41 42This document contains the release notes for the ${version} version of Apache Commons Lang. 43Commons Lang is a set of utility functions and reusable components that should be of use in any 44Java environment. 45 46Lang 3.9 and onwards now targets Java 8, making use of features that arrived with Java 8. 47 48For the advice on upgrading from 2.x to 3.x, see the following page: 49 50 https://commons.apache.org/lang/article3_0.html 51 52$introduction.replaceAll("(?<!\015)\012", " 53").replaceAll("(?m)^ +","") 54 55## N.B. the available variables are described here: 56## https://maven.apache.org/plugins/maven-changes-plugin/examples/using-a-custom-announcement-template.html 57## 58## Hack to improve layout: replace all pairs of spaces with a single new-line 59$release.description.replaceAll(" ", " 60") 61 62## set up indent sizes. Only change indent1 63#set($props=${project.properties}) 64#set($jiralen=$props.get("commons.jira.id").length()) 65## indent1 = POOL-nnnn: 66#set($blanklen=$jiralen+6)## +6 for "-nnnn:" 67## must be at least as long as the longest JIRA id 68#set($blanks=" ") 69#set($indent1=$blanks.substring(0,$blanklen)) 70## indent2 allows for issue wrapper 71#set($indent2="$indent1 ") 72## 73#macro ( processaction ) 74## Use replaceAll to fix up LF-only line ends on Windows. 75#set($action=$actionItem.getAction().replaceAll("\n"," 76")) 77## Fix up indentation for multi-line action descriptions 78#set($action=$action.replaceAll("(?m)^ +",$indent2)) 79#if ($actionItem.getIssue()) 80#set($issue="$actionItem.getIssue():") 81## Pad shorter issue numbers 82#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end 83#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end 84#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end 85#else 86#set($issue=$indent1) 87#end 88#if ($actionItem.getDueTo()) 89#set($dueto=" Thanks to $actionItem.getDueTo().") 90#else 91#set($dueto="") 92#end 93o $issue ${action}$dueto 94#set($action="") 95#set($issue="") 96#set($dueto="") 97#end 98## 99#if ($release.getActions().size() == 0) 100No changes defined in this version. 101#else 102Changes in this version include: 103 104#if ($release.getActions('add').size() !=0) 105New features: 106#foreach($actionItem in $release.getActions('add')) 107#processaction() 108#end 109#end 110 111#if ($release.getActions('fix').size() !=0) 112Fixed Bugs: 113#foreach($actionItem in $release.getActions('fix')) 114#processaction() 115#end 116#end 117 118#if ($release.getActions('update').size() !=0) 119Changes: 120#foreach($actionItem in $release.getActions('update')) 121#processaction() 122#end 123#end 124 125#if ($release.getActions('remove').size() !=0) 126Removed: 127#foreach($actionItem in $release.getActions('remove')) 128#processaction() 129#end 130#end 131## End of main loop 132#end 133 134Historical list of changes: ${project.url}changes-report.html 135 136For complete information on ${project.name}, including instructions on how to submit bug reports, 137patches, or suggestions for improvement, see the ${project.name} website: 138 139${project.url} 140 141Download page: ${project.url}download_lang.cgi 142 143Have fun! 144-Apache Commons Team 145