public void testServerAttributeValidation() throws Exception {
AvailabilityType avail = getAvailability(getServerResource());
assertEquals(avail, AvailabilityType.UP);
Configuration pluginConfig = getServerResource().getPluginConfiguration();
ServerPluginConfiguration serverPluginConfig = new ServerPluginConfiguration(pluginConfig);
// Change the baseDir prop.
File originalBaseDir = serverPluginConfig.getBaseDir();
serverPluginConfig.setBaseDir(new File(System.getProperty("java.io.tmpdir")));
// Restart the server ResourceComponent so it picks up the changes we just made to the plugin config.
InventoryManager inventoryManager = this.pluginContainer.getInventoryManager();
inventoryManager.deactivateResource(getServerResource());
ResourceContainer serverContainer = inventoryManager.getResourceContainer(getServerResource());
InvalidPluginConfigurationException ipce = null;
try {
inventoryManager.activateResource(getServerResource(), serverContainer, true);
} catch (InvalidPluginConfigurationException e) {
ipce = e;
}
// Set the baseDir back to the original value and restart the component before making any assertions, to ensure
// things aren't left in a corrupt state for remaining test methods.
serverPluginConfig.setBaseDir(originalBaseDir);
inventoryManager.activateResource(getServerResource(), serverContainer, true);
Assert.assertNotNull(ipce, "InvalidPluginConfigurationException was not thrown by server component's "
+ "start() method due to invalid baseDir.");