This is an automated email from the ASF dual-hosted git repository.
mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 4738389 RANGER-3305: Service version update improvements
4738389 is described below
commit 4738389a408449ff437513e572fdf7a3a0a03dc4
Author: Kishor Gollapalliwar <[email protected]>
AuthorDate: Fri Jun 4 12:17:00 2021 +0530
RANGER-3305: Service version update improvements
Signed-off-by: Mehul Parikh <[email protected]>
---
.../optimized/current/ranger_core_db_mysql.sql | 2 ++
.../054-add-version-in-x_service_version_info.sql | 29 ++++++++++++++++++++
.../optimized/current/ranger_core_db_oracle.sql | 2 ++
.../054-add-version-in-x_service_version_info.sql | 24 ++++++++++++++++
.../optimized/current/ranger_core_db_postgres.sql | 2 ++
.../054-add-version-in-x_service_version_info.sql | 32 ++++++++++++++++++++++
.../current/ranger_core_db_sqlanywhere.sql | 3 ++
.../054-add-version-in-x_service_version_info.sql | 20 ++++++++++++++
.../optimized/current/ranger_core_db_sqlserver.sql | 2 ++
.../054-add-version-in-x_service_version_info.sql | 21 ++++++++++++++
.../apache/ranger/entity/XXServiceVersionInfo.java | 18 ++++++++++++
11 files changed, 155 insertions(+)
diff --git a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
index 73d5ab7..8934549 100644
--- a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
+++ b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
@@ -1241,6 +1241,7 @@ CREATE TABLE `x_service_version_info` (
`tag_update_time` datetime NULL DEFAULT NULL,
`role_version` bigint(20) NOT NULL DEFAULT 0,
`role_update_time` datetime NULL DEFAULT NULL,
+`version` bigint(20) NOT NULL DEFAULT '1',
primary key (`id`),
CONSTRAINT `x_service_version_info_FK_service_id` FOREIGN KEY (`service_id`)
REFERENCES `x_service` (`id`)
)ROW_FORMAT=DYNAMIC;
@@ -1752,6 +1753,7 @@ INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('050',UTC_TIMESTAMP(),'Ranger 1.0.0',UTC_TIMESTAMP(),'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('051',UTC_TIMESTAMP(),'Ranger 1.0.0',UTC_TIMESTAMP(),'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('052',UTC_TIMESTAMP(),'Ranger 1.0.0',UTC_TIMESTAMP(),'localhost','Y');
+INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('054',UTC_TIMESTAMP(),'Ranger 1.0.0',UTC_TIMESTAMP(),'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('DB_PATCHES',UTC_TIMESTAMP(),'Ranger 1.0.0',UTC_TIMESTAMP(),'localhost','Y');
INSERT INTO x_user_module_perm
(user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
diff --git
a/security-admin/db/mysql/patches/054-add-version-in-x_service_version_info.sql
b/security-admin/db/mysql/patches/054-add-version-in-x_service_version_info.sql
new file mode 100644
index 0000000..dc26460
--- /dev/null
+++
b/security-admin/db/mysql/patches/054-add-version-in-x_service_version_info.sql
@@ -0,0 +1,29 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF 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.
+
+drop procedure if exists add_version_in_x_service_version_info;
+
+delimiter ;;
+create procedure add_version_in_x_service_version_info() begin
+
+if not exists (select * from information_schema.columns where
table_schema=database() and table_name = 'x_service_version_info' and
column_name='version') then
+ ALTER TABLE x_service_version_info ADD version bigint(20) NOT NULL
DEFAULT '1';
+end if;
+
+end;;
+
+delimiter ;
+
+call add_version_in_x_service_version_info();
diff --git
a/security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql
b/security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql
index 8e76bcd..4cd84ee 100644
--- a/security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql
+++ b/security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql
@@ -1319,6 +1319,7 @@ tag_version NUMBER(20) DEFAULT 0 NOT NULL,
tag_update_time DATE DEFAULT NULL NULL,
role_version NUMBER(20) DEFAULT 0 NOT NULL,
role_update_time DATE DEFAULT NULL NULL,
+version NUMBER(20) DEFAULT 1 NOT NULL,
primary key (id),
CONSTRAINT x_svc_ver_info_FK_service_id FOREIGN KEY (service_id) REFERENCES
x_service(id)
);
@@ -1988,6 +1989,7 @@ INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,act
INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,active) VALUES
(X_DB_VERSION_H_SEQ.nextval, '050',sys_extract_utc(systimestamp),'Ranger
1.0.0',sys_extract_utc(systimestamp),'localhost','Y');
INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,active) VALUES
(X_DB_VERSION_H_SEQ.nextval, '051',sys_extract_utc(systimestamp),'Ranger
1.0.0',sys_extract_utc(systimestamp),'localhost','Y');
INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,active) VALUES
(X_DB_VERSION_H_SEQ.nextval, '052',sys_extract_utc(systimestamp),'Ranger
1.0.0',sys_extract_utc(systimestamp),'localhost','Y');
+INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,active) VALUES
(X_DB_VERSION_H_SEQ.nextval, '054',sys_extract_utc(systimestamp),'Ranger
1.0.0',sys_extract_utc(systimestamp),'localhost','Y');
INSERT INTO x_db_version_h
(id,version,inst_at,inst_by,updated_at,updated_by,active) VALUES
(X_DB_VERSION_H_SEQ.nextval, 'DB_PATCHES',sys_extract_utc(systimestamp),'Ranger
1.0.0',sys_extract_utc(systimestamp),'localhost','Y');
INSERT INTO x_user_module_perm
(id,user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
VALUES
(X_USER_MODULE_PERM_SEQ.nextval,getXportalUIdByLoginId('admin'),getModulesIdByName('Reports'),sys_extract_utc(systimestamp),sys_extract_utc(systimestamp),getXportalUIdByLoginId('admin'),getXportalUIdByLoginId('admin'),1);
diff --git
a/security-admin/db/oracle/patches/054-add-version-in-x_service_version_info.sql
b/security-admin/db/oracle/patches/054-add-version-in-x_service_version_info.sql
new file mode 100644
index 0000000..6156c56
--- /dev/null
+++
b/security-admin/db/oracle/patches/054-add-version-in-x_service_version_info.sql
@@ -0,0 +1,24 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF 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.
+
+DECLARE
+ v_count number:=0;
+BEGIN
+ select count(*) into v_count from user_tab_cols where
table_name='X_SERVICE_VERSION_INFO' and column_name='VERSION';
+ if (v_count = 0) then
+ execute immediate 'ALTER TABLE x_service_version_info ADD
version NUMBER(20) DEFAULT 1 NOT NULL';
+ end if;
+ commit;
+END;/
diff --git
a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
index 1f181b2..0e3afbc 100644
--- a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
+++ b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
@@ -1184,6 +1184,7 @@ tag_version bigint NOT NULL DEFAULT '0',
tag_update_time TIMESTAMP DEFAULT NULL,
role_version bigint NOT NULL DEFAULT '0',
role_update_time TIMESTAMP DEFAULT NULL,
+version bigint NOT NULL DEFAULT '1',
primary key (id),
CONSTRAINT x_service_version_info_service_id FOREIGN KEY (service_id)
REFERENCES x_service (id)
);
@@ -1891,6 +1892,7 @@ INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('050',current_timestamp,'Ranger 1.0.0',current_timestamp,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('051',current_timestamp,'Ranger 1.0.0',current_timestamp,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('052',current_timestamp,'Ranger 1.0.0',current_timestamp,'localhost','Y');
+INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('054',current_timestamp,'Ranger 1.0.0',current_timestamp,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('DB_PATCHES',current_timestamp,'Ranger
1.0.0',current_timestamp,'localhost','Y');
INSERT INTO x_user_module_perm
(user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
VALUES
diff --git
a/security-admin/db/postgres/patches/054-add-version-in-x_service_version_info.sql
b/security-admin/db/postgres/patches/054-add-version-in-x_service_version_info.sql
new file mode 100644
index 0000000..91e656e
--- /dev/null
+++
b/security-admin/db/postgres/patches/054-add-version-in-x_service_version_info.sql
@@ -0,0 +1,32 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF 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.
+
+select 'delimiter start';
+CREATE OR REPLACE FUNCTION add_version_in_x_service_version_info()
+RETURNS void AS $$
+DECLARE
+ v_column_exists integer := 0;
+BEGIN
+ select count(*) into v_column_exists from pg_attribute where attrelid
in(select oid from pg_class where relname='x_service_version_info') and
attname='version';
+ IF v_column_exists = 0 THEN
+ ALTER TABLE x_service_version_info ADD COLUMN version bigint NOT NULL
DEFAULT '1';
+ END IF;
+END;
+$$ LANGUAGE plpgsql;
+select 'delimiter end';
+
+select add_version_in_x_service_version_info();
+select 'delimiter end';
+commit;
diff --git
a/security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql
b/security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql
index 7c864ad..aca913d 100644
---
a/security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql
+++
b/security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql
@@ -1013,6 +1013,7 @@ CREATE TABLE dbo.x_service_version_info(
tag_update_time datetime DEFAULT NULL NULL,
role_version bigint NOT NULL DEFAULT 0,
role_update_time datetime DEFAULT NULL NULL,
+ version bigint NOT NULL DEFAULT 1,
CONSTRAINT x_service_version_info_PK_id PRIMARY KEY CLUSTERED(id)
)
GO
@@ -2276,6 +2277,8 @@ INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active
GO
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('052',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
GO
+INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('054',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
+GO
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('DB_PATCHES',CURRENT_TIMESTAMP,'Ranger
1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
GO
INSERT INTO x_user_module_perm
(user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
VALUES
(dbo.getXportalUIdByLoginId('admin'),dbo.getModulesIdByName('Reports'),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,dbo.getXportalUIdByLoginId('admin'),dbo.getXportalUIdByLoginId('admin'),1);
diff --git
a/security-admin/db/sqlanywhere/patches/054-add-version-in-x_service_version_info.sql
b/security-admin/db/sqlanywhere/patches/054-add-version-in-x_service_version_info.sql
new file mode 100644
index 0000000..31c67f4
--- /dev/null
+++
b/security-admin/db/sqlanywhere/patches/054-add-version-in-x_service_version_info.sql
@@ -0,0 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF 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.
+
+IF NOT EXISTS(select * from SYS.SYSCOLUMNS where tname =
'x_service_version_info' and cname = 'version') THEN
+ ALTER TABLE dbo.x_service_version_info ADD version bigint NOT
NULL DEFAULT 1;
+END IF;
+GO
+exit
\ No newline at end of file
diff --git
a/security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql
b/security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql
index 79d6202..300308a 100644
--- a/security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql
+++ b/security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql
@@ -2060,6 +2060,7 @@ CREATE TABLE [dbo].[x_service_version_info](
[tag_update_time] [datetime2] DEFAULT NULL NULL,
[role_version] [bigint] NOT NULL DEFAULT 0,
[role_update_time] [datetime2] DEFAULT NULL NULL,
+ [version] [bigint] NOT NULL DEFAULT 1,
PRIMARY KEY CLUSTERED
(
[id] ASC
@@ -4124,6 +4125,7 @@ INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('051',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('052',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('053',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
+INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('054',CURRENT_TIMESTAMP,'Ranger 1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
INSERT INTO x_db_version_h
(version,inst_at,inst_by,updated_at,updated_by,active) VALUES
('DB_PATCHES',CURRENT_TIMESTAMP,'Ranger
1.0.0',CURRENT_TIMESTAMP,'localhost','Y');
INSERT INTO x_user_module_perm
(user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
VALUES
(dbo.getXportalUIdByLoginId('admin'),dbo.getModulesIdByName('Reports'),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,dbo.getXportalUIdByLoginId('admin'),dbo.getXportalUIdByLoginId('admin'),1);
INSERT INTO x_user_module_perm
(user_id,module_id,create_time,update_time,added_by_id,upd_by_id,is_allowed)
VALUES (dbo.getXportalUIdByLoginId('admin'),dbo.getModulesIdByName('Resource
Based
Policies'),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,dbo.getXportalUIdByLoginId('admin'),dbo.getXportalUIdByLoginId('admin'),1);
diff --git
a/security-admin/db/sqlserver/patches/054-add-version-in-x_service_version_info.sql
b/security-admin/db/sqlserver/patches/054-add-version-in-x_service_version_info.sql
new file mode 100644
index 0000000..d72d632
--- /dev/null
+++
b/security-admin/db/sqlserver/patches/054-add-version-in-x_service_version_info.sql
@@ -0,0 +1,21 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF 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.
+
+GO
+IF NOT EXISTS(select * from INFORMATION_SCHEMA.columns where table_name =
'x_service_version_info' and column_name = 'version')
+BEGIN
+ ALTER TABLE [dbo].[x_service_version_info] ADD [version] [bigint] NOT
NULL DEFAULT 1;
+END
+exit
\ No newline at end of file
diff --git
a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceVersionInfo.java
b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceVersionInfo.java
index 5d0f886..cfb0137 100644
---
a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceVersionInfo.java
+++
b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceVersionInfo.java
@@ -32,6 +32,7 @@ import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
+import javax.persistence.Version;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.ranger.common.AppConstants;
@@ -48,6 +49,7 @@ public class XXServiceVersionInfo implements
java.io.Serializable {
@Id
@SequenceGenerator(name = "X_SERVICE_VERSION_INFO_SEQ", sequenceName =
"X_SERVICE_VERSION_INFO_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator =
"X_SERVICE_VERSION_INFO_SEQ")
+
@Column(name = "id")
protected Long id;
@@ -75,6 +77,10 @@ public class XXServiceVersionInfo implements
java.io.Serializable {
@Column(name="role_update_time" )
protected Date roleUpdateTime = DateUtil.getUTCDate();
+ @Version
+ @Column(name = "version")
+ protected Long version;
+
/**
* Default constructor. This will set all the attributes to default
value.
*/
@@ -93,10 +99,18 @@ public class XXServiceVersionInfo implements
java.io.Serializable {
this.id = id;
}
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
public Long getId() {
return this.id;
}
+ public Long getVersion() {
+ return version;
+ }
+
public void setServiceId(Long serviceId) {
this.serviceId = serviceId;
}
@@ -161,6 +175,7 @@ public class XXServiceVersionInfo implements
java.io.Serializable {
public String toString( ) {
String str = "XXServiceVersionInfo={";
str += "id={" + id + "} ";
+ str += "version={" + version + "} ";
str += "serviceId={" + serviceId + "} ";
str += "policyVersion={" + policyVersion + "} ";
str += "policyUpdateTime={" + policyUpdateTime + "} ";
@@ -190,6 +205,9 @@ public class XXServiceVersionInfo implements
java.io.Serializable {
if ((this.id == null && other.id != null) || (this.id != null
&& !this.id.equals(other.id))) {
return false;
}
+ if ((version == null && other.version != null) || (this.version
!= null && !this.version.equals(other.version))) {
+ return false;
+ }
if ((this.serviceId == null && other.serviceId != null) ||
(this.serviceId != null && !this.serviceId.equals(other.serviceId))) {
return false;
}