Skip to content

Commit 1e2b15a

Browse files
committed
优化组件化接口通信库代码
1 parent 368d20b commit 1e2b15a

File tree

38 files changed

+240
-226
lines changed

38 files changed

+240
-226
lines changed

.idea/jarRepositories.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Blog.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@
315315
```
316316
private TypeSpec buildClass(ApiContract<ClassName> apiNameContract) {
317317
String simpleName = apiNameContract.getApi().simpleName();
318-
//获取 com.yc.api.IRouteContract 信息,也就是IRouteContract接口的路径
318+
//获取 com.yc.api.route.IRouteContract 信息,也就是IRouteContract接口的路径
319319
TypeElement typeElement = elements.getTypeElement(RouteConstants.INTERFACE_NAME_CONTRACT);
320320
ClassName className = ClassName.get(typeElement);
321321
String name = simpleName + RouteConstants.SEPARATOR + RouteConstants.CONTRACT;

Demo/src/main/java/com/yc/demo/impl/AddressImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.yc.demo.impl;
22

33

4-
import com.yc.api.RouteImpl;
4+
import com.yc.api.route.RouteImpl;
55
import com.zwwl.moduleinterface.IAddressManager;
66

77
import java.util.Random;

Demo/src/main/java/com/yc/demo/impl/UpdateImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.yc.demo.impl;
22

33

4-
import com.yc.api.RouteImpl;
4+
import com.yc.api.route.RouteImpl;
55
import com.zwwl.moduleinterface.IUpdateManager;
66

77
import java.util.Random;

Demo/src/main/java/com/yc/demo/impl/UserApiImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import android.content.Context;
44
import android.widget.Toast;
55

6-
import com.yc.api.RouteImpl;
6+
import com.yc.api.route.RouteImpl;
77
import com.zwwl.moduleinterface.IUserManager;
88

99

Share.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@
252252
```
253253
private TypeSpec buildClass(ApiContract<ClassName> apiNameContract) {
254254
String simpleName = apiNameContract.getApi().simpleName();
255-
//获取 com.yc.api.IRouteContract 信息,也就是IRouteContract接口的路径
255+
//获取 com.yc.api.route.IRouteContract 信息,也就是IRouteContract接口的路径
256256
TypeElement typeElement = elements.getTypeElement(RouteConstants.INTERFACE_NAME_CONTRACT);
257257
ClassName className = ClassName.get(typeElement);
258258
String name = simpleName + RouteConstants.SEPARATOR + RouteConstants.CONTRACT;

api-compiler/build.gradle

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
apply plugin: 'java'
2+
//迁移到jitpack
3+
apply plugin: 'com.github.dcendents.android-maven'
24

35
jar {
46
manifest {

api-compiler/src/main/java/com/yc/api/compiler/ServiceLoader.java renamed to api-compiler/src/main/java/com/yc/api/compiler/getIt/ServiceLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.getIt;
22

33
import java.util.Collections;
44
import java.util.Iterator;

api-compiler/src/main/java/com/yc/api/compiler/ServiceRegistry.java renamed to api-compiler/src/main/java/com/yc/api/compiler/getIt/ServiceRegistry.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.getIt;
22

33
import java.util.Set;
44

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.getIt;
22

33
import com.google.auto.service.AutoService;
44
import com.squareup.javapoet.ClassName;
@@ -7,7 +7,7 @@
77
import com.squareup.javapoet.MethodSpec;
88
import com.squareup.javapoet.TypeName;
99
import com.squareup.javapoet.TypeSpec;
10-
import com.yc.api.ServiceProviderInterface;
10+
import com.yc.api.getIt.ServiceProviderInterface;
1111

1212
import java.io.IOException;
1313
import java.util.Collections;
@@ -30,7 +30,7 @@
3030

3131

3232
@AutoService(Processor.class)
33-
public class ServiceProviderInterfaceProcessor extends AbstractProcessor {
33+
public class SpiProcessor extends AbstractProcessor {
3434

3535
private Elements utils;
3636

api-compiler/src/main/java/com/yc/api/compiler/ElementTool.java renamed to api-compiler/src/main/java/com/yc/api/compiler/route/ElementTool.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.route;
22

33
import com.squareup.javapoet.ClassName;
44

api-compiler/src/main/java/com/yc/api/compiler/MyAnAnnotationValueVisitor.java renamed to api-compiler/src/main/java/com/yc/api/compiler/route/MyAnAnnotationValueVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.route;
22

33
import javax.lang.model.type.TypeMirror;
44
import javax.lang.model.util.SimpleAnnotationValueVisitor8;

api-compiler/src/main/java/com/yc/api/compiler/RouteContract.java renamed to api-compiler/src/main/java/com/yc/api/compiler/route/RouteContract.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.route;
22

33
public class RouteContract<T> {
44

api-compiler/src/main/java/com/yc/api/compiler/RouteImplProcessor.java renamed to api-compiler/src/main/java/com/yc/api/compiler/route/RouteImplProcessor.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package com.yc.api.compiler;
1+
package com.yc.api.compiler.route;
22

33
import com.google.auto.service.AutoService;
44
import com.squareup.javapoet.ClassName;
55
import com.squareup.javapoet.JavaFile;
66
import com.squareup.javapoet.MethodSpec;
77
import com.squareup.javapoet.ParameterSpec;
88
import com.squareup.javapoet.TypeSpec;
9-
import com.yc.api.RouteConstants;
10-
import com.yc.api.RouteImpl;
9+
import com.yc.api.route.RouteConstants;
10+
import com.yc.api.route.RouteImpl;
1111

1212
import java.io.IOException;
1313
import java.util.Set;
@@ -84,7 +84,7 @@ public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnv
8484
Set<? extends Element> annotated = roundEnvironment.getElementsAnnotatedWith(typeElement);
8585
for (Element apiImplElement : annotated) {
8686
//被 RouteImpl 注解的节点集合
87-
//注意断点打印:@com.yc.api.RouteImpl(value=com.zwwl.moduleinterface.IShowDialogManager)
87+
//注意断点打印:@com.yc.api.route.RouteImpl(value=com.zwwl.moduleinterface.IShowDialogManager)
8888
RouteImpl annotation = apiImplElement.getAnnotation(RouteImpl.class);
8989
if (annotation == null || !(apiImplElement instanceof TypeElement)) {
9090
continue;
@@ -124,7 +124,7 @@ private TypeSpec buildClass(RouteContract<ClassName> apiNameContract) {
124124
//注意断点打印:IShowDialogManager
125125
System.out.println("RouteImplProcessor--------buildClass-------simpleName---"+simpleName);
126126
}
127-
//获取 com.yc.api.IRouteContract 信息,也就是IRouteContract接口的路径
127+
//获取 com.yc.api.route.IRouteContract 信息,也就是IRouteContract接口的路径
128128
TypeElement typeElement = elements.getTypeElement(RouteConstants.INTERFACE_NAME_CONTRACT);
129129
ClassName className = ClassName.get(typeElement);
130130
if (RouteConstants.LOG){
@@ -175,7 +175,7 @@ private MethodSpec buildMethod(RouteContract<ClassName> apiNameContract) {
175175
}
176176

177177
private ParameterSpec buildParameterSpec() {
178-
//获取 com.yc.api.IRegister 信息,也就是IRegister接口的路径
178+
//获取 com.yc.api.route.IRegister 信息,也就是IRegister接口的路径
179179
TypeElement typeElement = elements.getTypeElement(RouteConstants.INTERFACE_TYPE_REGISTER);
180180
ClassName className = ClassName.get(typeElement);
181181
if (RouteConstants.LOG){

api-manager/src/main/java/com/yc/api/ServiceProvider.java renamed to api-manager/src/main/java/com/yc/api/getIt/ServiceProvider.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.getIt;
22

33
import java.lang.annotation.ElementType;
44
import java.lang.annotation.Retention;

api-manager/src/main/java/com/yc/api/ServiceProviderInterface.java renamed to api-manager/src/main/java/com/yc/api/getIt/ServiceProviderInterface.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.getIt;
22

33
import java.lang.annotation.ElementType;
44
import java.lang.annotation.Retention;

api-manager/src/main/java/com/yc/api/IRegister.java renamed to api-manager/src/main/java/com/yc/api/route/IRegister.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
/**
44
* <pre>

api-manager/src/main/java/com/yc/api/IRoute.java renamed to api-manager/src/main/java/com/yc/api/route/IRoute.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
/**
44
* <pre>

api-manager/src/main/java/com/yc/api/IRouteContract.java renamed to api-manager/src/main/java/com/yc/api/route/IRouteContract.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
/**
44
* <pre>

api-manager/src/main/java/com/yc/api/RouteConstants.java renamed to api-manager/src/main/java/com/yc/api/route/RouteConstants.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
/**
44
* <pre>
@@ -12,11 +12,11 @@
1212
public final class RouteConstants {
1313
public static final String SEPARATOR = "$$";
1414
public static final String CONTRACT = "Contract";
15-
public static final String INTERFACE_TYPE_REGISTER = "com.yc.api.IRegister";
15+
public static final String INTERFACE_TYPE_REGISTER = "com.yc.api.route.IRegister";
1616
public static final String INSTANCE_NAME_REGISTER = "register";
1717
public static final String METHOD_NAME_REGISTER = "register";
1818
public static final String PACKAGE_NAME_CONTRACT = "com.yc.api.contract";
19-
public static final String INTERFACE_NAME_CONTRACT = "com.yc.api.IRouteContract";
20-
public static final String INTERFACE_NAME_ROUTE_IMPL = "com.yc.api.RouteImpl";
19+
public static final String INTERFACE_NAME_CONTRACT = "com.yc.api.route.IRouteContract";
20+
public static final String INTERFACE_NAME_ROUTE_IMPL = "com.yc.api.route.RouteImpl";
2121
public static final boolean LOG = true;
2222
}

api-manager/src/main/java/com/yc/api/RouteImpl.java renamed to api-manager/src/main/java/com/yc/api/route/RouteImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
import java.lang.annotation.ElementType;
44
import java.lang.annotation.Retention;

api-manager/src/main/java/com/yc/api/TransferManager.java renamed to api-manager/src/main/java/com/yc/api/route/TransferManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yc.api;
1+
package com.yc.api.route;
22

33
import java.lang.reflect.Constructor;
44
import java.lang.reflect.InvocationHandler;

api-plugin/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88

99
apply plugin: 'java'
1010
apply plugin: 'groovy'
11-
apply plugin: 'maven'
11+
apply plugin: 'com.github.dcendents.android-maven'
1212

1313
sourceCompatibility = "1.8"
1414
targetCompatibility = "1.8"
+8-5
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import org.gradle.api.Project
66
import org.gradle.api.tasks.compile.JavaCompile
77

88

9-
class ServiceProviderInterfacePlugin implements Plugin<Project> {
9+
class SpiPlugin implements Plugin<Project> {
10+
1011

1112
@Override
1213
void apply(final Project project) {
1314
project.afterEvaluate {
1415
try {
15-
if (!project.plugins.hasPlugin(Class.forName('com.android.build.gradle.AppPlugin'))) {
16+
Class aClass = Class.forName('com.android.build.gradle.AppPlugin')
17+
if (!project.plugins.hasPlugin(aClass)) {
1618
return;
1719
}
1820
} catch (final ClassNotFoundException e) {
@@ -23,9 +25,10 @@ class ServiceProviderInterfacePlugin implements Plugin<Project> {
2325
def spiSourceDir = project.file("${project.buildDir}/intermediates/spi/${variant.dirName}/src")
2426
def spiServicesDir = project.file("${project.buildDir}/intermediates/spi/${variant.dirName}/services")
2527
def spiClasspath = project.files(project.android.bootClasspath, variant.javaCompile.classpath, variant.javaCompile.destinationDir)
26-
27-
def generateTask = project.task(
28-
"generateServiceRegistry${variant.name.capitalize()}",
28+
print("SpiPlugin , spiSourceDir : " + spiSourceDir)
29+
print("SpiPlugin , spiServicesDir : " + spiServicesDir)
30+
print("SpiPlugin , spiClasspath : " + spiClasspath)
31+
def generateTask = project.task("generateServiceRegistry${variant.name.capitalize()}",
2932
type: ServiceRegistryGenerationTask) {
3033
description = "Generate ServiceRegistry for ${variant.name.capitalize()}"
3134
classpath += spiClasspath

0 commit comments

Comments
 (0)