-
Notifications
You must be signed in to change notification settings - Fork 441
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
15a5b06
commit 0b098f5
Showing
9 changed files
with
269 additions
and
139 deletions.
There are no files selected for viewing
71 changes: 71 additions & 0 deletions
71
modules/commons/src/main/java/org/apache/synapse/commons/property/PropertyLoader.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/* | ||
* Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). | ||
* | ||
* WSO2 LLC. 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.synapse.commons.property; | ||
|
||
import java.util.concurrent.ConcurrentHashMap; | ||
|
||
/** | ||
* Property Loader is the class used to store the properties in the map | ||
*/ | ||
public class PropertyLoader { | ||
|
||
private ConcurrentHashMap<String, String> properties; | ||
|
||
private static class PropertyLoaderHelper { | ||
private static final PropertyLoader INSTANCE = new PropertyLoader(); | ||
} | ||
|
||
private PropertyLoader() {} | ||
|
||
public static PropertyLoader getInstance() { | ||
return PropertyLoaderHelper.INSTANCE; | ||
} | ||
|
||
public void setProperty(String key, String value) { | ||
if (properties == null) { | ||
this.properties = createPropertyInstance(); | ||
} | ||
this.properties.put(key, value); | ||
} | ||
|
||
private ConcurrentHashMap<String, String> createPropertyInstance() { | ||
if (properties == null) { | ||
this.properties = new ConcurrentHashMap<>(); | ||
} | ||
return this.properties; | ||
} | ||
|
||
|
||
public String getPropertyValue(String key) { | ||
if (properties == null) { | ||
this.properties = new ConcurrentHashMap<>(); | ||
} | ||
return this.properties.get(key); | ||
} | ||
|
||
public Boolean hasKey(String key) { | ||
if (properties == null) { | ||
this.properties = new ConcurrentHashMap<>(); | ||
} | ||
return properties.containsKey(key); | ||
} | ||
|
||
public ConcurrentHashMap<String, String> getProperties() { | ||
return this.properties; | ||
} | ||
} |
49 changes: 49 additions & 0 deletions
49
modules/commons/src/main/java/org/apache/synapse/commons/resolvers/ConfigResolver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* | ||
* Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). | ||
* | ||
* WSO2 LLC. 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.synapse.commons.resolvers; | ||
|
||
import org.apache.commons.logging.Log; | ||
import org.apache.commons.logging.LogFactory; | ||
import org.apache.synapse.commons.property.PropertyLoader; | ||
|
||
/** | ||
* Config Resolver can be used to resolve configurable property variables in the synapse config. | ||
*/ | ||
public class ConfigResolver implements Resolver { | ||
|
||
private static final Log LOG = LogFactory.getLog(FilePropertyResolver.class); | ||
|
||
private String input; | ||
|
||
@Override | ||
public void setVariable(String input) { | ||
this.input = input; | ||
} | ||
|
||
@Override | ||
public String resolve() { | ||
String propertyValue = PropertyLoader.getInstance().getPropertyValue(this.input); | ||
if (propertyValue == null) { | ||
throw new ResolverException("Parameter key: " + input + " could not be found"); | ||
} | ||
if (LOG.isDebugEnabled()) { | ||
LOG.debug("Resolving parameter key: "+ input + " value: " + propertyValue); | ||
} | ||
return propertyValue; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.