summaryrefslogtreecommitdiffstats
path: root/holmes-actions/src/main/java
diff options
context:
space:
mode:
authortang peng <tang.peng5@zte.com.cn>2020-09-25 15:15:00 +0800
committertang peng <tang.peng5@zte.com.cn>2020-09-25 15:15:12 +0800
commit38107cb7956b94100cbc5a766c7bbc12dc7154a2 (patch)
tree610045d00d49a951da64a2845def106c5b6f5847 /holmes-actions/src/main/java
parentfe095c6946e55131f3b70af0a9795135a8314f08 (diff)
Added some tools for engine instance management
Issue-ID: HOLMES-365 Signed-off-by: tang peng <tang.peng5@zte.com.cn> Change-Id: Ie57ca3eaa0ffda7c3f611b07293ceedd75d08a91
Diffstat (limited to 'holmes-actions/src/main/java')
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java44
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java35
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java74
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java31
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java62
5 files changed, 246 insertions, 0 deletions
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java
new file mode 100644
index 0000000..42e0bf4
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2020 ZTE Corporation.
+ *
+ * Licensed 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.onap.holmes.common.engine.dao;
+
+import org.onap.holmes.common.engine.entity.EngineEntity;
+import org.skife.jdbi.v2.sqlobject.Bind;
+import org.skife.jdbi.v2.sqlobject.BindBean;
+import org.skife.jdbi.v2.sqlobject.SqlQuery;
+import org.skife.jdbi.v2.sqlobject.SqlUpdate;
+import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
+
+import java.util.List;
+
+@RegisterMapper(EngineEntityMapper.class)
+public interface EngineEntityDao {
+ @SqlQuery("SELECT * FROM ENGINE_ENTITY WHERE ID = :id")
+ EngineEntity getEntity(@Bind("id") String id);
+
+ @SqlQuery("SELECT * FROM ENGINE_ENTITY")
+ List<EngineEntity> getAllEntities();
+
+ @SqlUpdate("INSERT INTO ENGINE_ENTITY VALUES (:id, :ip, :port, :lastModified)")
+ void insertEntity(@BindBean EngineEntity entity);
+
+ @SqlUpdate("UPDATE ENGINE_ENTITY SET LASTMODIFIED = :lastModified WHERE ID = :id")
+ void updateEntity(@BindBean EngineEntity entity);
+
+ @SqlUpdate("DELETE FROM ENGINE_ENTITY WHERE ID = :id")
+ void deleteEntity(@Bind("id") String id);
+} \ No newline at end of file
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java
new file mode 100644
index 0000000..cda38a5
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright 2020 ZTE Corporation.
+ *
+ * Licensed 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.onap.holmes.common.engine.dao;
+
+import org.onap.holmes.common.engine.entity.EngineEntity;
+import org.skife.jdbi.v2.StatementContext;
+import org.skife.jdbi.v2.tweak.ResultSetMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class EngineEntityMapper implements ResultSetMapper<EngineEntity> {
+ @Override
+ public EngineEntity map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
+ EngineEntity entity = new EngineEntity();
+ entity.setIp(resultSet.getString("ip"));
+ entity.setPort(resultSet.getInt("port"));
+ entity.setLastModified(resultSet.getLong("lastmodified"));
+ return entity;
+ }
+} \ No newline at end of file
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java
new file mode 100644
index 0000000..9822fbc
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright 2020 ZTE Corporation.
+ *
+ * Licensed 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.onap.holmes.common.engine.entity;
+
+public class EngineEntity {
+ private String ip;
+ private int port;
+ private long lastModified;
+
+ public EngineEntity(String ip, int port) {
+ this.ip = ip;
+ this.port = port;
+ this.lastModified = System.currentTimeMillis();
+ }
+
+ public EngineEntity() {
+ }
+
+ public String getId() {
+ return ip + "_" + port;
+ }
+
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public long getLastModified() {
+ return lastModified;
+ }
+
+ public void setLastModified(long lastModified) {
+ this.lastModified = lastModified;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == null || ! (o instanceof EngineEntity)) {
+ return false;
+ }
+
+ return ((EngineEntity) o).getId().equals(getId());
+ }
+
+ @Override
+ public int hashCode() {
+ return getId().hashCode();
+ }
+} \ No newline at end of file
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java
new file mode 100644
index 0000000..0baa4de
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright 2020 ZTE Corporation.
+ *
+ * Licensed 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.onap.holmes.common.engine.service;
+
+import org.glassfish.jersey.spi.Contract;
+import org.onap.holmes.common.engine.entity.EngineEntity;
+
+import java.util.List;
+
+@Contract
+public interface EngineEntityService {
+ EngineEntity getEntity(String id);
+ List<EngineEntity> getAllEntities();
+ void updateEntity(EngineEntity entity);
+ void insertEntity(EngineEntity entity);
+ void deleteEntity(String id);
+}
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java
new file mode 100644
index 0000000..926af13
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright 2020 ZTE Corporation.
+ *
+ * Licensed 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.onap.holmes.common.engine.service.impl;
+
+import org.jvnet.hk2.annotations.Service;
+import org.onap.holmes.common.engine.dao.EngineEntityDao;
+import org.onap.holmes.common.engine.entity.EngineEntity;
+import org.onap.holmes.common.engine.service.EngineEntityService;
+import org.onap.holmes.common.utils.DbDaoUtil;
+
+import javax.inject.Inject;
+import java.util.List;
+
+@Service
+public class EngineEntityServiceImpl implements EngineEntityService {
+
+ private EngineEntityDao engineEntityDao;
+
+ @Inject
+ public EngineEntityServiceImpl(DbDaoUtil dbDaoUtil){
+ engineEntityDao = dbDaoUtil.getJdbiDaoByOnDemand(EngineEntityDao.class);
+ }
+
+ @Override
+ public EngineEntity getEntity(String id) {
+ return engineEntityDao.getEntity(id);
+ }
+
+ @Override
+ public List<EngineEntity> getAllEntities() {
+ return engineEntityDao.getAllEntities();
+ }
+
+ @Override
+ public void updateEntity(EngineEntity entity) {
+ engineEntityDao.updateEntity(entity);
+ }
+
+ @Override
+ public void insertEntity(EngineEntity entity) {
+ engineEntityDao.insertEntity(entity);
+ }
+
+ @Override
+ public void deleteEntity(String id) {
+ engineEntityDao.deleteEntity(id);
+ }
+}