Skip to content

Commit c38f31d

Browse files
committed
feat: msg support custom
1 parent c2b4c04 commit c38f31d

File tree

7 files changed

+66
-26
lines changed

7 files changed

+66
-26
lines changed

tuya-messaging/src/main/java/com/tuya/connector/open/messaging/autoconfig/EnableMessaging.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
@Retention(RetentionPolicy.RUNTIME)
1111
@Target(ElementType.TYPE)
12-
@Import(MessageAutoConfiguration.class)
12+
@Import({MessageScanRegister.class, MessageAutoConfiguration.class})
1313
public @interface EnableMessaging {
1414
String[] msgPaths() default {};
1515
}

tuya-messaging/src/main/java/com/tuya/connector/open/messaging/autoconfig/MessageAutoConfiguration.java

+1-22
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
package com.tuya.connector.open.messaging.autoconfig;
22

3-
import com.tuya.connector.open.messaging.MessageRegister;
43
import com.tuya.connector.open.messaging.TuyaMessageDispatcher;
54
import lombok.extern.slf4j.Slf4j;
6-
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
75
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
86
import org.springframework.boot.context.properties.EnableConfigurationProperties;
97
import org.springframework.context.annotation.Bean;
108
import org.springframework.context.annotation.Configuration;
11-
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
12-
import org.springframework.core.annotation.AnnotationAttributes;
13-
import org.springframework.core.type.AnnotationMetadata;
149
import org.springframework.util.StringUtils;
1510

16-
import java.util.HashSet;
17-
import java.util.Set;
18-
1911
/**
2012
* <p> TODO
2113
*
@@ -26,7 +18,7 @@
2618
@Slf4j
2719
@Configuration
2820
@EnableConfigurationProperties(MessageProperties.class)
29-
public class MessageAutoConfiguration implements ImportBeanDefinitionRegistrar {
21+
public class MessageAutoConfiguration {
3022

3123
private final MessageProperties messageProperties;
3224

@@ -61,17 +53,4 @@ public TuyaMessageDataSource tuyaMessageDataSource() {
6153
messageProperties.getSubNameSuffix()
6254
);
6355
}
64-
65-
@Override
66-
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
67-
AnnotationAttributes attributes = AnnotationAttributes.fromMap(annotationMetadata.getAnnotationAttributes(EnableMessaging.class.getName()));
68-
Set<String> pkgPaths = new HashSet<>();
69-
if (attributes != null) {
70-
String[] paths = attributes.getStringArray("msgPaths");
71-
for (String path : paths) {
72-
pkgPaths.add(path);
73-
}
74-
}
75-
MessageRegister.init(pkgPaths);
76-
}
7756
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.tuya.connector.open.messaging.autoconfig;
2+
3+
import com.tuya.connector.open.messaging.MessageRegister;
4+
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
5+
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
6+
import org.springframework.core.annotation.AnnotationAttributes;
7+
import org.springframework.core.type.AnnotationMetadata;
8+
9+
import java.util.Arrays;
10+
import java.util.HashSet;
11+
import java.util.Set;
12+
13+
public class MessageScanRegister implements ImportBeanDefinitionRegistrar {
14+
@Override
15+
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
16+
AnnotationAttributes attributes = AnnotationAttributes.fromMap(annotationMetadata.getAnnotationAttributes(EnableMessaging.class.getName()));
17+
Set<String> pkgPaths = new HashSet<>();
18+
if (attributes != null) {
19+
String[] paths = attributes.getStringArray("msgPaths");
20+
pkgPaths.addAll(Arrays.asList(paths));
21+
}
22+
MessageRegister.init(pkgPaths);
23+
}
24+
}

tuya-spring-boot-starter-sample/src/main/java/com/tuya/open/spring/boot/sample/TuyaSpringBootStarterSampleApplication.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.springframework.boot.autoconfigure.SpringBootApplication;
77

88
@ConnectorScan(basePackages = "com.tuya.open.spring.boot.sample.ability.api")
9-
@EnableMessaging
9+
@EnableMessaging(msgPaths = {"com.tuya.open.spring.boot.sample.ability.messaging.msg"})
1010
@SpringBootApplication
1111
public class TuyaSpringBootStarterSampleApplication {
1212

tuya-spring-boot-starter-sample/src/main/java/com/tuya/open/spring/boot/sample/ability/messaging/TuyaMessageListener.java

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.tuya.connector.open.messaging.event.NameUpdateMessage;
44
import com.tuya.connector.open.messaging.event.StatusReportMessage;
5+
import com.tuya.open.spring.boot.sample.ability.messaging.msg.DeviceNameUpdate;
56
import lombok.extern.slf4j.Slf4j;
67
import org.springframework.context.event.EventListener;
78
import org.springframework.stereotype.Component;
@@ -26,4 +27,9 @@ public void nameUpdateMessage(NameUpdateMessage message) {
2627
log.info("NameUpdate event happened: {}", message);
2728
}
2829

30+
@EventListener
31+
public void deviceNameUpdateMsg(DeviceNameUpdate message) {
32+
log.info("deviceNameUpdateMsg event happened: {}", message);
33+
}
34+
2935
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.tuya.open.spring.boot.sample.ability.messaging.msg;
2+
3+
import com.alibaba.fastjson.JSONObject;
4+
import com.tuya.connector.open.messaging.SourceMessage;
5+
import com.tuya.connector.open.messaging.event.BaseTuyaMessage;
6+
import lombok.Getter;
7+
8+
@Getter
9+
public class DeviceNameUpdate extends BaseTuyaMessage {
10+
11+
private String devId;
12+
private String produceId;
13+
private String uid;
14+
private String name;
15+
private String uuid;
16+
17+
@Override
18+
public void defaultBuild(SourceMessage sourceMessage, JSONObject messageBody) {
19+
super.defaultBuild(sourceMessage, messageBody);
20+
this.devId = messageBody.getString("devId");
21+
this.produceId = messageBody.getString("produceId");
22+
this.uid = messageBody.getString("uid");
23+
this.name = messageBody.getString("name");
24+
this.uuid = messageBody.getString("uuid");
25+
}
26+
27+
@Override
28+
public String type() {
29+
return "deviceNameUpdate";
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
connector.ak=stehdkw4navw5mwagh4d
2-
connector.sk=fdc94f366dad4acc926a730551080665
1+
connector.ak=
2+
connector.sk=

0 commit comments

Comments
 (0)