-
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.
Merge pull request #2226 from kalaiyarasiganeshalingam/master
Add config resolver
- Loading branch information
Showing
8 changed files
with
222 additions
and
53 deletions.
There are no files selected for viewing
57 changes: 57 additions & 0 deletions
57
modules/commons/src/main/java/org/apache/synapse/commons/property/PropertyHolder.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,57 @@ | ||
/* | ||
* 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 Holder is the class used to store the properties in the map | ||
*/ | ||
public class PropertyHolder { | ||
|
||
private ConcurrentHashMap<String, String> properties; | ||
|
||
private static class PropertyLoaderHelper { | ||
private static final PropertyHolder INSTANCE = new PropertyHolder(); | ||
} | ||
|
||
private PropertyHolder() {} | ||
|
||
public static PropertyHolder getInstance() { | ||
return PropertyLoaderHelper.INSTANCE; | ||
} | ||
|
||
public void setProperty(String key, String value) { | ||
getProperties().put(key, value); | ||
} | ||
|
||
public String getPropertyValue(String key) { | ||
return getProperties().get(key); | ||
} | ||
|
||
public Boolean hasKey(String key) { | ||
return getProperties().containsKey(key); | ||
} | ||
|
||
public ConcurrentHashMap<String, String> getProperties() { | ||
if (properties == null) { | ||
this.properties = new ConcurrentHashMap<>(); | ||
} | ||
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.PropertyHolder; | ||
|
||
/** | ||
* 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 = PropertyHolder.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
68 changes: 68 additions & 0 deletions
68
...tp/src/main/java/org/apache/synapse/transport/nhttp/config/SslSenderTrustStoreHolder.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,68 @@ | ||
/* | ||
* 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.transport.nhttp.config; | ||
|
||
/** | ||
* The SSL Sender TrustStore Holder class to store the client trust store's configurable details. | ||
*/ | ||
public class SslSenderTrustStoreHolder { | ||
|
||
private static volatile SslSenderTrustStoreHolder instance; | ||
|
||
private SslSenderTrustStoreHolder() {} | ||
|
||
private String location; | ||
private String password; | ||
private String type; | ||
|
||
public static SslSenderTrustStoreHolder getInstance() { | ||
|
||
if (instance == null) { | ||
synchronized (TrustStoreHolder.class) { | ||
if (instance == null) { | ||
instance = new SslSenderTrustStoreHolder(); | ||
} | ||
} | ||
} | ||
return instance; | ||
} | ||
|
||
public void setLocation(String location) { | ||
this.location = location; | ||
} | ||
|
||
public String getLocation() { | ||
return this.location; | ||
} | ||
|
||
public void setPassword(String password) { | ||
this.password = password; | ||
} | ||
|
||
public String getPassword() { | ||
return this.password; | ||
} | ||
|
||
public void setType(String type) { | ||
this.type = type; | ||
} | ||
|
||
public String getType() { | ||
return this.type; | ||
} | ||
} |