diff options
Diffstat (limited to 'jetty-deploy/src/main/java/org/eclipse/jetty/deploy/PropertiesConfigurationManager.java')
-rw-r--r-- | jetty-deploy/src/main/java/org/eclipse/jetty/deploy/PropertiesConfigurationManager.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/PropertiesConfigurationManager.java b/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/PropertiesConfigurationManager.java new file mode 100644 index 0000000000..8cb5c344e8 --- /dev/null +++ b/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/PropertiesConfigurationManager.java @@ -0,0 +1,93 @@ +// +// ======================================================================== +// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.deploy; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.eclipse.jetty.util.annotation.ManagedAttribute; +import org.eclipse.jetty.util.annotation.ManagedObject; +import org.eclipse.jetty.util.annotation.ManagedOperation; +import org.eclipse.jetty.util.annotation.Name; +import org.eclipse.jetty.util.resource.Resource; + +/** + * FileConfigurationManager + * + * Supplies properties defined in a file. + */ +@ManagedObject("Configure deployed webapps via properties") +public class PropertiesConfigurationManager implements ConfigurationManager +{ + private String _properties; + private final Map<String,String> _map = new HashMap<String,String>(); + + public PropertiesConfigurationManager(String properties) + { + } + + public PropertiesConfigurationManager() + { + } + + @ManagedAttribute("A file or URL of properties") + public void setFile(String resource) throws MalformedURLException, IOException + { + _properties=resource; + _map.clear(); + loadProperties(_properties); + } + + public String getFile() + { + return _properties; + } + + @ManagedOperation("Set a property") + public void put(@Name("name")String name, @Name("value")String value) + { + _map.put(name,value); + } + + /** + * @see org.eclipse.jetty.deploy.ConfigurationManager#getProperties() + */ + @Override + public Map<String, String> getProperties() + { + return new HashMap<>(_map); + } + + private void loadProperties(String resource) throws FileNotFoundException, IOException + { + Resource file=Resource.newResource(resource); + if (file!=null && file.exists()) + { + Properties properties = new Properties(); + properties.load(file.getInputStream()); + for (Map.Entry<Object, Object> entry : properties.entrySet()) + _map.put(entry.getKey().toString(),String.valueOf(entry.getValue())); + } + } +} |