@@ -528,7 +528,7 @@ public Result doResolve(Repository repository,
528528 Collection <String > rootPlatforms ) {
529529
530530 if (isBeta ) {
531- if (hasVersionlessFeatures (repository , rootFeatures )){
531+ if (hasVersionlessFeatures (repository , rootFeatures )) {
532532 Collection <String > serverPlatforms = collectPlatformCompatibilityFeatures (repository , rootPlatforms );
533533 if (serverPlatforms != null ) {
534534 rootPlatforms = serverPlatforms ;
@@ -557,7 +557,7 @@ public Result doResolve(Repository repository,
557557
558558 //add versionless after normal resolution for packaging
559559 List <String > filteredVersionless = new ArrayList <>();
560- if (allowedMultipleVersions != null ){
560+ if (allowedMultipleVersions != null ) {
561561 filteredVersionless = filterVersionless (rootFeaturesList , selectionContext );
562562 }
563563
@@ -586,19 +586,22 @@ public Result doResolve(Repository repository,
586586 }
587587 resolved = doResolveFeatures (rootFeaturesList , preResolved , selectionContext );
588588 } while (!!!(autoFeaturesToInstall = processAutoFeatures (kernelFeatures , resolved , seenAutoFeatures , selectionContext )).isEmpty ());
589-
590- if (allowedMultipleVersions != null && !filteredVersionless .isEmpty ()){
589+
590+ if (allowedMultipleVersions != null && !filteredVersionless .isEmpty ()) {
591591 addBackVersionless (filteredVersionless , selectionContext );
592592 }
593593
594594 // Finally return the selected result
595595 return selectionContext .getResult ();
596596 }
597597
598- private boolean hasVersionlessFeatures (Repository repo , Collection <String > featureList ){
599- for (String s : featureList ){
598+ private boolean hasVersionlessFeatures (Repository repo , Collection <String > featureList ) {
599+ for (String s : featureList ) {
600600 ProvisioningFeatureDefinition feature = repo .getFeature (s );
601- if (feature .getSymbolicName ().startsWith ("io.openliberty.versionless." )){
601+ if (feature == null )
602+ //Can't find the feature of that name - just skip for now....
603+ continue ;
604+ if (feature .getSymbolicName ().startsWith ("io.openliberty.versionless." )) {
602605 return true ;
603606 }
604607 // after apis are implemented
@@ -637,12 +640,12 @@ private List<String> checkRootsAreAccessibleAndSetFullName(List<String> rootFeat
637640 return rootFeatures ;
638641 }
639642
640- private List <String > filterVersionless (Collection <String > rootFeatures , SelectionContext selectionContext ){
643+ private List <String > filterVersionless (Collection <String > rootFeatures , SelectionContext selectionContext ) {
641644 List <String > versionless = new ArrayList <String >();
642645
643- for (String feature : rootFeatures ){
646+ for (String feature : rootFeatures ) {
644647 ProvisioningFeatureDefinition featureDef = selectionContext .getRepository ().getFeature (feature );
645- if (featureDef .getSymbolicName ().startsWith ("io.openliberty.versionless" )){
648+ if (featureDef .getSymbolicName ().startsWith ("io.openliberty.versionless" )) {
646649 versionless .add (feature );
647650 }
648651 }
@@ -652,57 +655,57 @@ private List<String> filterVersionless(Collection<String> rootFeatures, Selectio
652655 return versionless ;
653656 }
654657
655- private void addBackVersionless (List <String > versionlessFeatures , SelectionContext selectionContext ){
658+ private void addBackVersionless (List <String > versionlessFeatures , SelectionContext selectionContext ) {
656659 FeatureResolverResultImpl result = selectionContext .getResult ();
657660 Set <String > addingFeatures = new HashSet <>();
658661
659662 //loop through all the versionless features we filtered out earlier
660- for (String versionlessFeature : versionlessFeatures ){
663+ for (String versionlessFeature : versionlessFeatures ) {
661664 ProvisioningFeatureDefinition versionlessDef = selectionContext .getRepository ().getFeature (versionlessFeature );
662665 Collection <FeatureResource > versionlessDeps = versionlessDef .getConstituents (SubsystemContentType .FEATURE_TYPE );
663666 List <String > features = new ArrayList <>();
664667 for (FeatureResource privateVersionless : versionlessDeps ) { //versionlessDeps.size will always be 1, the private versionless feature
665668 String [] nav = parseNameAndVersion (privateVersionless .getSymbolicName ());
666669 features .add (nav [0 ] + "-" + nav [1 ]);
667670
668- if (privateVersionless .getTolerates () != null ){
669- for (String version : privateVersionless .getTolerates ()) {
671+ if (privateVersionless .getTolerates () != null ) {
672+ for (String version : privateVersionless .getTolerates ()) {
670673 features .add (nav [0 ] + "-" + version );
671674 }
672675 }
673676 }
674677 // loops through the private features related to the versionless feature
675- for (String feature : features ){
678+ for (String feature : features ) {
676679 ProvisioningFeatureDefinition featureDef = selectionContext .getRepository ().getFeature (feature );
677- if (featureDef != null ){
680+ if (featureDef != null ) {
678681 boolean addFeature = false ;
679682 FeatureResource compatibleFeature = null ;
680683 Collection <FeatureResource > featureDeps = featureDef .getConstituents (SubsystemContentType .FEATURE_TYPE );
681684 for (FeatureResource featureDep : featureDeps ) { // could be multiple
682- if (!!!featureDep .getSymbolicName ().contains ("noShip" )){
685+ if (!!!featureDep .getSymbolicName ().contains ("noShip" )) {
683686 ProvisioningFeatureDefinition versionedFeature = selectionContext .getRepository ().getFeature (featureDep .getSymbolicName ());
684- if (versionedFeature == null ){
687+ if (versionedFeature == null ) {
685688 continue ;
686689 }
687- if (featureDep .getSymbolicName ().startsWith ("com.ibm.websphere.appserver.eeCompatible" )
688- || featureDep .getSymbolicName ().startsWith ("io.openliberty.internal.mpVersion" )){
689-
690+ if (featureDep .getSymbolicName ().startsWith ("com.ibm.websphere.appserver.eeCompatible" )
691+ || featureDep .getSymbolicName ().startsWith ("io.openliberty.internal.mpVersion" )) {
692+
690693 compatibleFeature = featureDep ;
691694 }
692695 // if we resolved the public versioned feature, add the private versionless linking feature
693- if (versionedFeature .getIbmShortName () != null && result ._resolved .contains (versionedFeature .getIbmShortName ())){
696+ if (versionedFeature .getIbmShortName () != null && result ._resolved .contains (versionedFeature .getIbmShortName ())) {
694697 addFeature = true ;
695698 }
696699 }
697700 }
698- if (addFeature ){
701+ if (addFeature ) {
699702 addingFeatures .add (feature );
700- if (compatibleFeature != null ){
703+ if (compatibleFeature != null ) {
701704 String [] nav = parseNameAndVersion (compatibleFeature .getSymbolicName ());
702705 addingFeatures .add (nav [0 ] + "-" + nav [1 ]);
703706
704- if (compatibleFeature .getTolerates () != null ){
705- for (String version : compatibleFeature .getTolerates ()) {
707+ if (compatibleFeature .getTolerates () != null ) {
708+ for (String version : compatibleFeature .getTolerates ()) {
706709 addingFeatures .add (nav [0 ] + "-" + version );
707710 }
708711 }
@@ -717,7 +720,7 @@ private void addBackVersionless(List<String> versionlessFeatures, SelectionConte
717720 //for the environment variable
718721 addingFeatures .add (EE_COMPATIBLE_FEATURE_NAME );
719722 addingFeatures .add (MP_COMPATIBLE_FEATURE_NAME );
720-
723+
721724 result ._resolved .addAll (addingFeatures );
722725 }
723726
@@ -802,7 +805,7 @@ Set<String> processCurrentPermutation(Collection<String> rootFeatures, Set<Strin
802805 (numBlocked != selectionContext .getBlockedCount ()) ||
803806 selectionContext .hasTriedVersionlessResolution ());
804807
805- if (selectionContext .hasPostponedVersionless ()){
808+ if (selectionContext .hasPostponedVersionless ()) {
806809 selectionContext .addVersionlessConflicts ();
807810 }
808811
@@ -1369,7 +1372,7 @@ boolean hasPostponedVersionless() {
13691372 }
13701373
13711374 void addVersionlessConflicts () {
1372- for (String s : _current ._postponedVersionless .keySet ()){
1375+ for (String s : _current ._postponedVersionless .keySet ()) {
13731376 _current ._result .addUnresolvedVersionless (_current ._postponedVersionless .get (s ).getChains ().get (0 ).getChain ().get (0 ));
13741377 }
13751378 }
0 commit comments