Skip to main content
AgeCommit message (Collapse)AuthorFilesLines
2018-03-27Bug 532923 - Copyright property page does not resizeI20180411-2000I20180411-0735I20180411-0530I20180410-2000I20180409-2000I20180408-2000I20180407-1500I20180406-2000I20180405-2000I20180404-2000I20180403-2000I20180402-2000I20180401-2000I20180331-1500I20180330-2235I20180330-2000I20180329-2000I20180329-0000I20180328-2000I20180327-2000Michael Keppler1-1/+1
Let the main label control grab the horizontal excess space to resize with the property page. The same flag was already set for the nearly identical license property page. Change-Id: I7067f24bec245bc28a825630ad591b35b09306fa Signed-off-by: Michael Keppler <> Bug:532923
2018-03-20Bug 531345 - Publish product requirement according to <vm>I20180327-0805I20180327-0630I20180326-2000I20180325-2000I20180324-1500I20180323-2000I20180323-0355I20180322-2000I20180322-0645I20180322-0225I20180321-2000I20180320-2000Mickael Istria5-48/+142
Use the EE defined in the <vm> node of product definition to define some capability requirements in product metadata. Add tests to make sure JRE is still included while unit isn't directly referenced by product requirements. Change-Id: Ic2bd5c30215e9936201c70f7268e5c6068979405 Signed-off-by: Mickael Istria <>
2018-03-20Bug 532652 - MetadataFactory.createRequirement ignores descriptionEd Merks1-1/+1
Change-Id: Ie6f6c2ca6abad2d60c1cdbc18c085d60bf7b704d Signed-off-by: Ed Merks <>
2018-03-13Bug 532400 - Remove buckminster relengI20180319-2000I20180318-2000I20180317-1500I20180316-2000I20180316-0740I20180316-0730I20180316-0525I20180316-0510I20180316-0455I20180315-2000I20180314-2000I20180313-2000Alexander Kurtakov4-135/+0
Not used for ages. Change-Id: I1b849d554ed5c1fbb3ace4267876fee85294c7ea Signed-off-by: Alexander Kurtakov <>
2018-03-13Bug 512323 - Missing newer target files in org.eclipse.equinox.p2.relengAlexander Kurtakov13-345/+0
Now that we have photon target file nuke all the old and useless stuff - ancient target files and psf files pointing to the years dead cvs repos. Change-Id: Iec77b4cfeb218be0321e4e8f5937134262a27f38 Signed-off-by: Alexander Kurtakov <>
2018-03-13Bug 512323 - Add target file for building against Photon (4.8).Roland Grunberg1-0/+19
Change-Id: If90e85f1a54e14246bb2d60aa4674b9d8543bf7b Signed-off-by: Roland Grunberg <>
2018-03-12Bug 532118 - Eliminate exception when checking if buffer is full in ↵Mykola Nikishov1-6/+4
MessageDigestProcessingStep There is common wisdom behind the claim that throwing exception may hurt performance but I have no real numbers to say it will have real impact in this case. However, in this case it is easy to avoid exception by explicitly checking if the buffer is full before putting new data into it. Change-Id: Ifbd178aff4f943c31772aa357ee8369efcee558f Signed-off-by: Mykola Nikishov <>
2018-03-12Bug 532118 - Reduce number of calls to Nikishov3-36/+80
MD5Verifier and ChecksumVerifier are responsible for calculating artifact's checksum and must extend ProcessingStep to fulfill API requirements. ProcessingStep is effectively an unbuffered OutputStream with a method to process a single byte of artifact's data. In respect to MessageDigest, this means updating digest with every new single byte of data. So, for 16 Kb of data, both classes will call MessageDigest's update(byte) 16K times while only 1 call is enough. Introduce MessageDigestProcessingStep that accumulates incoming bytes in the internal buffer and immediately forwards them to the destination stream. As soon as buffer is full, it will update MessageDigest. AbstractBufferingStep could be used as a base class instead but it is too risky to adapt it. java.nio.ByteBuffer fits the bill almost ideally. One caveat is it communicates 'buffer is full' by throwing BufferOverflowException. There are no specific reasons for buffer's size of 16K except an assumption that it should not cause any problems: installing 1000 artifacts with 2 checksums per artifact would increase memory footprint for about 3200K. Similar approach has been used already [1], [2], claiming 5x speedup. This should make [3] less of a problem. [1] 5b2f061cd8ecf96a37783657e7ee7a0110c9d26d [2] Bug 405716 [3] Bug 532036 Change-Id: I1ba0d36267b3f07103c22b93f92c41765e33c8cc Signed-off-by: Mykola Nikishov <>
2018-03-09Bug 519085 Reduced memory consumption of SimpleArtifactDescriptorI20180312-2000I20180311-2000I20180310-1500I20180309-2000Karsten Thoms2-8/+34
Also of OrderedProperties by interning keys. Change-Id: Ic86797dd633b0537e99d86aad89de26f1c80e497 Signed-off-by: Karsten Thoms <>
2018-03-09Bug 448789 - Improved error logging for remediationOperation null refKarsten Thoms1-2/+8
Avoids the NPE as reported in the bug and logs the situation. Change-Id: I4ea13466ec7c764b6d75c9b28c0cba57fc75c301 Signed-off-by: Karsten Thoms <>
2018-03-08Bug 532190 - Buffered writingKarsten Thoms1-1/+1
Change-Id: I4630b8206e2f404573ea0fe971eb21e1aae49832 Signed-off-by: Karsten Thoms <>
2018-03-07Bug 532094 - Update releng with new hamcrest and apache batikS4_8_0_M6I20180308-0630Alexander Kurtakov1-0/+2
Change-Id: I30f7e43699e28662f8740b41b2318247ea19d98b Signed-off-by: Alexander Kurtakov <>
2018-03-05Bug 531606 - RequiredCapability introduced binary-incompatible changesI20180307-2000I20180307-1025I20180307-0900I20180307-0825I20180307-0800I20180306-2000I20180306-0800I20180305-2000Mykola Nikishov1-0/+2
p2 tries to not change internals (due to bad downstreams using internals widely) but these are internals after all and considering the churn with capabilities work and current stable state, we are not going to do any work here. Clients would have to adapt to the changes when moving to Photon p2. To communicate this, explicitly mark RequiredCapability as not intended to be referenced by clients. Change-Id: I4bddb36f13178ec07752ee92b6bacaca26370bf2 Signed-off-by: Mykola Nikishov <>
2018-03-05Bug 423715 - Really preserve legacy MD5 propertiesI20180305-0800I20180305-0300Mykola Nikishov4-41/+34
Workflow to calculate checksums and store them in artifact's properties assumes usage of two methods from org.eclipse.equinox.internal.p2.artifact.processors.checksum.ChecksumUtilities: - calculateChecksums(File, Map<String, String>, Collection<String>) - checksumsToProperties(String, Map<String, String>) Two users of these methods, PublisherHelper and RecreateRepositoryApplication handled legacy MD5 properties in an inconsistent way. Even more, RecreateRepositoryApplication effectively ignored legacy MD5 property when recreating artifact descriptor. Move logic to handle legacy MD5 properties from PublisherHelper and RecreateRepositoryApplication to ChecksumUtilities' checksumsToProperties(String, Map<String, String>). p2 codebase has no tests for RecreateRepositoryApplication but PDE Build does, specifically P2Tests' testBug265564. This time PDE Build detected such regression [1], but it would be better to have some test harness for RecreateRepositoryApplication in p2 itself and not rely on downstream projects. [1] Bug 531931 Change-Id: Ic651df754691c25ee824bb444eff251f64f0757a Signed-off-by: Mykola Nikishov <>
2018-03-02Bug 423715 - Fix since tagsI20180304-2000I20180304-0800I20180303-1500I20180303-1200I20180303-0800I20180303-0335I20180303-0155I20180303-0055I20180302-2000Alexander Kurtakov1-2/+2
Change-Id: I8a5532c9ef2a12cc13e125b1545b466472ec4e0c Signed-off-by: Alexander Kurtakov <>
2018-03-02Bug 531917 - Remove redundant type parametersAlexander Kurtakov60-210/+387
With Java 8 and properly generified some apis it's not needed to specify the types anymore. Change-Id: Ib758c6f50b1b1fd3f56bd52eb7e664b89b6cc776 Signed-off-by: Alexander Kurtakov <>
2018-03-02Bug 423715 - Fix compile warnings Alexander Kurtakov1-0/+1
In the nightly build there is: 1. WARNING in /src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/ (at line 139) MD5Verifier checksumVerifier = new MD5Verifier(md5); Resource leak: 'checksumVerifier' is never closed It's stored and used so shouldn't be closed at this point. Change-Id: I9cba78e8706c3122efc5ae1bc1c9c88c1eeec905 Signed-off-by: Alexander Kurtakov <>
2018-03-01Bug 423715 - Support multiple algorithms for artifact checksumsI20180301-2000Mykola Nikishov32-92/+1018
Developer of p2-based software should be able to check integrity of artifact checksums using any MessageDigest implementation available, at his own discretion, without ever touching p2 internals. For the purpose of this bug, limit enabled checksum algorithms to: - MD5 (legacy one, deprecated now, for backward compatibility only) - SHA-256 (more collision-resistant than MD5) See artifactChecksums.exsd for more details. First, encode ID of the checksum algorithm into the name of the property itself so that artifact descriptor now may look like: <artifact classifier='binary' id='testKeyId' version='1.2.3'> <properties size='6'> <property name='download.md5' value='b3788632488d48b850255acf68669651'/> <property name='artifact.md5' value='b3788632488d48b850255acf68669651'/> <property name='download.checksum.sha-256' value='d594816b995d1689c2dfc97dc244859abe6bdb9ebeb4b396e401afd85a97ee16'/> <property name='download.checksum.whirlpool' value='e4f3ece3d3f289cc2686a68f0b1b5a2d03da3a8ccdc3cd6d03209e4c789af724c8fa915bb890079e1abe78df44875cec132885dd6ae1176eed7938dfb3c7b551'/> <property name='artifact.checksum.sha-256' value='d594816b995d1689c2dfc97dc244859abe6bdb9ebeb4b396e401afd85a97ee16'/> <property name='artifact.checksum.tiger' value='462a72a1a593b9e2de8721b8d79335fd03e974f2e2e1f35a'/> </properties> </artifact> Prefix helps to avoid conflicts with other, not checksum-related, properties. To find checksums of specific type, we need all properties with prefix 'artifact.checksum.', Extracting checksum id from the name of the property is also trivial. Store these prefixes in IArtifactDescriptor's DOWNLOAD_CHECKSUM and ARTIFACT_CHECKSUM. ChecksumUtilities provides internal API to deal with properties. Second, map ID of checksum algorithm to the name of MessageDigest implementation with a contribution to a new extension point org.eclipse.equinox.p2.artifact.repository.artifactChecksums: <extension point="org.eclipse.equinox.p2.artifact.repository.artifactChecksums"> <artifactChecksum algorithm="SHA-256" id="sha-256" ... /> </extension> Number of actual checksums in artifact descriptor depends on the configuration of the application that created such descriptor because p2 will: - handle MD5 checksums as usual, preserving backward compatibility - calculate other checksums using extensions that contribute to artifactChecksums extension point Last, we use id of specific checksum to get MessageDigest instance with getInstance(String). There is a number of standalone applications (like MirrorApplication) and Ant tasks (like ValidateTask) that allow user to chose specific comparator by id and ArtifactComparatorFactory is responsible for instantiating it. Legacy MD5 comparator requires no special configuration while the new ArtifactChecksumComparator is more generic and needs some parameters to instantiate. ArtifactComparatorFactory handles this by accepting fake comparator id - concatenated ArtifactChecksumComparator's id and checksum algorithm id. In other words, to compare artifacts using SHA-256 algorithm use 'org.eclipse.equinox.artifact.comparator.checksum.sha-256' as comparator id. We generate, consume and compare artifact checksums using all enabled algorithms. Ideally, configuration options should provide more control for both repository publisher and p2 client like: - a priority (compare with SHA-512 first, then SHA-256 and, finally, MD5) - skip specific checksum (do not use MD5 even if provided) - mandatory checksum (require Whirlpool and it's an error if its not available) While I have no good solution for this right now, there are some configuration options provided. Also, number of new enabled checksum algorithms is limited to SHA-256 only (more checksums = more reasons to fail = more reasons to disable). To turn checksum verification off completely: - for p2 client, use property 'eclipse.p2.checksums.disable' (see SimpleArtifactRepository.CHECKSUMS_ENABLED constant). - for p2 publisher, the old PublisherInfo's setArtifactOptions(int) and IPublisherInfo.A_NO_MD5 still could be used. To disable MD5 checksums only, existing properties 'eclipse.p2.MD5Check' and 'eclipse.p2.MD5ArtifactCheck' still can be used. Change-Id: Iacd267e13d5d096694001d34cafbaea5451e7157 Signed-off-by: Mykola Nikishov <>
2018-02-26Bug 218650 - Parse the product <vm> settingI20180228-2000I20180227-2000Mickael Istria4-1/+105
Change-Id: I2aa1af9333619e0a078c8b8a1e7c90960876197d Signed-off-by: Mickael Istria <>
2018-02-22Bug 531430 - Replace usage of SubProgressMonitor by SubMonitorI20180226-2000I20180225-2000I20180224-1500I20180223-2000I20180222-2000Karsten Thoms8-10/+10
Change-Id: Iea476f0ceb12d83224e0274c1d6a53c49b81adce Signed-off-by: Karsten Thoms <>
2018-02-21Bug 531354 - Restore binary compatibility of publisher.eclipse bundleI20180221-2000Alexander Kurtakov1-15/+6
Fix compile warnings. Change-Id: Ia75aff8e0f2f76f6974cf35cb86d1ea8c1ceaa3e Signed-off-by: Alexander Kurtakov <>
2018-02-20Bug 531354 - Restore binary compatibility of publisher.eclipse bundleI20180220-2000Mykola Nikishov1-1/+11
org.eclipse.equinox.p2.publisher.eclipse.BundlesAction is a public not final class exported by publisher.eclipse bundle and there are no restrictions like x-friends, @noextend an alike. This makes it a public API. At binary level, changing signatures [1] of BundlesAction's protected methods is a binary-incompatible change: - remove old methods with first parameter of type ArrayList<IRequirement> - add new methods with the same name but with first parameter of type List<IRequirement> Instead of increasing a major segment of bundle's version, restore binary compatibility by restoring original methods. [1] 02e018c88f5307fc754ae8bc0c0467eb209dd982 Change-Id: I0c5cff87d96c58da45f98d848572271f817364e0 Signed-off-by: Mykola Nikishov <>
2018-02-15Bug 507657 - Refactor AbstractRepositoryManager's loadIndexFile(URI,I20180219-2000I20180218-2000I20180217-1500I20180216-2000I20180216-0415I20180215-2000Mykola Nikishov1-26/+25
String, IProgressMonitor) - extract methods to load local and remote p2.index file - rename method isURL to isInMemoryRepository and drop explanation on the caller's side Change-Id: I9558d1746b4f4433a63040ab8c9cae18da4a6bdd Signed-off-by: Mykola Nikishov <>
2018-02-15Bug 516442 - remove unnecessary import package David Williams1-1/+0
the purpose is to avoid Access Restriction error in workbench in org.eclipse.equinox.p2.ui Change-Id: I1f02be8ce58344f38c4b95ae2f639a8e3499d97e Signed-off-by: David Williams <>
2018-02-15Bug 530592 - Fixed typo in temp file nameKarsten Thoms1-2/+2
Change-Id: I86648442f44dfbc1abf1293a7c9dd895cf46c98f Signed-off-by: Karsten Thoms <>
2018-02-15Bug 423715 - Replace StringBuffer with StringBuilder in MD5VerifierMykola Nikishov1-1/+1
Change-Id: Ie5a180d179facbdb532aad3d887ca962f78a2105 Signed-off-by: Mykola Nikishov <>
2018-02-15Bug 423715 - Use enhanced loop in MD5VerifierMykola Nikishov1-3/+3
Change-Id: I5c134ad37433f7868defe060b34fe40a8d8e820a Signed-off-by: Mykola Nikishov <>
2018-02-15Bug 423715 - More javadoc for ArtifactComparatorFactoryMykola Nikishov1-1/+6
Change-Id: I72b1dc794d8da8acc240c380df33f938afe406a7 Signed-off-by: Mykola Nikishov <>
2018-02-14Bug 423715 - ArtifactComparatorFactory reports available comparatorsMykola Nikishov2-3/+6
Method getArtifactComparator(String) should report which artifact comparators are available. When troubleshooting, user of standalone applications and Ant tasks will have more information. Change-Id: Iba7ea48c139c5ae365bc898804b38dc7cd75cc55 Signed-off-by: Mykola Nikishov <>
2018-02-14Bug 423715 - ArtifactRepositoryValidator reports original causeMykola Nikishov1-1/+1
When throwing ProvisionException as a result of the underlying IllegalArgumentException from ArtifactComparatorFactory's getArtifactComparator(String), do not hide an original problem but report it to the caller. Change-Id: Iefcf90ea183a24eca48caa4b9006493ca4e356ea Signed-off-by: Mykola Nikishov <>
2018-02-12Bug 423715 - Extract methods in ArtifactComparatorFactoryI20180214-2000I20180213-2000I20180213-0125I20180212-2000Mykola Nikishov1-23/+34 isolate independent parts of code and make it easier to understand. Also, add javadoc to the single public method. Change-Id: Ie61a36eca7b98fb33af2f267ad58ce4724053f17 Signed-off-by: Mykola Nikishov <>
2018-02-12Bug 423715 - ArtifactRepositoryValidator should catch IAE in order toMykola Nikishov2-4/+5
throw ProvisionException Check for comparatorId == null is useless because ArtifactComparatorFactory's getArtifactComparator never returns null but throws IllegalArgumentException instead. This way the underlying IAE is leaking to caller and ProvisionException (expected by client) is never thrown. Change-Id: Ib590f6259e31713f7f9601061deef34e56a0552d Signed-off-by: Mykola Nikishov <>
2018-02-08Bug 530754 - Removes OrderedProperties constructor which creates an infinite ↵I20180211-2000I20180210-1500I20180209-2000I20180208-2000Lars Vogel1-10/+0
loop Change-Id: Ia5a96262ab0e4db0028a4b75c204a7d2a305817d Signed-off-by: Lars Vogel <>
2018-02-08Bug 529908 - Update xz-java 1.8Alexander Kurtakov1-0/+1
Touch p2.core feature. Change-Id: If68fe6741b6bbab7a0458116c6236faf533886ec Signed-off-by: Alexander Kurtakov <>
2018-02-07Bug 423715 - Encapsulate checks performed during MD5Verifier creationI20180207-2000Mykola Nikishov3-21/+43
As a side-effect, this decouples RawMirrorRequest and SimpleArtifactRepository from MD5Verifier. Change-Id: I8e5f50a3fd6b21006a42e115858d98aa07f90df5 Signed-off-by: Mykola Nikishov <>
2018-02-04Bug 423715 - Check MD5Verifier's status before using itMykola Nikishov2-11/+18
Add MD5Verifier to processing steps only if it had been initialized properly. During construction, MD5Verifier catches NoSuchAlgorithmException in a way that requires caller to check the actual status with getStatus().isOK(). If not properly constructed, MD5Verifier's write(int) and close() will throw NPE later on. This change may be considered as an API breaking: before, using verifier that has not been properly constructed, client will get NPE. After this change, the actual problem will be hidden as client will not see such invalid verifier at all. On the other hand, this should never happen because every JRE must support MD5 MessageDigest implementation (which is the only implementation used by p2 as of now). Change-Id: Ic24f9f6caaa219233715998d74bfc478a5310247 Signed-off-by: Mykola Nikishov <>
2018-02-01Bug 530470 - Restored complex version range match expressionsI20180206-2000I20180206-0315I20180205-2000I20180204-2000I20180203-1500I20180202-2000I20180202-0315I20180201-2325I20180201-2000Todor Boev2-26/+98
- Removed the use of the match (~=) operator against a VersionRange object and the use of a single pre-built expression. - Restored the use of comparison operators against Version objects and the use of multiple pre-built expressions for all version range possibilities. - This is a partial revert of Bug 528494 Change-Id: I353ca42c25111ca2f1ed8d7be5166e872b2e57bd Signed-off-by: Todor Boev <>
2018-01-31Bug 423715 - Add SHA256 to p2 metadata publishingI20180201-0200I20180131-2000Mykola Nikishov1-4/+12
Extract method to add checksum verifier to processing steps Change-Id: Id3dccedc687afee6faf97a66d21873e98a52717a Signed-off-by: Mykola Nikishov <>
2018-01-31Bug 530535 - Move away of deprecated Class.newInstanceAlexander Kurtakov9-69/+200
Deprecated in Java 9 due to propagating exceptions instead of being properly checked at compile time. The replacement Constructor.newInstance has always been around. Switched frameworkadmin bundles to use Eclipse default formatter as the one defined prior to that was line breaking at 800. Change-Id: Ia0cab2a80c288115c319ba3c1378d6b6fa20fbe7 Signed-off-by: Alexander Kurtakov <>
2018-01-30Bug 530526 - Don't use deprecated Number children constructorsAlexander Kurtakov12-29/+29
Deprecated in Java 9 but the replacment methods are here for long time. Change-Id: I645d66492831a95d27f61bc443c8896d73440579 Signed-off-by: Alexander Kurtakov <>
2018-01-30Bug 530486 - Remove useless thrown exceptions.I20180130-2000Alexander Kurtakov9-31/+51
Change-Id: Ieb5178a2eecbeaab88afd5e00bc3806bc615c7ae Signed-off-by: Alexander Kurtakov <>
2018-01-29Bug 518031 - Throw exception if unable to create a secured XML factoryMykola Nikishov8-46/+38
Secured XML factory must be either successfully created or fail in an obvious way. Do not hide actual problem by catching an exception and let the caller to decide what to do with it. Change-Id: I8f3c6f29d2874dbb0f4952d1322150923582f642 Signed-off-by: Mykola Nikishov <>
2018-01-28Bug 530396 - fixed compiler warningI20180129-2000I20180129-0605I20180129-0540Andrey Loskutov1-1/+1
Change-Id: I0c80c6315cb1ca1e8e91649cf5f3a0c880b6cc0b Signed-off-by: Andrey Loskutov <>
2018-01-26Reuse existing ctorI20180128-2000I20180127-1500I20180127-0150I20180126-2040Mykola Nikishov1-14/+2
Signed-off-by: Mykola Nikishov <>
2018-01-26Bug 530398 - Remove unused code for compatibility with old updateAlexander Kurtakov4-28/+6
Change-Id: I6b852cbd3c54475f1065558d2e3b4b180353d109 Signed-off-by: Alexander Kurtakov <>
2018-01-26Bug 530396 - Move UI code to lambdasAlexander Kurtakov44-1435/+795
Change-Id: I92c7b5c6cbde04280da91a9ee617495ff0381a73 Signed-off-by: Alexander Kurtakov <>
2018-01-23Bug 530150 - Move JREAction default profile to Java 9S4_8_0_M5I20180124-2000I20180124-0800I20180123-2000I20180123-1010I20180123-0800Alexander Kurtakov3-11/+16
People not specifying EE will get some sane default, Java 6 is quire rare nowadays I would say. The version here sould be the maximum compatible profile so a.jre.javase installed allow installing bundles requiring this max profile. Change-Id: I96dfb0c900441c1bf9eccc8994a7425f456ccff7 Signed-off-by: Alexander Kurtakov <>
2018-01-22Revert "Revert "Bug 528387 - Dedicated xml elements for genericI20180122-2000Alexander Kurtakov27-755/+1315
requirements"" This reverts commit 0e3caa9359428dcb20c1dc3a2c580fff64777d3d. Change-Id: Ifafe2feedb963b90f54a19b2e08a49d3b18d475a Signed-off-by: Alexander Kurtakov <>
2018-01-22Revert "Bug 528387 - Dedicated xml elements for generic requirements"Thomas Watson27-1315/+755
This reverts commit a7a99e1fa49938a8f62d44d5c443d38981afeace.
2018-01-19Bug 497094 - If a bundle has no symbolic name a NullPointerException canI20180122-0800I20180121-2000I20180121-0800I20180120-1500I20180120-0800I20180119-2000Thomas Watson1-1/+1
happen in ConfigApplier.refreshPackages Change-Id: I39271ba32f2d10b71cb4a3cc24c0554c41e3173d Signed-off-by: Thomas Watson <>

Back to the top