aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Provision libraries in 'lib' automaticallyAlexander Kriegisch2021-05-051-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upon special request by Andy Clement, I included 'lib' as a child module in the parent POM again, making several modules which refer to downloaded library files dependent the 'lib' module. I am not sure I caught all of them, but I hope so. Now after cloning the project and configuring the token for reading from GitHub Packages (sorry!), you can just run a Maven build for the main project and no longer need to fail the first build, read the Maven Enforcer message and run 'cd lib && mvn compile' as a first step. This convenience comes at the price of a more complex POM and two new profiles: - Profile 'provision-libs' is auto-activated by the absence of a marker file, kicking off the library provisioning process and creating same marker file at the end, if successful. Therefore, during subsequent builds libraries will not be re-provisioned, because the marker file exists and Maven skips all download and (un)zip steps, which saves build time and bandwidth. Otherwise offline builds would not work either. - Profile 'clean-libs' needs to be activated manually, because by default 'mvn clean' will not erase provisioned libraries. In most cases, even after a clean a developer does not want to re-provision all libraries if they have not changed (e.g. new JDT Core build). But if you do wish too erase the libraries and the marker file, just call 'cd lib && mvn -P clean-libs clean'. Please note: The Maven Enforcer build step, which additionally checks for existence of other files, still exists and was moved from the parent POM to 'libs'. No matter if provisioning was just done or skipped because the main marker file exists, a quick heuristic check for that list of files is done during each build, failing the build with a comprehensive message if an inconsistency was found. The error message says which files are missing and tells the user: "There is an inconsistency in module subdirectory 'lib'. Please run 'mvn --projects lib -P clean-libs clean compile'. This should take care of cleaning and freshly downloading all necessary libraries to that directory, where some tests expect them to be." This should cover the topic. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove redundant 'name' and 'packaging' tags from POMsAlexander Kriegisch2021-04-151-2/+0
| | | | | | | If 'name' is identical to 'artifactId' and 'packaging' has the default value 'jar', we can just remove those tags from the POM. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add Java 16 test suite for AspectJ 1.9.7 + test refactoringsAlexander Kriegisch2021-03-211-0/+4
| | | | | | | | | | | | | | | - Test all features which were preview in 14+15 and are now final in 16, compiling them with language level 16. - For Java 15 we only have sanity tests (and of course the Java <14 tests), compiling Java 16 features to target 15 does not seem to work. - Test remaining Java 16 preview feature (sealed classes). - Instead of overriding runTest(String) in several base classes like XMLBasedAjcTestCaseForJava*Only or XMLBasedAjcTestCaseForJava*OrLater, we now override setUp() from JUnit's TestCase base class. This will run before runTest(String) and make the tests fail much faster, if a user tries to run them on the wrong VM. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add Java 15 / AspectJ 1.9.7 test suiteAlexander Kriegisch2021-03-171-0/+4
| | | | | | Also fix some minor details in Java 14 suite Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix 'ajdoc' tests for Java 15 buildAlexander Kriegisch2021-03-142-8/+12
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix resource leak in FileUtilAlexander Kriegisch2021-03-111-24/+15
| | | | | | | | | | | | | | This made ModuleTests.testBuildModuleAndApplyAspectsFromAspectPath fail because a file delete job for a module JAR failed after a previous compile job had called FileUtil.isZipFile(File) in which the opened zip file was never closed. A try with resources fixes that. Maybe the corresponding test worked on Linux before, I did not try. I just know that Linux is more forgiving about deleting open files while on Windows they are being locked, which makes Windows the better system to search for open file leaks. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix javadoc references to nonexistent fields, classes, or packagesJerry James2020-09-141-1/+1
|
* Fix misplaced or incorrect javadoc tagsJerry James2020-09-142-11/+11
|
* Revert to 1.9.7.BUILD-SNAPSHOTAndy Clement2020-08-211-1/+1
|
* 1.9.7 milestone 1 publishedAndy Clement2020-08-211-1/+1
|
* Remove unnecessary interface modifiersLars Grefer2020-08-171-16/+16
| | | | Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* Merge branch 'master' into feature/collection-performanceAndy Clement2020-08-152-2/+0
|\
| * Cleanup unused importsLars Grefer2020-08-162-2/+0
| | | | | | | | Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* | Weaken Collection declarationsLars Grefer2020-08-154-10/+10
| | | | | | | | | | | | Reports on declarations of Collection variables made by using the collection class as the type, rather than an appropriate interface. Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* | Redundant Collection.addAll() callLars Grefer2020-08-152-4/+2
| | | | | | | | | | | | Reports Collection.addAll() and Map.putAll() calls after instantiation of a collection using a constructor call without arguments. Such constructs can be replaced with a single call to a parametrized constructor which simplifies code. Also for some collections the replacement might be more performant. Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* | Collection.toArray() call styleLars Grefer2020-08-151-1/+1
|/ | | | | | | There are two styles to convert a collection to an array: either using a pre-sized array (like c.toArray(new String[c.size()])) or using an empty array (like c.toArray(new String[0]). In older Java versions using pre-sized array was recommended, as the reflection call which is necessary to create an array of proper size was quite slow. However since late updates of OpenJDK 6 this call was intrinsified, making the performance of the empty array version the same and sometimes even better, compared to the pre-sized version. Also passing pre-sized array is dangerous for a concurrent or synchronized collection as a data race is possible between the size and toArray call which may result in extra nulls at the end of the array, if the collection was concurrently shrunk during the operation. Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* Remove checks for old Java VersionsLars Grefer2020-08-132-3/+9
| | | | Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* Use the diamond operator where possibleLars Grefer2020-08-138-39/+39
| | | | Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* Unnecessary unboxingLars Grefer2020-08-081-1/+1
| | | | | | Reports "unboxing", e.g. explicit unwrapping of wrapped primitive values. Unboxing is unnecessary under Java 5 and newer, and can be safely removed. Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* 'String.indexOf()' expression is replaceable with 'contains()'Lars Grefer2020-08-085-8/+8
| | | | | | Reports any String.indexOf() expressions which can be replaced with a call to the String.contains() method available in Java 5 and newer. Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* 'for' loop replaceable with enhanced 'for' loopLars Grefer2020-08-087-163/+157
| | | | | | Reports for loops which iterate over collections or arrays, and can be replaced with an enhanced for loop (i.e. the foreach iteration syntax). Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
* Rev to 1.9.7.BUILD-SNAPSHOTAndy Clement2020-07-221-1/+1
|
* AspectJ 1.9.6 final bitsV1_9_6Andy Clement2020-07-221-1/+1
|
* Include JDTCore for Java14Andy Clement2020-04-203-46/+51
|
* polishAndy Clement2019-11-293-4/+9
|
* Move to 1.9.6.BUILD-SNAPSHOT versionAndy Clement2019-11-283-36/+35
|
* 1.9.5 release versions in pomsV1_9_5Andy Clement2019-11-281-1/+1
|
* Java 13 supportAndy Clement2019-11-252-56/+61
|
* Fix Bug 550290 - Lack of TypeSafeEnum#hashCode may lead to non-deterministic ↵Andy Clement2019-09-091-9/+21
| | | | bytecode
* Update to 1.9.5.BUILD-SNAPSHOT in pomsAndy Clement2019-06-031-1/+1
|
* 1.9.4 POMSAndy Clement2019-05-101-1/+1
|
* pushed versions to 1.9.4.BUILD-SNAPSHOTAndy Clement2019-04-171-1/+1
|
* Updated with Java12 supportAndy Clement2019-04-031-0/+4
|
* extra util for finding suitable files with mustBeJar optionAndy Clement2019-02-191-0/+35
|
* Add module tests back in - but streamlinedAndy Clement2019-01-311-0/+30
|
* various polish to previously mavenized projects to support newer onesAndy Clement2019-01-311-5/+4
|
* fix versionAndy Clement2019-01-251-1/+1
|
* mavenized util moduleAndy Clement2019-01-2326-133/+71
|
* 1.9.2.RC1 changesV1_9_2_RC1Andy Clement2018-09-291-0/+4
|
* Support Java10Andy Clement2018-04-181-6/+13
|
* Updates to better cope with future JDKsAndy Clement2017-11-091-11/+34
| | | | | | | | | | | | | | The version handling in LangUtil has been overhauled to cope better with post 1.8 releases (JDK9 and JDK10 or 18.3 or whatever they call it). As part of this moved to treating JDK9 as '9' rather than '1.9'. Also removed duplicate version processing logic and had that defer to the one place in LangUtil where we now deal with it. Includes some generics tidyup in ajdoc. More ajdoc work is necessary for Java10 because it removes the standard doclet (old style). However trying to invoke the internal Javadoc handler in Java10 is failing due to module visibility rules.
* Adjust how classpath entries manipulated for Java9 supportAndy Clement2017-10-201-1/+1
| | | | | | | | | | | | | | | | Prior to this AspectJ would discard ignore the ClasspathEntry objects built by JDT and just work with the classpath as a string, driving the JDT FileSystem to rebuild classpath entries again at a later date using the string. This is more complex in Java9 because the string representation was losing whether some entries came in via modulepath. ClasspathEntry construction for modulepath entries is non trivial (since the module-info must be processed). The new version will cache some of the ClasspathEntry objects (those built for modulepaths) and do more work on the AspectJ side building classpath entries in general. It now passes these entries to a different FileSystem entry point rather than the entry point that takes a string path.
* Reusable SoftHashMap utility classAndy Clement2017-09-281-0/+95
|
* various changes to make more tests pass on Java9Andy Clement2017-09-221-0/+7
|
* Bring Java9 branch in line with 1.8.11 progressAndy Clement2017-09-213-38/+36
|\
| * reduced min Java version to 1.6Andy Clement2016-12-161-1/+1
| |
| * Fixing generics warningsAndy Clement2016-10-283-38/+36
| |
* | Merged post 1.8.5 changes into Java9 branchAndy Clement2017-09-202-21/+58
|\|
| * 406167: cope with rogue generic inner type signaturesAndy Clement2015-04-012-21/+58
| |
* | compatibility with JDK 190 build 175Andy Clement2017-06-271-1/+1
| |