xwm1992 commented on code in PR #937:
URL:
https://github.com/apache/incubator-eventmesh/pull/937#discussion_r916563511
##########
eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/FileWebHookConfigOperation.java:
##########
@@ -48,141 +45,144 @@ public class FileWebHookConfigOperation implements
WebHookConfigOperation {
private static final Logger logger =
LoggerFactory.getLogger(FileWebHookConfigOperation.class);
- private final String webHookFilePath;
-
- private static final String FILE_PROPERTIES_PREFIX =
"eventMesh.webHook.fileMode.";
-
- public FileWebHookConfigOperation(Properties properties) throws
FileNotFoundException {
- String webHookFilePath =
properties.getProperty(FILE_PROPERTIES_PREFIX + "filePath");
- assert webHookFilePath != null;
- File webHookFileDir = new File(webHookFilePath);
- if (!webHookFileDir.isDirectory()) {
- throw new FileNotFoundException("File path " +
webHookFilePath + " is not directory");
- }
- if (!webHookFileDir.exists()) {
- webHookFileDir.mkdirs();
- }
- this.webHookFilePath = webHookFilePath;
- }
-
- @Override
- public Integer insertWebHookConfig(WebHookConfig webHookConfig) {
- if
(!webHookConfig.getCallbackPath().startsWith(WebHookOperationConstant.CALLBACK_PATH_PREFIX))
{
- logger.error("webhookConfig callback path must start
with {}", WebHookOperationConstant.CALLBACK_PATH_PREFIX);
- return 0;
- }
- File manuDir = new File(getWebhookConfigManuDir(webHookConfig));
- if (!manuDir.exists()) {
- manuDir.mkdir();
- }
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
- }
-
- @Override
- public Integer updateWebHookConfig(WebHookConfig webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
- }
-
- @Override
- public Integer deleteWebHookConfig(WebHookConfig webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return webhookConfigFile.delete() ? 1 : 0;
- }
-
- @Override
- public WebHookConfig queryWebHookConfigById(WebHookConfig
webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return null;
- }
- return getWebHookConfigFromFile(webhookConfigFile);
- }
-
- @Override
- public List<WebHookConfig>
queryWebHookConfigByManufacturer(WebHookConfig webHookConfig, Integer pageNum,
- Integer pageSize) {
- String manuDirPath = getWebhookConfigManuDir(webHookConfig);
- File manuDir = new File(manuDirPath);
- if (!manuDir.exists()) {
- logger.warn("webhookConfig dir {} is not existed",
manuDirPath);
- return new ArrayList<>();
- }
- File[] webhookFiles = manuDir.listFiles();
- int startIndex = (pageNum-1)*pageSize, endIndex =
pageNum*pageSize-1;
- List<WebHookConfig> webHookConfigs = new ArrayList<>();
- if (webhookFiles.length > startIndex) {
- for (int i = startIndex; i < endIndex && i <
webhookFiles.length; i++) {
-
webHookConfigs.add(getWebHookConfigFromFile(webhookFiles[i]));
- }
- }
- return webHookConfigs;
- }
-
- private WebHookConfig getWebHookConfigFromFile(File webhookConfigFile) {
- StringBuffer fileContent = new StringBuffer();
- try (BufferedReader br = new BufferedReader(new
InputStreamReader(new FileInputStream(webhookConfigFile)))) {
- String line = null;
- while ((line = br.readLine()) != null) {
- fileContent.append(line);
- }
- } catch (IOException e) {
- logger.error("get webhook from file {} error",
webhookConfigFile.getPath(), e);
- return null;
- }
- return JsonUtils.deserialize(fileContent.toString(),
WebHookConfig.class);
- }
-
- private boolean writeToFile(File webhookConfigFile, WebHookConfig
webHookConfig) {
- FileLock lock = null;
- try (FileOutputStream fos = new
FileOutputStream(webhookConfigFile);BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(fos))){
- // lock this file
- lock = fos.getChannel().lock();
- bw.write(JsonUtils.serialize(webHookConfig));
- } catch (IOException e) {
- logger.error("write webhookConfig {} to file error",
webHookConfig.getCallbackPath());
- return false;
- } finally {
- try {
- if (lock != null) {
- lock.release();
- }
- } catch (IOException e) {
- logger.warn("writeToFile finally caught an
exception", e);
- }
- }
- return true;
- }
-
- private String getWebhookConfigManuDir(WebHookConfig webHookConfig) {
- return webHookFilePath +
WebHookOperationConstant.FILE_SEPARATOR + webHookConfig.getManufacturerName();
- }
-
- private File getWebhookConfigFile(WebHookConfig webHookConfig) {
- String webhookConfigFilePath = null;
- try {
- // use URLEncoder.encode before, because the path may
contain some speacial char like '/', which is illegal as a file name.
- webhookConfigFilePath =
this.getWebhookConfigManuDir(webHookConfig) +
WebHookOperationConstant.FILE_SEPARATOR +
URLEncoder.encode(webHookConfig.getCallbackPath(), "UTF-8") +
WebHookOperationConstant.FILE_EXTENSION;
- } catch (UnsupportedEncodingException e) {
- logger.error("get webhookConfig file path {} failed",
webHookConfig.getCallbackPath(), e);
- }
- assert webhookConfigFilePath != null;
- return new File(webhookConfigFilePath);
- }
+ private final String webHookFilePath;
+
+
+ public FileWebHookConfigOperation(Properties properties) throws
FileNotFoundException {
+ String webHookFilePath =
WebHookOperationConstant.getFilePath(properties.getProperty("filePath"));
+
+ assert webHookFilePath != null;
Review Comment:
Here is always true, need remove
##########
eventmesh-common/src/main/java/org/apache/eventmesh/common/config/ConfigurationWrapper.java:
##########
@@ -24,28 +24,31 @@
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Preconditions;
public class ConfigurationWrapper {
public Logger logger = LoggerFactory.getLogger(this.getClass());
-
+
private static final long TIME_INTERVAL = 30 * 1000L;
-
+
private String file;
private Properties properties = new Properties();
private boolean reload;
- private ScheduledExecutorService configLoader =
ThreadPoolFactory.createSingleScheduledExecutor("eventMesh-configLoader-");
+ private ScheduledExecutorService configLoader = ThreadPoolFactory
+ .createSingleScheduledExecutor("eventMesh-configLoader-");
Review Comment:
These variables can be added final
##########
eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/NacosWebHookConfigOperation.java:
##########
@@ -16,182 +16,190 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import com.alibaba.nacos.api.PropertyKeyConst;
-import com.alibaba.nacos.api.config.ConfigFactory;
-import com.alibaba.nacos.api.config.ConfigService;
-import com.alibaba.nacos.api.config.ConfigType;
-import com.alibaba.nacos.api.exception.NacosException;
-import
com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.util.internal.StringUtil;
+
+import static
org.apache.eventmesh.webhook.api.WebHookOperationConstant.DATA_ID_EXTENSION;
+import static
org.apache.eventmesh.webhook.api.WebHookOperationConstant.GROUP_PREFIX;
+import static
org.apache.eventmesh.webhook.api.WebHookOperationConstant.MANUFACTURERS_DATA_ID;
+import static
org.apache.eventmesh.webhook.api.WebHookOperationConstant.TIMEOUT_MS;
+
+
+
import org.apache.eventmesh.common.utils.JsonUtils;
import org.apache.eventmesh.webhook.api.ManufacturerObject;
import org.apache.eventmesh.webhook.api.WebHookConfig;
import org.apache.eventmesh.webhook.api.WebHookConfigOperation;
+import org.apache.eventmesh.webhook.api.WebHookOperationConstant;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
-import org.apache.eventmesh.webhook.api.WebHookOperationConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.eventmesh.webhook.api.WebHookOperationConstant.*;
-
-public class NacosWebHookConfigOperation implements WebHookConfigOperation{
-
- private static final Logger logger =
LoggerFactory.getLogger(NacosWebHookConfigOperation.class);
-
- private ConfigService configService;
-
- private static final String NACOS_PROPERTIES_PREFIX =
"eventMesh.webHook.nacosMode.";
-
- public NacosWebHookConfigOperation(Properties properties) throws
NacosException {
- Properties nacosProperties = new Properties();
- nacosProperties.put(PropertyKeyConst.SERVER_ADDR,
properties.getProperty(NACOS_PROPERTIES_PREFIX + PropertyKeyConst.SERVER_ADDR));
- nacosProperties.put(PropertyKeyConst.NAMESPACE,
properties.getProperty(NACOS_PROPERTIES_PREFIX + PropertyKeyConst.NAMESPACE));
- nacosProperties.put(PropertyKeyConst.USERNAME,
properties.getProperty(NACOS_PROPERTIES_PREFIX + PropertyKeyConst.USERNAME));
- nacosProperties.put(PropertyKeyConst.PASSWORD,
properties.getProperty(NACOS_PROPERTIES_PREFIX + PropertyKeyConst.PASSWORD));
- configService =
ConfigFactory.createConfigService(nacosProperties);
-
- String manufacturers=
configService.getConfig(MANUFACTURERS_DATA_ID, "webhook", TIMEOUT_MS);
- if (manufacturers == null) {
- configService.publishConfig(MANUFACTURERS_DATA_ID,
"webhook", JsonUtils.serialize(new ManufacturerObject()),
ConfigType.JSON.getType());
- }
-
- }
-
- @Override
- public Integer insertWebHookConfig(WebHookConfig webHookConfig) {
- if
(!webHookConfig.getCallbackPath().startsWith(WebHookOperationConstant.CALLBACK_PATH_PREFIX))
{
- logger.error("webhookConfig callback path must start
with {}", WebHookOperationConstant.CALLBACK_PATH_PREFIX);
- return 0;
- }
- Boolean result;
- String manufacturerName = webHookConfig.getManufacturerName();
- try {
- if
(configService.getConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig), TIMEOUT_MS) != null) {
- logger.error("insertWebHookConfig failed,
config has existed");
- return 0;
- }
- result =
configService.publishConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig), JsonUtils.serialize(webHookConfig),
ConfigType.JSON.getType());
- } catch (NacosException e) {
- logger.error("insertWebHookConfig failed", e);
- return 0;
- }
- if (result) {
- // update manufacturer config
- try {
- ManufacturerObject manufacturerObject =
getManufacturersInfo();
-
manufacturerObject.addManufacturer(manufacturerName);
-
manufacturerObject.getManufacturerEvents(manufacturerName).add(getWebHookConfigDataId(webHookConfig));
-
configService.publishConfig(MANUFACTURERS_DATA_ID, "webhook",
JsonUtils.serialize(manufacturerObject), ConfigType.JSON.getType());
- } catch (NacosException e) {
- logger.error("update manufacturersInfo error",
e);
- //rollback insert
- try {
-
configService.removeConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig));
- } catch (NacosException ex) {
- logger.error("rollback
insertWebHookConfig failed", e);
- }
- }
- }
- return result ? 1 : 0;
- }
-
- @Override
- public Integer updateWebHookConfig(WebHookConfig webHookConfig) {
- Boolean result = false;
- try {
- if
(configService.getConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig), TIMEOUT_MS) == null) {
- logger.error("updateWebHookConfig failed,
config is not existed");
- return 0;
- }
- result =
configService.publishConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig), JsonUtils.serialize(webHookConfig),
ConfigType.JSON.getType());
- } catch (NacosException e) {
- logger.error("updateWebHookConfig failed", e);
- }
- return result ? 1 : 0;
- }
-
- @Override
- public Integer deleteWebHookConfig(WebHookConfig webHookConfig) {
- Boolean result = false;
- String manufacturerName = webHookConfig.getManufacturerName();
- try {
- result =
configService.removeConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig));
- } catch (NacosException e) {
- logger.error("deleteWebHookConfig failed", e);
- }
- if (result) {
- //更新集合
- try {
- ManufacturerObject manufacturerObject =
getManufacturersInfo();
-
manufacturerObject.getManufacturerEvents(manufacturerName).remove(getWebHookConfigDataId(webHookConfig));
-
configService.publishConfig(MANUFACTURERS_DATA_ID, "webhook",
JsonUtils.serialize(manufacturerObject), ConfigType.JSON.getType());
- } catch (NacosException e) {
- logger.error("update manufacturersInfo error",
e);
- }
- }
- return result ? 1 : 0;
- }
-
- @Override
- public WebHookConfig queryWebHookConfigById(WebHookConfig
webHookConfig) {
- try {
- String content =
configService.getConfig(getWebHookConfigDataId(webHookConfig),
getManuGroupId(webHookConfig), TIMEOUT_MS);
- return JsonUtils.deserialize(content,
WebHookConfig.class);
- } catch (NacosException e) {
- logger.error("queryWebHookConfigById failed", e);
- }
- return null;
- }
-
- @Override
- public List<WebHookConfig>
queryWebHookConfigByManufacturer(WebHookConfig webHookConfig, Integer pageNum,
- Integer pageSize) {
- List<WebHookConfig> webHookConfigs = new ArrayList<>();
- String manufacturerName = webHookConfig.getManufacturerName();
- // get manufacturer event list
- try {
- ManufacturerObject manufacturerObject =
getManufacturersInfo();
- List<String> manufacturerEvents =
manufacturerObject.getManufacturerEvents(manufacturerName);
- int startIndex = (pageNum-1)*pageSize, endIndex =
pageNum*pageSize-1;
- if (manufacturerEvents.size() > startIndex) {
- // nacos API is not able to get all config, so
use foreach
- for (int i=startIndex; i<endIndex &&
i<manufacturerEvents.size(); i++) {
- String content =
configService.getConfig(manufacturerEvents.get(i)+ DATA_ID_EXTENSION,
getManuGroupId(webHookConfig), TIMEOUT_MS);
-
webHookConfigs.add(JsonUtils.deserialize(content, WebHookConfig.class));
- }
- }
- } catch (NacosException e) {
- logger.error("queryWebHookConfigByManufacturer failed",
e);
- }
- return webHookConfigs;
- }
-
- /**
- * @param webHookConfig
- * @return
- */
- private String getWebHookConfigDataId(WebHookConfig webHookConfig) {
- try {
- // use URLEncoder.encode before, because the path may
contain some speacial char like '/', which is illegal as a data id.
- return
URLEncoder.encode(webHookConfig.getCallbackPath(), "UTF-8") + DATA_ID_EXTENSION;
- } catch (UnsupportedEncodingException e) {
- logger.error("get webhookConfig dataId {} failed",
webHookConfig.getCallbackPath(), e);
- }
- return webHookConfig.getCallbackPath() + DATA_ID_EXTENSION;
- }
-
- private String getManuGroupId(WebHookConfig webHookConfig) {
- return GROUP_PREFIX + webHookConfig.getManufacturerName();
- }
-
- private ManufacturerObject getManufacturersInfo() throws NacosException
{
- String manufacturersContent =
configService.getConfig(MANUFACTURERS_DATA_ID, "webhook", TIMEOUT_MS);
- return StringUtil.isNullOrEmpty(manufacturersContent) ?
- new ManufacturerObject():
- JsonUtils.deserialize(manufacturersContent,
ManufacturerObject.class);
- }
+import com.alibaba.nacos.api.config.ConfigFactory;
+import com.alibaba.nacos.api.config.ConfigService;
+import com.alibaba.nacos.api.config.ConfigType;
+import com.alibaba.nacos.api.exception.NacosException;
+import
com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.util.internal.StringUtil;
+
+
+public class NacosWebHookConfigOperation implements WebHookConfigOperation {
+
+ private static final Logger logger =
LoggerFactory.getLogger(NacosWebHookConfigOperation.class);
+
+ private ConfigService configService;
Review Comment:
Here can add final
##########
eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/FileWebHookConfigOperation.java:
##########
@@ -48,141 +45,144 @@ public class FileWebHookConfigOperation implements
WebHookConfigOperation {
private static final Logger logger =
LoggerFactory.getLogger(FileWebHookConfigOperation.class);
- private final String webHookFilePath;
-
- private static final String FILE_PROPERTIES_PREFIX =
"eventMesh.webHook.fileMode.";
-
- public FileWebHookConfigOperation(Properties properties) throws
FileNotFoundException {
- String webHookFilePath =
properties.getProperty(FILE_PROPERTIES_PREFIX + "filePath");
- assert webHookFilePath != null;
- File webHookFileDir = new File(webHookFilePath);
- if (!webHookFileDir.isDirectory()) {
- throw new FileNotFoundException("File path " +
webHookFilePath + " is not directory");
- }
- if (!webHookFileDir.exists()) {
- webHookFileDir.mkdirs();
- }
- this.webHookFilePath = webHookFilePath;
- }
-
- @Override
- public Integer insertWebHookConfig(WebHookConfig webHookConfig) {
- if
(!webHookConfig.getCallbackPath().startsWith(WebHookOperationConstant.CALLBACK_PATH_PREFIX))
{
- logger.error("webhookConfig callback path must start
with {}", WebHookOperationConstant.CALLBACK_PATH_PREFIX);
- return 0;
- }
- File manuDir = new File(getWebhookConfigManuDir(webHookConfig));
- if (!manuDir.exists()) {
- manuDir.mkdir();
- }
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
- }
-
- @Override
- public Integer updateWebHookConfig(WebHookConfig webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
- }
-
- @Override
- public Integer deleteWebHookConfig(WebHookConfig webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return 0;
- }
- return webhookConfigFile.delete() ? 1 : 0;
- }
-
- @Override
- public WebHookConfig queryWebHookConfigById(WebHookConfig
webHookConfig) {
- File webhookConfigFile = getWebhookConfigFile(webHookConfig);
- if (!webhookConfigFile.exists()) {
- logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
- return null;
- }
- return getWebHookConfigFromFile(webhookConfigFile);
- }
-
- @Override
- public List<WebHookConfig>
queryWebHookConfigByManufacturer(WebHookConfig webHookConfig, Integer pageNum,
- Integer pageSize) {
- String manuDirPath = getWebhookConfigManuDir(webHookConfig);
- File manuDir = new File(manuDirPath);
- if (!manuDir.exists()) {
- logger.warn("webhookConfig dir {} is not existed",
manuDirPath);
- return new ArrayList<>();
- }
- File[] webhookFiles = manuDir.listFiles();
- int startIndex = (pageNum-1)*pageSize, endIndex =
pageNum*pageSize-1;
- List<WebHookConfig> webHookConfigs = new ArrayList<>();
- if (webhookFiles.length > startIndex) {
- for (int i = startIndex; i < endIndex && i <
webhookFiles.length; i++) {
-
webHookConfigs.add(getWebHookConfigFromFile(webhookFiles[i]));
- }
- }
- return webHookConfigs;
- }
-
- private WebHookConfig getWebHookConfigFromFile(File webhookConfigFile) {
- StringBuffer fileContent = new StringBuffer();
- try (BufferedReader br = new BufferedReader(new
InputStreamReader(new FileInputStream(webhookConfigFile)))) {
- String line = null;
- while ((line = br.readLine()) != null) {
- fileContent.append(line);
- }
- } catch (IOException e) {
- logger.error("get webhook from file {} error",
webhookConfigFile.getPath(), e);
- return null;
- }
- return JsonUtils.deserialize(fileContent.toString(),
WebHookConfig.class);
- }
-
- private boolean writeToFile(File webhookConfigFile, WebHookConfig
webHookConfig) {
- FileLock lock = null;
- try (FileOutputStream fos = new
FileOutputStream(webhookConfigFile);BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(fos))){
- // lock this file
- lock = fos.getChannel().lock();
- bw.write(JsonUtils.serialize(webHookConfig));
- } catch (IOException e) {
- logger.error("write webhookConfig {} to file error",
webHookConfig.getCallbackPath());
- return false;
- } finally {
- try {
- if (lock != null) {
- lock.release();
- }
- } catch (IOException e) {
- logger.warn("writeToFile finally caught an
exception", e);
- }
- }
- return true;
- }
-
- private String getWebhookConfigManuDir(WebHookConfig webHookConfig) {
- return webHookFilePath +
WebHookOperationConstant.FILE_SEPARATOR + webHookConfig.getManufacturerName();
- }
-
- private File getWebhookConfigFile(WebHookConfig webHookConfig) {
- String webhookConfigFilePath = null;
- try {
- // use URLEncoder.encode before, because the path may
contain some speacial char like '/', which is illegal as a file name.
- webhookConfigFilePath =
this.getWebhookConfigManuDir(webHookConfig) +
WebHookOperationConstant.FILE_SEPARATOR +
URLEncoder.encode(webHookConfig.getCallbackPath(), "UTF-8") +
WebHookOperationConstant.FILE_EXTENSION;
- } catch (UnsupportedEncodingException e) {
- logger.error("get webhookConfig file path {} failed",
webHookConfig.getCallbackPath(), e);
- }
- assert webhookConfigFilePath != null;
- return new File(webhookConfigFilePath);
- }
+ private final String webHookFilePath;
+
+
+ public FileWebHookConfigOperation(Properties properties) throws
FileNotFoundException {
+ String webHookFilePath =
WebHookOperationConstant.getFilePath(properties.getProperty("filePath"));
+
+ assert webHookFilePath != null;
+ File webHookFileDir = new File(webHookFilePath);
+ if (!webHookFileDir.isDirectory()) {
+ throw new FileNotFoundException("File path " + webHookFilePath + "
is not directory");
+ }
+ if (!webHookFileDir.exists()) {
+ webHookFileDir.mkdirs();
+ }
+ this.webHookFilePath = webHookFilePath;
+ }
+
+ @Override
+ public Integer insertWebHookConfig(WebHookConfig webHookConfig) {
+ if
(!webHookConfig.getCallbackPath().startsWith(WebHookOperationConstant.CALLBACK_PATH_PREFIX))
{
+ logger.error("webhookConfig callback path must start with {}",
WebHookOperationConstant.CALLBACK_PATH_PREFIX);
+ return 0;
+ }
+ File manuDir = new File(getWebhookConfigManuDir(webHookConfig));
+ if (!manuDir.exists()) {
+ manuDir.mkdir();
+ }
+ File webhookConfigFile = getWebhookConfigFile(webHookConfig);
+ if (webhookConfigFile.exists()) {
+ logger.error("webhookConfig {} is existed",
webHookConfig.getCallbackPath());
+ return 0;
+ }
+ return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
+ }
+
+ @Override
+ public Integer updateWebHookConfig(WebHookConfig webHookConfig) {
+ File webhookConfigFile = getWebhookConfigFile(webHookConfig);
+ if (!webhookConfigFile.exists()) {
+ logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
+ return 0;
+ }
+ return writeToFile(webhookConfigFile, webHookConfig) ? 1 : 0;
+ }
+
+ @Override
+ public Integer deleteWebHookConfig(WebHookConfig webHookConfig) {
+ File webhookConfigFile = getWebhookConfigFile(webHookConfig);
+ if (!webhookConfigFile.exists()) {
+ logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
+ return 0;
+ }
+ return webhookConfigFile.delete() ? 1 : 0;
+ }
+
+ @Override
+ public WebHookConfig queryWebHookConfigById(WebHookConfig webHookConfig) {
+ File webhookConfigFile = getWebhookConfigFile(webHookConfig);
+ if (!webhookConfigFile.exists()) {
+ logger.error("webhookConfig {} is not existed",
webHookConfig.getCallbackPath());
+ return null;
+ }
+ return getWebHookConfigFromFile(webhookConfigFile);
+ }
+
+ @Override
+ public List<WebHookConfig> queryWebHookConfigByManufacturer(WebHookConfig
webHookConfig, Integer pageNum,
+ Integer
pageSize) {
+ String manuDirPath = getWebhookConfigManuDir(webHookConfig);
+ File manuDir = new File(manuDirPath);
+ if (!manuDir.exists()) {
+ logger.warn("webhookConfig dir {} is not existed", manuDirPath);
+ return new ArrayList<>();
+ }
+ File[] webhookFiles = manuDir.listFiles();
+ int startIndex = (pageNum - 1) * pageSize;
+ int endIndex = pageNum * pageSize - 1;
+ List<WebHookConfig> webHookConfigs = new ArrayList<>();
+ if (webhookFiles.length > startIndex) {
Review Comment:
Here webhookFiles may cause NullPointException
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]