SLING-11718 : Migrate to Jakarta JSON API
diff --git a/pom.xml b/pom.xml
index 3ed4bed..e1454f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
     </parent>
 
     <artifactId>org.apache.sling.feature.extension.apiregions</artifactId>
-    <version>1.6.5-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>Apache Sling Feature Model - API Regions Extension</name>
 
     <scm>
@@ -49,6 +49,12 @@
     </build>
     <dependencies>
         <dependency>
+            <groupId>jakarta.json</groupId>
+            <artifactId>jakarta.json-api</artifactId>
+            <version>2.0.2</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
@@ -59,33 +65,33 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.util.converter</artifactId>
+            <version>1.0.9</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.cm.json</artifactId>
-            <version>1.0.8</version>
+            <version>2.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.2.30</version>
+            <version>2.0.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.analyser</artifactId>
-            <version>1.6.8</version>
+            <version>2.0.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.launcher</artifactId>
-            <version>1.1.22</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-json_1.1_spec</artifactId>
-            <version>1.2</version>
+            <version>1.2.0</version>
             <scope>provided</scope>
         </dependency>
 
@@ -98,13 +104,14 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>2.23.4</version>
+            <version>4.9.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.johnzon</groupId>
             <artifactId>johnzon-core</artifactId>
-            <version>1.2.14</version>
+            <classifier>jakarta</classifier>
+            <version>1.2.19</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java b/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
index 6b4c18b..17b0d59 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
@@ -22,7 +22,7 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import javax.json.JsonArray;
+import jakarta.json.JsonArray;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandler.java b/src/main/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandler.java
index 37bd902..41441dc 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandler.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandler.java
@@ -103,8 +103,6 @@
                 }
                 targetApi.getFrameworkPropertyDescriptions().put(entry.getKey(), entry.getValue());
             }
-            targetApi.getInternalConfigurations().addAll(sourceApi.getInternalConfigurations());
-            targetApi.getInternalFactoryConfigurations().addAll(sourceApi.getInternalFactoryConfigurations());
             targetApi.getInternalFrameworkProperties().addAll(sourceApi.getInternalFrameworkProperties());
 
             // update cache
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
index 518a6a7..dafb916 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
@@ -21,12 +21,12 @@
 import java.util.Map;
 import java.util.Objects;
 
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
 
 import org.apache.sling.feature.ArtifactId;
 
@@ -53,12 +53,8 @@
 
     private static final String TOGGLE_KEY = "toggle";
 
-    private static final String PREVIOUS_KEY = "previous";
-
     private static final String PREVIOUS_ARTIFACT_ID_KEY = "previous-artifact-id";
 
-    private static final String PREVIOUS_PACKAGE_VERSION_KEY = "previous-package-version";
-
     private final String name;
 
     private String toggle;
@@ -66,13 +62,6 @@
     /** If the package is behind a toggle, this is the previous artifact containing the package not behind a toggle */
     private ArtifactId previousArtifactId;
 
-    /**
-     * If the package is behind a toggle, this is the previous version of the package not behind a toggle
-     * @deprecated
-     */
-    @Deprecated
-    private String previousPackageVersion;
-
     private final Map<String, String> properties = new HashMap<>();
 
     private final Deprecation deprecation = new Deprecation();
@@ -117,28 +106,6 @@
     }
 
     /**
-     * Get the previous version of this package
-     * @return The previous version of this package or {@code null}
-     * @since 1.2.0
-     * @deprecated Use {@link #getPreviousArtifactId()}
-     */
-    @Deprecated
-    public String getPreviousPackageVersion() {
-        return this.previousPackageVersion;
-    }
-
-    /**
-     * Set the previous version of this package
-     * @param version The previous version of this package
-     * @since 1.2.0
-     * @deprecated Use {@link #getPreviousArtifactId()}
-     */
-    @Deprecated
-    public void setPreviousPackageVersion(final String version) {
-        this.previousPackageVersion = version;
-    }
-
-    /**
      * Get the previous artifact id containing the previous version
      *
      * @return The previous artifact id or {@code null}
@@ -159,28 +126,6 @@
     }
 
     /**
-     * Get the previous version of this api
-     *
-     * @return The previous version or {@code null}
-     * @deprecated Use {@link #getPreviousArtifactId()}
-     */
-    @Deprecated
-    public ArtifactId getPrevious() {
-        return this.getPreviousArtifactId();
-    }
-
-    /**
-     * Set the previous version
-     *
-     * @param previous Previous version
-     * @deprecated Use {@link #setPreviousArtifactId(ArtifactId)}
-     */
-    @Deprecated
-    public void setPrevious(final ArtifactId previous) {
-        this.setPreviousArtifactId(previous);
-    }
-
-    /**
      * Get additional properties
      *
      * @return Modifiable map of properties
@@ -331,7 +276,6 @@
     JsonValue toJSONValue() {
         final JsonValue depValue = this.deprecationToJSON();
         if (this.getToggle() == null
-            && this.getPreviousPackageVersion() == null
             && this.getPreviousArtifactId() == null
             && this.getProperties().isEmpty()
             && depValue == null ) {
@@ -342,9 +286,6 @@
         if (this.getToggle() != null) {
             expBuilder.add(TOGGLE_KEY, this.getToggle());
         }
-        if (this.getPreviousPackageVersion() != null) {
-            expBuilder.add(PREVIOUS_PACKAGE_VERSION_KEY, this.getPreviousPackageVersion());
-        }
         if (this.getPreviousArtifactId() != null) {
             expBuilder.add(PREVIOUS_ARTIFACT_ID_KEY, this.getPreviousArtifactId().toMvnId());
         }
@@ -387,15 +328,6 @@
                 } else if (TOGGLE_KEY.equals(key)) {
                     export.setToggle(expObj.getString(key));
 
-                } else if (PREVIOUS_PACKAGE_VERSION_KEY.equals(key)) {
-                    export.setPreviousPackageVersion(expObj.getString(key));
-                } else if (PREVIOUS_KEY.equals(key)) {
-                    if ( setPreviousArtifact ) {
-                        throw new IOException("Export " + export.getName() + " is defining previous artifact id twice in region "
-                                + region.getName());
-                    }
-                    export.setPreviousArtifactId(ArtifactId.parse(expObj.getString(key)));
-                    setPreviousArtifact = true;
                 } else if (PREVIOUS_ARTIFACT_ID_KEY.equals(key)) {
                     if ( setPreviousArtifact ) {
                         throw new IOException("Export " + export.getName() + " is defining previous artifact id twice in region "
@@ -426,13 +358,13 @@
 
     @Override
     public String toString() {
-        return "ApiExport [name=" + name + ", toggle=" + toggle + ", previousPackageVersion=" + previousPackageVersion
+        return "ApiExport [name=" + name + ", toggle=" + toggle
                 + ", previousArtifactId=" + previousArtifactId + ", properties=" + properties + "]";
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(deprecation, name, previousPackageVersion, previousArtifactId, properties, toggle);
+        return Objects.hash(deprecation, name, previousArtifactId, properties, toggle);
     }
 
     @Override
@@ -449,7 +381,7 @@
         ApiExport other = (ApiExport) obj;
         return Objects.equals(deprecation, other.deprecation) && Objects.equals(name, other.name)
                 && Objects.equals(previousArtifactId, other.previousArtifactId)
-                && Objects.equals(previousPackageVersion, other.previousPackageVersion) && Objects.equals(properties, other.properties)
+                && Objects.equals(properties, other.properties)
                 && Objects.equals(toggle, other.toggle);
     }
 }
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
index 618a4bb..34a9d8d 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
@@ -29,17 +29,17 @@
 import java.util.Set;
 import java.util.stream.Stream;
 
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
-import javax.json.JsonWriter;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
+import jakarta.json.JsonWriter;
 
 import org.apache.sling.feature.Artifact;
 import org.apache.sling.feature.ArtifactId;
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/JDKDeprecationExtension.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/JDKDeprecationExtension.java
index 316b6d5..3805833 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/JDKDeprecationExtension.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/JDKDeprecationExtension.java
@@ -20,13 +20,13 @@
 import java.util.Map;
 import java.util.Objects;
 
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonString;
-import javax.json.JsonStructure;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonString;
+import jakarta.json.JsonStructure;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionType;
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRules.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRules.java
index bdea9f2..e1a8028 100755
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRules.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRules.java
@@ -20,12 +20,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRule.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRule.java
index 1e4de5a..72d12ac 100755
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRule.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRule.java
@@ -18,9 +18,9 @@
 
 import java.io.IOException;
 
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.extension.apiregions.api.config.AttributeableEntity;
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/package-info.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/package-info.java
index 3b169bc..03ef7f2 100755
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/package-info.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@org.osgi.annotation.versioning.Version("1.0.0")
+@org.osgi.annotation.versioning.Version("2.0.0")
 package org.apache.sling.feature.extension.apiregions.api.artifacts;
 
 
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntity.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntity.java
index c3908f9..69decec 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntity.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntity.java
@@ -20,17 +20,17 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
 
-import org.apache.felix.cm.json.Configurations;
+import org.apache.felix.cm.json.io.Configurations;
 
 /**
  * Abstract class used by all entities which allow additional attributes to be stored.
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntity.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntity.java
index 3535246..7c5da52 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntity.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntity.java
@@ -21,14 +21,14 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
-import org.apache.felix.cm.json.Configurations;
+import org.apache.felix.cm.json.io.Configurations;
 
 /** 
  * A configurable entity has properties
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAddition.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAddition.java
index a6b849c..f14f7c7 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAddition.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAddition.java
@@ -19,13 +19,13 @@
 import java.io.IOException;
 import java.util.Map;
 
-import javax.json.Json;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
-import org.apache.felix.cm.json.Configurations;
+import org.apache.felix.cm.json.io.Configurations;
 
 /**
  * A description of an OSGi configuration addition
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApi.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApi.java
index 6626287..5b6635b 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApi.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApi.java
@@ -22,12 +22,12 @@
 import java.util.Set;
 import java.util.TreeSet;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
@@ -124,12 +124,6 @@
     /** The map of framework properties */
     private final Map<String, FrameworkPropertyDescription> frameworkProperties = new LinkedHashMap<>();
 
-    /** The set of internal configuration names */
-    private final Set<String> internalConfigurations = new TreeSet<>();
-
-    /** The set of internal factory configuration names */
-    private final Set<String> internalFactories = new TreeSet<>();
-
     /** The set of internal framework property names */
     private final Set<String> internalFrameworkProperties = new TreeSet<>();
 
@@ -164,8 +158,6 @@
         this.configurations.clear();
         this.factories.clear();
         this.frameworkProperties.clear();
-        this.internalConfigurations.clear();
-        this.internalFactories.clear();
         this.internalFrameworkProperties.clear();
         this.setRegion(null);
         this.getFeatureToRegionCache().clear();
@@ -220,14 +212,16 @@
             val = this.getAttributes().remove(InternalConstants.KEY_INTERNAL_CONFIGURATIONS);
             if ( val != null ) {
                 for(final JsonValue innerVal : val.asJsonArray()) {
-                    this.getInternalConfigurations().add(getString(innerVal));
+                    final ConfigurationDescription cfg = new ConfigurationDescription();
+                    this.getConfigurationDescriptions().put(getString(innerVal), cfg);
                 }
             }
 
             val = this.getAttributes().remove(InternalConstants.KEY_INTERNAL_FACTORIES);
             if ( val != null ) {
                 for(final JsonValue innerVal : val.asJsonArray()) {
-                    this.getInternalFactoryConfigurations().add(getString(innerVal));
+                    final FactoryConfigurationDescription cfg = new FactoryConfigurationDescription();
+                    this.getFactoryConfigurationDescriptions().put(getString(innerVal), cfg);
                 }
             }
 
@@ -297,26 +291,6 @@
 		return frameworkProperties;
 	}
 
-	/**
-     * Get the internal configuration pids
-	 * @return Mutable set of internal configuration pids
-     * @deprecated Please use empty configuration descriptions via {@link #getConfigurationDescriptions()}
-	 */
-	@Deprecated
-    public Set<String> getInternalConfigurations() {
-		return internalConfigurations;
-	}
-
-	/**
-     * Get the internal factory pids
-	 * @return Mutable set of internal factory configuration pids
-     * @deprecated Please use empty factory configuration descriptions via {@link #getFactoryConfigurationDescriptions()}
-	 */
-	@Deprecated
-    public Set<String> getInternalFactoryConfigurations() {
-		return internalFactories;
-	}
-
     /**
      * Check if the configuration is an internal configuration
      * @param pid The pid
@@ -324,12 +298,10 @@
      * @since 1.7.0
      */
     public boolean isInternalConfiguration(final String pid) {
-        boolean result = this.internalConfigurations.contains(pid);
-        if ( !result ) {
-            final ConfigurationDescription desc = this.configurations.get(pid);
-            if ( desc != null ) {
-                result = desc.getPropertyDescriptions().isEmpty();
-            }
+        boolean result = false;
+        final ConfigurationDescription desc = this.configurations.get(pid);
+        if ( desc != null ) {
+            result = desc.getPropertyDescriptions().isEmpty();
         }
         return result;
     }
@@ -342,14 +314,12 @@
      * @since 1.7.0
      */
     public boolean isInternalFactoryConfiguration(final String factoryPid, final String name) {
-        boolean result = this.internalFactories.contains(factoryPid);
-        if ( !result ) {
-            final FactoryConfigurationDescription desc = this.factories.get(factoryPid);
-            if ( desc != null ) {
-                result = desc.getPropertyDescriptions().isEmpty();
-                if ( !result && name != null ) {
-                    result = desc.getInternalNames().contains(name);
-                }
+        boolean result = false;
+        final FactoryConfigurationDescription desc = this.factories.get(factoryPid);
+        if ( desc != null ) {
+            result = desc.getPropertyDescriptions().isEmpty();
+            if ( !result && name != null ) {
+                result = desc.getInternalNames().contains(name);
             }
         }
         return result;
@@ -452,20 +422,6 @@
             }
             objBuilder.add(InternalConstants.KEY_FWK_PROPERTIES, propBuilder);
         }
-        if ( !this.getInternalConfigurations().isEmpty() ) {
-            final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
-            for(final String n : this.getInternalConfigurations()) {
-                arrayBuilder.add(n);
-            }
-			objBuilder.add(InternalConstants.KEY_INTERNAL_CONFIGURATIONS, arrayBuilder);
-		}
-		if ( !this.getInternalFactoryConfigurations().isEmpty() ) {
-            final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
-            for(final String n : this.getInternalFactoryConfigurations()) {
-                arrayBuilder.add(n);
-            }
-			objBuilder.add(InternalConstants.KEY_INTERNAL_FACTORIES, arrayBuilder);
-		}
 		if ( !this.getInternalFrameworkProperties().isEmpty() ) {
             final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
             for(final String n : this.getInternalFrameworkProperties()) {
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntity.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntity.java
index a5c6496..4ae7298 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntity.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntity.java
@@ -18,9 +18,9 @@
 
 import java.io.IOException;
 
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
 
 /**
  * Abstract class for all describable entities, having an optional title,
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescription.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescription.java
index 4f6ac08..330778a 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescription.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescription.java
@@ -22,12 +22,12 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 /**
  * Description of an OSGi factory configuration
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAddition.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAddition.java
index f240a29..e5af85b 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAddition.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAddition.java
@@ -20,12 +20,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 /**
  * Description of an OSGi factory configuration addition
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Option.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Option.java
index 8470387..0c740b9 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Option.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Option.java
@@ -18,9 +18,9 @@
 
 import java.io.IOException;
 
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
 
 /**
  * Option for a property value
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java
index 6ee4fcf..85605f2 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java
@@ -21,14 +21,14 @@
 import java.util.List;
 import java.util.regex.Pattern;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
-import org.apache.felix.cm.json.Configurations;
+import org.apache.felix.cm.json.io.Configurations;
 
 /**
  * Instances of this class represent a single configuration property
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAddition.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAddition.java
index e65d43c..ca94e14 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAddition.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAddition.java
@@ -20,12 +20,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 /**
  * Instances of this class represent an addition to a configuration property
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Range.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Range.java
index 2e90a0d..6b031e4 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Range.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/Range.java
@@ -18,11 +18,11 @@
 
 import java.io.IOException;
 
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
 
-import org.apache.felix.cm.json.Configurations;
+import org.apache.felix.cm.json.io.Configurations;
 
 /**
  * A numerical value range
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/package-info.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/package-info.java
index 6c6795d..5e6c39a 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/package-info.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@org.osgi.annotation.versioning.Version("1.8.0")
+@org.osgi.annotation.versioning.Version("2.0.0")
 package org.apache.sling.feature.extension.apiregions.api.config;
 
 
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
index 9d35533..98a3a2c 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
@@ -157,7 +157,7 @@
                             }
                         }                        
 
-                    } else if ( regionInfo.region != Region.INTERNAL && api.getInternalFactoryConfigurations().contains(config.getFactoryPid())) {
+                    } else if ( regionInfo.region != Region.INTERNAL && api.isInternalFactoryConfiguration(config.getFactoryPid(), config.getName())) {
                         final ConfigurationValidationResult cvr = new ConfigurationValidationResult();
                         ConfigurationValidator.setResult(cvr, api.getMode(), desc, "Factory configuration is not " +
                                 "allowed");
@@ -168,7 +168,7 @@
                     if ( desc != null ) {
                         final ConfigurationValidationResult r = configurationValidator.validate(config, desc, regionInfo.region, api.getMode());
                         result.getConfigurationResults().put(config.getPid(), r);
-                    } else if ( regionInfo.region!= Region.INTERNAL && api.getInternalConfigurations().contains(config.getPid())) {
+                    } else if ( regionInfo.region!= Region.INTERNAL && api.isInternalConfiguration(config.getPid())) {
                         final ConfigurationValidationResult cvr = new ConfigurationValidationResult();
                         ConfigurationValidator.setResult(cvr, api.getMode(), desc, "Configuration is not allowed");
                         result.getConfigurationResults().put(config.getPid(), cvr);
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/package-info.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/package-info.java
index 7e983c6..b233775 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/package-info.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@org.osgi.annotation.versioning.Version("1.6.0")
+@org.osgi.annotation.versioning.Version("2.0.0")
 package org.apache.sling.feature.extension.apiregions.api.config.validation;
 
 
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
index 63f8d29..3c39439 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@org.osgi.annotation.versioning.Version("1.4.1")
+@org.osgi.annotation.versioning.Version("2.0.0")
 package org.apache.sling.feature.extension.apiregions.api;
 
 
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/launcher/RegionLauncherExtension.java b/src/main/java/org/apache/sling/feature/extension/apiregions/launcher/RegionLauncherExtension.java
index 7a180a7..8e4f937 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/launcher/RegionLauncherExtension.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/launcher/RegionLauncherExtension.java
@@ -17,7 +17,7 @@
 package org.apache.sling.feature.extension.apiregions.launcher;
 
 import java.io.File;
-import javax.json.JsonArray;
+import jakarta.json.JsonArray;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.extension.apiregions.api.ApiRegions;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
index f31b965..62766ea 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
@@ -26,9 +26,9 @@
 import java.util.Comparator;
 import java.util.List;
 
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonReader;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonReader;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandlerTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandlerTest.java
index 3d15778..62c3631 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/ConfigurationApiMergeHandlerTest.java
@@ -24,9 +24,6 @@
 
 import java.util.Arrays;
 
-import javax.json.Json;
-import javax.json.JsonObject;
-
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Feature;
 import org.apache.sling.feature.Prototype;
@@ -352,23 +349,15 @@
 
         final Feature featureA = new Feature(ArtifactId.parse("g:a:1"));
         final ConfigurationApi apiA = new ConfigurationApi();
-        apiA.getInternalConfigurations().add("a");
-        apiA.getInternalFactoryConfigurations().add("fa");
         apiA.getInternalFrameworkProperties().add("pa");
 
-        apiA.getInternalConfigurations().add("c");
-        apiA.getInternalFactoryConfigurations().add("fc");
         apiA.getInternalFrameworkProperties().add("pc");
         ConfigurationApi.setConfigurationApi(featureA, apiA);
         
         final Feature featureB = new Feature(ArtifactId.parse("g:b:1"));
         final ConfigurationApi apiB = new ConfigurationApi();
-        apiB.getInternalConfigurations().add("b");
-        apiB.getInternalFactoryConfigurations().add("fb");
         apiB.getInternalFrameworkProperties().add("pb");
 
-        apiB.getInternalConfigurations().add("c");
-        apiB.getInternalFactoryConfigurations().add("fc");
         apiB.getInternalFrameworkProperties().add("pc");
         ConfigurationApi.setConfigurationApi(featureB, apiB);
 
@@ -377,16 +366,6 @@
         ConfigurationApi api = ConfigurationApi.getConfigurationApi(result);
         assertNotNull(api);
 
-        assertEquals(3, api.getInternalConfigurations().size());
-        assertTrue(api.getInternalConfigurations().contains("a"));
-        assertTrue(api.getInternalConfigurations().contains("b"));
-        assertTrue(api.getInternalConfigurations().contains("c"));
-
-        assertEquals(3, api.getInternalFactoryConfigurations().size());
-        assertTrue(api.getInternalFactoryConfigurations().contains("fa"));
-        assertTrue(api.getInternalFactoryConfigurations().contains("fb"));
-        assertTrue(api.getInternalFactoryConfigurations().contains("fc"));
-
         assertEquals(3, api.getInternalFrameworkProperties().size());
         assertTrue(api.getInternalFrameworkProperties().contains("pa"));
         assertTrue(api.getInternalFrameworkProperties().contains("pb"));
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/analyser/AbstractApiRegionsAnalyserTaskTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/analyser/AbstractApiRegionsAnalyserTaskTest.java
index 930a902..029cc88 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/analyser/AbstractApiRegionsAnalyserTaskTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/analyser/AbstractApiRegionsAnalyserTaskTest.java
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 import java.util.jar.Manifest;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonReader;
-import javax.json.stream.JsonParsingException;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonReader;
+import jakarta.json.stream.JsonParsingException;
 
 import org.apache.johnzon.core.JsonReaderImpl.NothingToRead;
 import org.apache.sling.feature.Artifact;
@@ -196,13 +196,6 @@
             // do nothing
             return null;
         }
-
-        @Override
-        public int getBundleStartLevel() {
-            // do nothing
-            return 0;
-        }
-
     }
 
 }
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiExportTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiExportTest.java
index bb8c2fc..49dafc9 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiExportTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiExportTest.java
@@ -22,9 +22,9 @@
 
 import java.io.StringReader;
 
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
 
 import org.junit.Test;
 
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiRegionsTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiRegionsTest.java
index fcc88b5..3e4eb52 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiRegionsTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/ApiRegionsTest.java
@@ -30,9 +30,9 @@
 import java.io.Writer;
 import java.util.Iterator;
 
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonReader;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonReader;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
@@ -200,29 +200,18 @@
         final ApiRegion global = regions.listRegions().get(0);
         assertEquals("global", global.getName());
 
-        assertEquals(3, global.listExports().size());
+        assertEquals(2, global.listExports().size());
 
         final Iterator<ApiExport> iter = global.listExports().iterator();
         final ApiExport exp1 = iter.next();
         assertEquals("org.apache.sling.global", exp1.getName());
         assertEquals("sling_enabled", exp1.getToggle());
-        assertNull(exp1.getPrevious());
         assertNull(exp1.getPreviousArtifactId());
-        assertNull(exp1.getPreviousPackageVersion());
 
         final ApiExport exp2 = iter.next();
         assertEquals("org.apache.felix.global", exp2.getName());
         assertEquals("global_enabled", exp2.getToggle());
-        assertEquals(ArtifactId.parse("org.apache.felix:api:1.1"), exp2.getPrevious());
         assertEquals(ArtifactId.parse("org.apache.felix:api:1.1"), exp2.getPreviousArtifactId());
-        assertNull(exp2.getPreviousPackageVersion());
-
-        final ApiExport exp3 = iter.next();
-        assertEquals("org.apache.felix.global.sub", exp3.getName());
-        assertEquals("global_enabled", exp3.getToggle());
-        assertEquals(ArtifactId.parse("org.apache.felix:api:1.1"), exp3.getPrevious());
-        assertEquals(ArtifactId.parse("org.apache.felix:api:1.1"), exp3.getPreviousArtifactId());
-        assertEquals("1.1", exp3.getPreviousPackageVersion());
 
         // create json and parse
         final ApiRegions regions2 = ApiRegions.parse(regions.toJSONArray());
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRulesTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRulesTest.java
index e6d6e92..75afdbe 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRulesTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/ArtifactRulesTest.java
@@ -23,7 +23,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRuleTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRuleTest.java
index dc4cb3b..e0d2dc0 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRuleTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRuleTest.java
@@ -23,7 +23,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntityTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntityTest.java
index 1679d38..2414fbb 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntityTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/AttributeableEntityTest.java
@@ -24,10 +24,10 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAdditionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAdditionTest.java
index d805e0c..0fa8241 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAdditionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityAdditionTest.java
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityTest.java
index 90115b7..e9d9d91 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurableEntityTest.java
@@ -24,7 +24,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApiTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApiTest.java
index d06584d..9a5a6e8 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApiTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/ConfigurationApiTest.java
@@ -24,7 +24,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
@@ -73,8 +73,6 @@
         entity.getConfigurationDescriptions().put("pid", new ConfigurationDescription());
         entity.getFactoryConfigurationDescriptions().put("factory", new FactoryConfigurationDescription());
         entity.getFrameworkPropertyDescriptions().put("prop", new FrameworkPropertyDescription());
-        entity.getInternalConfigurations().add("ipid");
-        entity.getInternalFactoryConfigurations().add("ifactory");
         entity.getInternalFrameworkProperties().add("iprop");
         entity.setRegion(Region.GLOBAL);
         entity.getFeatureToRegionCache().put(ArtifactId.parse("g:a:1"), Region.GLOBAL);
@@ -86,8 +84,6 @@
         assertTrue(entity.getConfigurationDescriptions().isEmpty());
         assertTrue(entity.getFactoryConfigurationDescriptions().isEmpty());
         assertTrue(entity.getFrameworkPropertyDescriptions().isEmpty());
-        assertTrue(entity.getInternalConfigurations().isEmpty());
-        assertTrue(entity.getInternalFactoryConfigurations().isEmpty());
         assertTrue(entity.getInternalFrameworkProperties().isEmpty());
         assertNull(entity.getRegion());
         assertTrue(entity.getFeatureToRegionCache().isEmpty());
@@ -101,8 +97,6 @@
         ext.setJSON("{ \"a\" : 5, \"configurations\" : { \"pid\": {}}, " +
             "\"factory-configurations\" : { \"factory\" : {}}," +
             "\"framework-properties\" : { \"prop\" : { \"type\" : \"STRING\"}}," +
-            "\"internal-configurations\" : [\"ipid\"],"+
-            "\"internal-factory-configurations\" : [\"ifactory\"],"+
             "\"internal-framework-properties\" : [\"iprop\"],"+
             "\"region\" : \"INTERNAL\","+
             "\"region-cache\" : {\"g:a1:feature:1.0.0\" : \"INTERNAL\", \"g:a2:feature:1.7.3\" : \"GLOBAL\"},"+
@@ -117,8 +111,6 @@
         assertEquals(1, entity.getConfigurationDescriptionAdditions().size());
         assertEquals(1, entity.getFactoryConfigurationDescriptionAdditions().size());
         assertEquals(1, entity.getFrameworkPropertyDescriptions().size());
-        assertEquals(1, entity.getInternalConfigurations().size());
-        assertEquals(1, entity.getInternalFactoryConfigurations().size());
         assertEquals(1, entity.getInternalFrameworkProperties().size());
         assertEquals(2, entity.getFeatureToRegionCache().size());
         assertTrue(entity.getConfigurationDescriptions().containsKey("pid"));
@@ -126,8 +118,6 @@
         assertTrue(entity.getConfigurationDescriptionAdditions().containsKey("pida"));
         assertTrue(entity.getFactoryConfigurationDescriptionAdditions().containsKey("factorya"));
         assertTrue(entity.getFrameworkPropertyDescriptions().containsKey("prop"));
-        assertTrue(entity.getInternalConfigurations().contains("ipid"));
-        assertTrue(entity.getInternalFactoryConfigurations().contains("ifactory"));
         assertTrue(entity.getInternalFrameworkProperties().contains("iprop"));
         assertEquals(Region.INTERNAL, entity.getRegion());
         assertEquals(Region.INTERNAL, entity.getFeatureToRegionCache().get(ArtifactId.parse("g:a1:feature:1.0.0")));
@@ -143,8 +133,6 @@
         entity.getFrameworkPropertyDescriptions().put("prop", new FrameworkPropertyDescription());
         entity.getConfigurationDescriptionAdditions().put("pida", new ConfigurationDescriptionAddition());
         entity.getFactoryConfigurationDescriptionAdditions().put("factorya", new FactoryConfigurationDescriptionAddition());
-        entity.getInternalConfigurations().add("ipid");
-        entity.getInternalFactoryConfigurations().add("ifactory");
         entity.getInternalFrameworkProperties().add("iprop");
         entity.setRegion(Region.INTERNAL);
         entity.getFeatureToRegionCache().put(ArtifactId.parse("g:a1:feature:1.0.0"), Region.INTERNAL);
@@ -154,8 +142,6 @@
         ext.setJSON("{ \"a\" : 5, \"configurations\" : { \"pid\": {}}, " +
             "\"factory-configurations\" : { \"factory\" : {}}," +
             "\"framework-properties\" : { \"prop\" : {}}," +
-            "\"internal-configurations\" : [\"ipid\"],"+
-            "\"internal-factory-configurations\" : [\"ifactory\"],"+
             "\"internal-framework-properties\" : [\"iprop\"],"+
             "\"region\" : \"INTERNAL\","+
             "\"region-cache\" : {\"g:a1:feature:1.0.0\" : \"INTERNAL\", \"g:a2:feature:1.7.3\" : \"GLOBAL\"}," +
@@ -191,11 +177,6 @@
         // a description without properties makes it internal
         desc.getPropertyDescriptions().clear();
         assertTrue(api.isInternalConfiguration(PID));
-
-        // and deprecated variant
-        api.getConfigurationDescriptions().clear();
-        api.getInternalConfigurations().add(PID);
-        assertTrue(api.isInternalConfiguration(PID));
     }
 
     @Test public void testIsInternalFactoryConfigurationNoName() {
@@ -214,11 +195,6 @@
         // a description without properties makes it internal
         desc.getPropertyDescriptions().clear();
         assertTrue(api.isInternalFactoryConfiguration(FACTORYPID, null));
-
-        // and deprecated variant
-        api.getFactoryConfigurationDescriptions().clear();
-        api.getInternalFactoryConfigurations().add(FACTORYPID);
-        assertTrue(api.isInternalFactoryConfiguration(FACTORYPID, null));
     }
 
     @Test public void testIsInternalFactoryConfigurationWithName() {
@@ -243,10 +219,5 @@
         desc.getInternalNames().clear();
         desc.getPropertyDescriptions().clear();
         assertTrue(api.isInternalFactoryConfiguration(FACTORYPID, NAME));
-
-        // and deprecated variant
-        api.getFactoryConfigurationDescriptions().clear();
-        api.getInternalFactoryConfigurations().add(FACTORYPID);
-        assertTrue(api.isInternalFactoryConfiguration(FACTORYPID, NAME));
     }
 }
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntityTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntityTest.java
index 9293a85..c7bb8b1 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntityTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/DescribableEntityTest.java
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAdditionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAdditionTest.java
index 0ecbf41..ec08bb3 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAdditionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionAdditionTest.java
@@ -21,7 +21,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionTest.java
index d396a71..80aa6c2 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/FactoryConfigurationDescriptionTest.java
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/OptionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/OptionTest.java
index 924c2b0..fca0e69 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/OptionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/OptionTest.java
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAdditionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAdditionTest.java
index fae16d7..4700934 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAdditionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionAdditionTest.java
@@ -23,7 +23,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionTest.java
index 086e0a3..e667024 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescriptionTest.java
@@ -27,7 +27,7 @@
 import java.io.IOException;
 import java.util.Arrays;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/RangeTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/RangeTest.java
index b894daf..1358520 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/RangeTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/RangeTest.java
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-import javax.json.Json;
+import jakarta.json.Json;
 
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionState;
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidatorTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidatorTest.java
index 216328e..90ab910 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidatorTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidatorTest.java
@@ -460,8 +460,8 @@
         assertTrue(result.isValid());
 
         // mark configurations as internal
-        api.getInternalConfigurations().add(PID);
-        api.getInternalFactoryConfigurations().add(FACTORY_PID);
+        api.getConfigurationDescriptions().put(PID, new ConfigurationDescription());
+        api.getFactoryConfigurationDescriptions().put(FACTORY_PID, new FactoryConfigurationDescription());
         ConfigurationApi.setConfigurationApi(f1, api);
 
         // global region
diff --git a/src/test/resources/json/apis-toggles.json b/src/test/resources/json/apis-toggles.json
index 4c48926..264ed2c 100644
--- a/src/test/resources/json/apis-toggles.json
+++ b/src/test/resources/json/apis-toggles.json
@@ -9,12 +9,6 @@
         {
             "name" : "org.apache.felix.global",
             "toggle" : "global_enabled",
-            "previous" : "org.apache.felix:api:1.1"
-        },
-        {
-            "name" : "org.apache.felix.global.sub",
-            "toggle" : "global_enabled",
-            "previous-package-version" : "1.1",
             "previous-artifact-id" : "org.apache.felix:api:1.1"
         }
       ]