blob: 58a9268ecfafca80b5f1b4fb81572afdde425c92 [file] [log] [blame]
/*
* 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.karaf.admin.internal;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
import org.apache.karaf.admin.Instance;
import org.apache.karaf.admin.InstanceSettings;
public class AdminServiceImplTest extends TestCase {
public void testHandleFeatures() throws Exception {
AdminServiceImpl as = new AdminServiceImpl();
File f = File.createTempFile(getName(), ".test");
try {
Properties p = new Properties();
p.put("featuresBoot", "abc,def ");
p.put("featuresRepositories", "somescheme://xyz");
OutputStream os = new FileOutputStream(f);
try {
p.store(os, "Test comment");
} finally {
os.close();
}
InstanceSettings s = new InstanceSettings(8122, 1122, 44444, null, null, null, Arrays.asList("test"));
as.handleFeatures(f, s);
Properties p2 = new Properties();
InputStream is = new FileInputStream(f);
try {
p2.load(is);
} finally {
is.close();
}
assertEquals(2, p2.size());
assertEquals("abc,def,test", p2.get("featuresBoot"));
assertEquals("somescheme://xyz", p2.get("featuresRepositories"));
} finally {
f.delete();
}
}
/**
* Ensure the admin:create generates all the required configuration files
* //TODO: fix this test so it can run in an IDE
*/
public void testConfigurationFiles() throws Exception {
AdminServiceImpl service = new AdminServiceImpl();
service.setStorageLocation(new File("target/instances/" + System.currentTimeMillis()));
InstanceSettings settings = new InstanceSettings(8122, 1122, 44444, getName(), null, null, null);
Instance instance = service.createInstance(getName(), settings);
assertFileExists(instance.getLocation(), "etc/config.properties");
assertFileExists(instance.getLocation(), "etc/users.properties");
assertFileExists(instance.getLocation(), "etc/startup.properties");
assertFileExists(instance.getLocation(), "etc/java.util.logging.properties");
assertFileExists(instance.getLocation(), "etc/org.apache.karaf.features.cfg");
assertFileExists(instance.getLocation(), "etc/org.apache.felix.fileinstall-deploy.cfg");
assertFileExists(instance.getLocation(), "etc/org.apache.karaf.log.cfg");
assertFileExists(instance.getLocation(), "etc/org.apache.karaf.management.cfg");
assertFileExists(instance.getLocation(), "etc/org.ops4j.pax.logging.cfg");
assertFileExists(instance.getLocation(), "etc/org.ops4j.pax.url.mvn.cfg");
}
/**
* <p>
* Test the renaming of an existing instance.
* </p>
*/
public void testRenameInstance() throws Exception {
AdminServiceImpl service = new AdminServiceImpl();
service.setStorageLocation(new File("target/instances/" + System.currentTimeMillis()));
InstanceSettings settings = new InstanceSettings(8122, 1122, 44444, getName(), null, null, null);
Instance instance = service.createInstance(getName(), settings);
service.renameInstance(getName(), getName() + "b");
assertNotNull(service.getInstance(getName() + "b"));
}
private void assertFileExists(String path, String name) throws IOException {
File file = new File(path, name);
assertTrue("Expected " + file.getCanonicalPath() + " to exist",
file.exists());
}
}