[Sling Feature Model] Move ConfigurationUtil to Karaf module

ConfigurationUtil is only used by the Karaf module, so move it there.
diff --git a/src/main/java/org/apache/sling/feature/karaf/ConfigurationUtil.java b/src/main/java/org/apache/sling/feature/karaf/ConfigurationUtil.java
new file mode 100644
index 0000000..e29e7a9
--- /dev/null
+++ b/src/main/java/org/apache/sling/feature/karaf/ConfigurationUtil.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.feature.karaf;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Map;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
+import java.util.zip.ZipEntry;
+
+import org.apache.sling.feature.Configurations;
+import org.apache.sling.feature.io.json.ConfigurationJSONWriter;
+import org.osgi.framework.Constants;
+
+
+public class ConfigurationUtil {
+
+    public static final String REQUIRE_CONFIGURATOR_CAPABILITY =
+            "osgi.extender;filter:=\"(&(osgi.extender=osgi.configurator)(version>=1.0)(!(version>=2.0)))\"";
+
+    /**
+     * Create a bundle containing the configurations to be processed the
+     * OSGi configurator
+     *
+     * @param os The output stream. The stream is not closed
+     * @param configurations The list of configurations
+     * @param symbolicName The symbolic name for the generated bundle
+     * @param version The version for the generated bundle
+     * @param additionalAttributes Optional additional attributes for the Manifest.
+     * @throws IOException If something goes wrong
+     */
+    public static void createConfiguratorBundle(final OutputStream os,
+            final Configurations configurations,
+            final String symbolicName,
+            final String version,
+            final Map<String, String> additionalAttributes)
+    throws IOException {
+
+        final Manifest mf = new Manifest();
+        mf.getMainAttributes().putValue("Manifest-Version", "1.0");
+        mf.getMainAttributes().putValue(Constants.BUNDLE_MANIFESTVERSION, "2");
+        mf.getMainAttributes().putValue(Constants.BUNDLE_SYMBOLICNAME, symbolicName);
+        mf.getMainAttributes().putValue(Constants.BUNDLE_VERSION, version);
+        mf.getMainAttributes().putValue(Constants.BUNDLE_VENDOR, "The Apache Software Foundation");
+        mf.getMainAttributes().putValue(Constants.REQUIRE_CAPABILITY, REQUIRE_CONFIGURATOR_CAPABILITY);
+
+        if ( additionalAttributes != null ) {
+            for(final Map.Entry<String, String> entry : additionalAttributes.entrySet()) {
+                if ( Constants.REQUIRE_CAPABILITY.equals(entry.getKey())
+                    && !entry.getValue().contains("osgi.extender=osgi.configurator")) {
+                    mf.getMainAttributes().putValue(entry.getKey(), entry.getValue() + "," + REQUIRE_CONFIGURATOR_CAPABILITY);
+                } else {
+                    mf.getMainAttributes().putValue(entry.getKey(), entry.getValue());
+                }
+            }
+        }
+
+        final JarOutputStream jos = new JarOutputStream(os, mf);
+
+        final ZipEntry ze = new ZipEntry("OSGI-INF/configurator/configurations.json");
+        jos.putNextEntry(ze);
+        final Writer w = new OutputStreamWriter(jos, "UTF-8");
+        ConfigurationJSONWriter.write(w, configurations);
+        w.flush();
+        jos.closeEntry();
+
+        jos.flush();
+        jos.finish();
+    }
+}
diff --git a/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java b/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
index d6e426e..990fc0c 100644
--- a/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
+++ b/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
@@ -39,7 +39,6 @@
 import org.apache.sling.feature.Feature;
 import org.apache.sling.feature.io.ArtifactHandler;
 import org.apache.sling.feature.io.ArtifactManager;
-import org.apache.sling.feature.support.ConfigurationUtil;
 import org.apache.sling.feature.support.SlingConstants;