Skip to content

Commit

Permalink
DefaultPageHandlerAdapter
Browse files Browse the repository at this point in the history
  • Loading branch information
huangkemingyyds committed Nov 23, 2023
1 parent 4ae7db2 commit 6f8167d
Show file tree
Hide file tree
Showing 14 changed files with 82 additions and 94 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.alibaba.nacos.plugin.auth.impl.persistence;

import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.plugin.datasource.model.MapperResult;
import org.springframework.jdbc.core.RowMapper;

Expand All @@ -29,7 +28,7 @@
* @author huangKeMing
*/
@SuppressWarnings("PMD.AbstractMethodOrInterfaceMethodMustUseJavadocRule")
public interface AuthPaginationHelper<E> extends PaginationHelper<E> {
public interface AuthPaginationHelper<E> {

Page<E> fetchPage(final String sqlCountRows, final String sqlFetchRows, final Object[] args, final int pageNo,
final int pageSize, final RowMapper<E> rowMapper);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.alibaba.nacos.common.utils.StringUtils;
import com.alibaba.nacos.persistence.configuration.condition.ConditionOnEmbeddedStorage;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.persistence.repository.embedded.EmbeddedStorageContextHolder;
import com.alibaba.nacos.persistence.repository.embedded.operate.DatabaseOperate;
import com.alibaba.nacos.plugin.auth.impl.persistence.embedded.AuthEmbeddedPaginationHelperImpl;
Expand Down Expand Up @@ -51,7 +50,7 @@ public class EmbeddedPermissionPersistServiceImpl implements PermissionPersistSe

@Override
public Page<PermissionInfo> getPermissions(String role, int pageNo, int pageSize) {
PaginationHelper<PermissionInfo> helper = createPaginationHelper();
AuthPaginationHelper<PermissionInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM permissions WHERE ";

Expand Down Expand Up @@ -106,7 +105,7 @@ public void deletePermission(String role, String resource, String action) {

@Override
public Page<PermissionInfo> findPermissionsLike4Page(String role, int pageNo, int pageSize) {
PaginationHelper<PermissionInfo> helper = createPaginationHelper();
AuthPaginationHelper<PermissionInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM permissions ";

Expand Down Expand Up @@ -147,7 +146,7 @@ public String generateLikeArgument(String s) {
}

@Override
public <E> PaginationHelper<E> createPaginationHelper() {
public <E> AuthPaginationHelper<E> createPaginationHelper() {
return new AuthEmbeddedPaginationHelperImpl<>(databaseOperate);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.alibaba.nacos.common.utils.StringUtils;
import com.alibaba.nacos.persistence.configuration.condition.ConditionOnEmbeddedStorage;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.persistence.repository.embedded.EmbeddedStorageContextHolder;
import com.alibaba.nacos.persistence.repository.embedded.operate.DatabaseOperate;
import com.alibaba.nacos.plugin.auth.impl.persistence.embedded.AuthEmbeddedPaginationHelperImpl;
Expand Down Expand Up @@ -51,8 +50,8 @@ public class EmbeddedRolePersistServiceImpl implements RolePersistService {

@Override
public Page<RoleInfo> getRoles(int pageNo, int pageSize) {
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM (SELECT DISTINCT role FROM roles) roles WHERE ";

Expand All @@ -73,8 +72,8 @@ public Page<RoleInfo> getRoles(int pageNo, int pageSize) {

@Override
public Page<RoleInfo> getRolesByUserNameAndRoleName(String username, String role, int pageNo, int pageSize) {
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM roles ";

Expand Down Expand Up @@ -187,14 +186,14 @@ public Page<RoleInfo> findRolesLike4Page(String username, String role, int pageN
}
String sqlCountRows = "SELECT count(*) FROM roles";
String sqlFetchRows = "SELECT role, username FROM roles";
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();
return helper.fetchPage(sqlCountRows + where, sqlFetchRows + where, params.toArray(), pageNo, pageSize,
ROLE_INFO_ROW_MAPPER);
}

@Override
public <E> PaginationHelper<E> createPaginationHelper() {
public <E> AuthPaginationHelper<E> createPaginationHelper() {
return new AuthEmbeddedPaginationHelperImpl<>(databaseOperate);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.alibaba.nacos.common.utils.StringUtils;
import com.alibaba.nacos.persistence.configuration.condition.ConditionOnEmbeddedStorage;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.persistence.repository.embedded.EmbeddedStorageContextHolder;
import com.alibaba.nacos.persistence.repository.embedded.operate.DatabaseOperate;
import com.alibaba.nacos.plugin.auth.impl.persistence.embedded.AuthEmbeddedPaginationHelperImpl;
Expand Down Expand Up @@ -107,8 +106,8 @@ public User findUserByUsername(String username) {

@Override
public Page<User> getUsers(int pageNo, int pageSize, String username) {
PaginationHelper<User> helper = createPaginationHelper();

AuthPaginationHelper<User> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM users ";

Expand Down Expand Up @@ -149,8 +148,8 @@ public Page<User> findUsersLike4Page(String username, int pageNo, int pageSize)
where.append(SQL_DERBY_ESCAPE_BACK_SLASH_FOR_LIKE);
params.add(generateLikeArgument(username));
}
PaginationHelper<User> helper = createPaginationHelper();

AuthPaginationHelper<User> helper = createPaginationHelper();
return helper.fetchPage(sqlCountRows + where, sqlFetchRows + where, params.toArray(), pageNo, pageSize,
USER_ROW_MAPPER);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.alibaba.nacos.persistence.datasource.DataSourceService;
import com.alibaba.nacos.persistence.datasource.DynamicDataSource;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.plugin.auth.impl.persistence.extrnal.AuthExternalPaginationHelperImpl;
import org.springframework.context.annotation.Conditional;
import org.springframework.jdbc.CannotGetJdbcConnectionException;
Expand Down Expand Up @@ -60,7 +59,7 @@ protected void init() {

@Override
public Page<PermissionInfo> getPermissions(String role, int pageNo, int pageSize) {
PaginationHelper<PermissionInfo> helper = createPaginationHelper();
AuthPaginationHelper<PermissionInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM permissions WHERE ";
String sqlFetchRows = "SELECT role,resource,action FROM permissions WHERE ";
Expand Down Expand Up @@ -132,7 +131,7 @@ public void deletePermission(String role, String resource, String action) {

@Override
public Page<PermissionInfo> findPermissionsLike4Page(String role, int pageNo, int pageSize) {
PaginationHelper<PermissionInfo> helper = createPaginationHelper();
AuthPaginationHelper<PermissionInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM permissions ";
String sqlFetchRows = "SELECT role,resource,action FROM permissions ";
Expand Down Expand Up @@ -178,7 +177,7 @@ public String generateLikeArgument(String s) {
}

@Override
public <E> PaginationHelper<E> createPaginationHelper() {
public <E> AuthPaginationHelper<E> createPaginationHelper() {
return new AuthExternalPaginationHelperImpl<E>(jt, dataSourceType);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.alibaba.nacos.persistence.datasource.DataSourceService;
import com.alibaba.nacos.persistence.datasource.DynamicDataSource;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.plugin.auth.impl.persistence.extrnal.AuthExternalPaginationHelperImpl;
import org.springframework.context.annotation.Conditional;
import org.springframework.jdbc.CannotGetJdbcConnectionException;
Expand Down Expand Up @@ -62,8 +61,8 @@ protected void init() {

@Override
public Page<RoleInfo> getRoles(int pageNo, int pageSize) {
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM (SELECT DISTINCT role FROM roles) roles WHERE ";

Expand All @@ -88,8 +87,8 @@ public Page<RoleInfo> getRoles(int pageNo, int pageSize) {

@Override
public Page<RoleInfo> getRolesByUserNameAndRoleName(String username, String role, int pageNo, int pageSize) {
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM roles ";

Expand Down Expand Up @@ -204,8 +203,8 @@ public Page<RoleInfo> findRolesLike4Page(String username, String role, int pageN
where.append(" AND role LIKE ? ");
params.add(generateLikeArgument(role));
}
PaginationHelper<RoleInfo> helper = createPaginationHelper();

AuthPaginationHelper<RoleInfo> helper = createPaginationHelper();
try {
return helper.fetchPage(sqlCountRows + where, sqlFetchRows + where, params.toArray(), pageNo, pageSize,
ROLE_INFO_ROW_MAPPER);
Expand All @@ -216,7 +215,7 @@ public Page<RoleInfo> findRolesLike4Page(String username, String role, int pageN
}

@Override
public <E> PaginationHelper<E> createPaginationHelper() {
public <E> AuthPaginationHelper<E> createPaginationHelper() {
return new AuthExternalPaginationHelperImpl<>(jt, dataSourceType);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.alibaba.nacos.persistence.datasource.DataSourceService;
import com.alibaba.nacos.persistence.datasource.DynamicDataSource;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;
import com.alibaba.nacos.plugin.auth.impl.persistence.extrnal.AuthExternalPaginationHelperImpl;
import org.springframework.context.annotation.Conditional;
import org.springframework.dao.EmptyResultDataAccessException;
Expand Down Expand Up @@ -132,8 +131,8 @@ public User findUserByUsername(String username) {

@Override
public Page<User> getUsers(int pageNo, int pageSize, String username) {
PaginationHelper<User> helper = createPaginationHelper();

AuthPaginationHelper<User> helper = createPaginationHelper();

String sqlCountRows = "SELECT count(*) FROM users ";

Expand Down Expand Up @@ -179,8 +178,8 @@ public Page<User> findUsersLike4Page(String username, int pageNo, int pageSize)
where.append(" AND username LIKE ? ");
params.add(generateLikeArgument(username));
}
PaginationHelper<User> helper = createPaginationHelper();

AuthPaginationHelper<User> helper = createPaginationHelper();
try {
return helper.fetchPage(sqlCountRows + where, sqlFetchRows + where, params.toArray(), pageNo, pageSize,
USER_ROW_MAPPER);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.alibaba.nacos.plugin.auth.impl.persistence;

import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;

/**
* Permission CRUD service.
Expand Down Expand Up @@ -64,7 +63,7 @@ public interface PermissionPersistService {
* create Pagination utils.
*
* @param <E> Generic object
* @return {@link PaginationHelper}
* @return {@link AuthPaginationHelper}
*/
<E> PaginationHelper<E> createPaginationHelper();
<E> AuthPaginationHelper<E> createPaginationHelper();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@

package com.alibaba.nacos.plugin.auth.impl.persistence;

import java.util.List;

import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;

import java.util.List;

/**
* Role CRUD service.
Expand Down Expand Up @@ -102,7 +101,7 @@ public interface RolePersistService {
* create Pagination utils.
*
* @param <E> Generic object
* @return {@link PaginationHelper}
* @return {@link AuthPaginationHelper}
*/
<E> PaginationHelper<E> createPaginationHelper();
<E> AuthPaginationHelper<E> createPaginationHelper();
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.alibaba.nacos.plugin.auth.impl.persistence;

import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.PaginationHelper;

import java.util.List;

Expand Down Expand Up @@ -86,7 +85,7 @@ public interface UserPersistService {
* create Pagination utils.
*
* @param <E> Generic object
* @return {@link PaginationHelper}
* @return {@link AuthPaginationHelper}
*/
<E> AuthPaginationHelper<E> createPaginationHelper();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,14 @@

package com.alibaba.nacos.plugin.auth.impl.persistence.extrnal;

import com.alibaba.nacos.plugin.auth.impl.persistence.handler.PageHandlerAdapterFactory;
import com.alibaba.nacos.plugin.auth.impl.exception.NotExistException;
import com.alibaba.nacos.plugin.auth.impl.model.OffsetFetchResult;
import com.alibaba.nacos.persistence.model.Page;
import com.alibaba.nacos.persistence.repository.embedded.EmbeddedStorageContextHolder;
import com.alibaba.nacos.plugin.auth.impl.model.OffsetFetchResult;
import com.alibaba.nacos.plugin.auth.impl.persistence.AuthPaginationHelper;
import com.alibaba.nacos.plugin.auth.impl.persistence.handler.PageHandlerAdapter;
import com.alibaba.nacos.plugin.auth.impl.persistence.handler.PageHandlerAdapterFactory;
import com.alibaba.nacos.plugin.auth.impl.persistence.handler.support.DefaultPageHandlerAdapter;
import com.alibaba.nacos.plugin.datasource.model.MapperResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

Expand All @@ -39,8 +37,6 @@
*/
public class AuthExternalPaginationHelperImpl<E> implements AuthPaginationHelper<E> {

public static final Logger LOGGER = LoggerFactory.getLogger(AuthExternalPaginationHelperImpl.class);

private final JdbcTemplate jdbcTemplate;

private volatile String dataSourceType;
Expand Down Expand Up @@ -264,8 +260,8 @@ protected PageHandlerAdapter getHandlerAdapter(String dataSourceType) {

}

LOGGER.error("the PageHandlerAdapter Unsupported database type: " + dataSourceType);
throw new NotExistException("the PageHandlerAdapter Unsupported database type: " + dataSourceType);
return PageHandlerAdapterFactory.getInstance().getHandlerAdapterMap()
.get(DefaultPageHandlerAdapter.class.getName());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ private void initHandlerAdapters() {
addHandlerAdapter(new MysqlPageHandlerAdapter());
// DerbyPageHandlerAdapter
addHandlerAdapter(new DerbyPageHandlerAdapter());
// DefaultPageHandlerAdapter
addHandlerAdapter(new DerbyPageHandlerAdapter());
}

private void addHandlerAdapter(PageHandlerAdapter handlerAdapter) {
Expand Down
Loading

0 comments on commit 6f8167d

Please sign in to comment.