Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
<parent>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-adapter</artifactId>
<version>1.2.0</version>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>koupleless-adapter-springboot-2.7</artifactId>
<artifactId>koupleless-adapter-executor-spring-2.7</artifactId>
<version>${revision}</version>

<properties>
Expand All @@ -34,7 +35,7 @@

<dependency>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-common</artifactId>
<artifactId>koupleless-base-plugin</artifactId>
<version>${revision}</version>
<scope>provided</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* 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.
*/
package com.alipay.sofa.koupleless.common;

import com.alipay.sofa.koupleless.common.util.ClassUtil;
import com.alipay.sofa.koupleless.plugin.concurrent.KouplelessExecutorService;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadFactory;

/**
* @author lianglipeng.llp@alibaba-inc.com
* @version $Id: KouplelessThreadPoolTaskExecutor.java, v 0.1 2024年05月13日 20:51 立蓬 Exp $
*/
public class KouplelessThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {

@Override
protected ExecutorService initializeExecutor(ThreadFactory threadFactory,
RejectedExecutionHandler rejectedExecutionHandler) {

ExecutorService executorService = super.initializeExecutor(threadFactory,
rejectedExecutionHandler);
KouplelessExecutorService executor = new KouplelessExecutorService(executorService);
ClassUtil.setField("threadPoolExecutor", this, executor);
return executor;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* 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.
*/
package com.alipay.sofa.koupleless.common;

import com.alipay.sofa.koupleless.common.util.ClassUtil;
import com.alipay.sofa.koupleless.plugin.concurrent.KouplelessScheduledExecutorService;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;

/**
* @author lianglipeng.llp@alibaba-inc.com
* @version $Id: KouplelessThreadPoolTaskScheduler.java, v 0.1 2024年05月13日 23:33 立蓬 Exp $
*/
public class KouplelessThreadPoolTaskScheduler extends ThreadPoolTaskScheduler {

@Override
protected ExecutorService initializeExecutor(ThreadFactory threadFactory,
RejectedExecutionHandler rejectedExecutionHandler) {

ScheduledExecutorService scheduledExecutor = (ScheduledExecutorService) super.initializeExecutor(
threadFactory, rejectedExecutionHandler);
ScheduledExecutorService executor = new KouplelessScheduledExecutorService(
scheduledExecutor);
ClassUtil.setField("scheduledExecutor", this, executor);
return executor;
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
/*
* Copyright 2012-2022 the original author or authors.
* 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
*
* 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
*
* https://www.apache.org/licenses/LICENSE-2.0
* 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.springframework.boot.autoconfigure.task;

import java.util.concurrent.Executor;
Expand Down Expand Up @@ -75,7 +75,7 @@ public TaskExecutorBuilder taskExecutorBuilder(TaskExecutionProperties propertie

@Lazy
@Bean(name = { APPLICATION_TASK_EXECUTOR_BEAN_NAME,
AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME })
AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME })
@ConditionalOnMissingBean(Executor.class)
public ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder builder) {
// 修改了此处
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
/*
* Copyright 2012-2022 the original author or authors.
* 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
*
* 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
*
* https://www.apache.org/licenses/LICENSE-2.0
* 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.springframework.boot.autoconfigure.task;

import com.alipay.sofa.koupleless.common.KouplelessThreadPoolTaskScheduler;
Expand Down Expand Up @@ -49,7 +49,8 @@ public class TaskSchedulingAutoConfiguration {

@Bean
@ConditionalOnBean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)
@ConditionalOnMissingBean({ SchedulingConfigurer.class, TaskScheduler.class, ScheduledExecutorService.class })
@ConditionalOnMissingBean({ SchedulingConfigurer.class, TaskScheduler.class,
ScheduledExecutorService.class })
public ThreadPoolTaskScheduler taskScheduler(TaskSchedulerBuilder builder) {
return builder.configure(new KouplelessThreadPoolTaskScheduler());
}
Expand Down
43 changes: 43 additions & 0 deletions koupleless-adapter-executorservice-spring-2.3-2.6/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-adapter</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>koupleless-adapter-executorservice-spring-2.3-2.6</artifactId>

<properties>
<spring.boot.version>2.3.5.RELEASE</spring.boot.version>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring.boot.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring.boot.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-base-plugin</artifactId>
<version>${revision}</version>
<scope>provided</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* 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.
*/
package com.alipay.sofa.koupleless.common;

import com.alipay.sofa.koupleless.common.util.ClassUtil;
import com.alipay.sofa.koupleless.plugin.concurrent.KouplelessExecutorService;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadFactory;

/**
* @author lianglipeng.llp@alibaba-inc.com
* @version $Id: KouplelessThreadPoolTaskExecutor.java, v 0.1 2024年05月13日 20:51 立蓬 Exp $
*/
public class KouplelessThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {

@Override
protected ExecutorService initializeExecutor(ThreadFactory threadFactory,
RejectedExecutionHandler rejectedExecutionHandler) {

ExecutorService executorService = super.initializeExecutor(threadFactory,
rejectedExecutionHandler);
KouplelessExecutorService executor = new KouplelessExecutorService(executorService);
ClassUtil.setField("threadPoolExecutor", this, executor);
return executor;
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
/*
* Copyright 2012-2019 the original author or authors.
* 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
*
* 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
*
* https://www.apache.org/licenses/LICENSE-2.0
* 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.springframework.boot.autoconfigure.task;

import com.alipay.sofa.koupleless.common.KouplelessThreadPoolTaskExecutor;
Expand Down Expand Up @@ -75,7 +75,7 @@ public TaskExecutorBuilder taskExecutorBuilder(TaskExecutionProperties propertie

@Lazy
@Bean(name = { APPLICATION_TASK_EXECUTOR_BEAN_NAME,
AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME })
AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME })
@ConditionalOnMissingBean(Executor.class)
public ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder builder) {
return builder.configure(new KouplelessThreadPoolTaskExecutor());
Expand Down
43 changes: 43 additions & 0 deletions koupleless-adapter-scheduler-spring-2.3-2.4.5/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-adapter</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>


<artifactId>koupleless-adapter-scheduler-spring-2.3-2.4.5</artifactId>

<properties>
<spring.boot.version>2.3.5.RELEASE</spring.boot.version>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring.boot.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring.boot.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.alipay.sofa.koupleless</groupId>
<artifactId>koupleless-base-plugin</artifactId>
<version>${revision}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Loading