├── .gitignore ├── .travis.yml ├── README.md ├── README_CH.md ├── client-samples ├── Dockerfile ├── pom.xml └── src │ ├── assembly │ └── assembly.xml │ ├── main │ ├── bin │ │ ├── start-docker.sh │ │ └── wait-for-it.sh │ └── java │ │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── client │ │ ├── sample │ │ ├── MyClient.java │ │ └── MyClientApplication.java │ │ └── test │ │ ├── TestClient.java │ │ └── TestClientApplication.java │ └── resources │ └── logback.xml ├── client ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── client │ │ ├── ClientModule.java │ │ ├── ClientRestServiceProvider.java │ │ ├── ImClient.java │ │ ├── api │ │ ├── ChatApi.java │ │ ├── ClientMsgListener.java │ │ └── UserApi.java │ │ ├── context │ │ ├── RelationCache.java │ │ ├── UserContext.java │ │ └── impl │ │ │ └── MemoryRelationCache.java │ │ ├── domain │ │ ├── Friend.java │ │ ├── RelationReq.java │ │ └── UserReq.java │ │ ├── handler │ │ ├── ClientConnectorHandler.java │ │ └── code │ │ │ ├── AesDecoder.java │ │ │ └── AesEncoder.java │ │ └── service │ │ ├── ClientRestClient.java │ │ └── ClientRestService.java │ └── test │ ├── groovy │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── client │ │ └── test │ │ ├── ClientConnectorTest.groovy │ │ └── RelationCacheTest.groovy │ └── resources │ └── logback-test.xml ├── common ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── common │ │ ├── code │ │ ├── MsgDecoder.java │ │ └── MsgEncoder.java │ │ ├── domain │ │ ├── ResponseCollector.java │ │ ├── ResultWrapper.java │ │ ├── UserInfo.java │ │ ├── ack │ │ │ ├── ClientAckWindow.java │ │ │ ├── ProcessMsgNode.java │ │ │ └── ServerAckWindow.java │ │ ├── conn │ │ │ ├── AbstractConn.java │ │ │ ├── Conn.java │ │ │ ├── ConnContext.java │ │ │ ├── ConnectorConn.java │ │ │ └── MemoryConnContext.java │ │ ├── constant │ │ │ ├── ImConstant.java │ │ │ └── MsgVersion.java │ │ └── po │ │ │ ├── DbModel.java │ │ │ ├── Offline.java │ │ │ ├── Relation.java │ │ │ ├── RelationDetail.java │ │ │ └── User.java │ │ ├── exception │ │ └── ImException.java │ │ ├── function │ │ └── ImBiConsumer.java │ │ ├── parse │ │ ├── AbstractByEnumParser.java │ │ ├── AbstractMsgParser.java │ │ ├── AckParser.java │ │ ├── InternalParser.java │ │ └── ParseService.java │ │ ├── rest │ │ └── AbstractRestService.java │ │ └── util │ │ ├── Encryption.java │ │ ├── IdWorker.java │ │ └── SnowFlake.java │ └── test │ ├── groovy │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── common │ │ └── test │ │ ├── ClientAckWindowTest.groovy │ │ ├── ConnContextTest.groovy │ │ ├── EncryptionTest.groovy │ │ ├── ResponseCollectorTest.groovy │ │ └── ServerAckWindowTest.groovy │ └── resources │ └── logback-test.xml ├── connector ├── Dockerfile ├── pom.xml └── src │ ├── assembly │ └── assembly.xml │ ├── main │ ├── bin │ │ ├── start-docker.sh │ │ └── wait-for-it.sh │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── yuanrw │ │ │ └── im │ │ │ └── connector │ │ │ ├── config │ │ │ ├── ConnectorConfig.java │ │ │ ├── ConnectorModule.java │ │ │ └── ConnectorRestServiceFactory.java │ │ │ ├── domain │ │ │ ├── ClientConn.java │ │ │ └── ClientConnContext.java │ │ │ ├── handler │ │ │ ├── ConnectorClientHandler.java │ │ │ └── ConnectorTransferHandler.java │ │ │ ├── service │ │ │ ├── ConnectorToClientService.java │ │ │ ├── OfflineService.java │ │ │ ├── UserOnlineService.java │ │ │ └── rest │ │ │ │ ├── ConnectorRestClient.java │ │ │ │ └── ConnectorRestService.java │ │ │ └── start │ │ │ ├── ConnectorClient.java │ │ │ ├── ConnectorServer.java │ │ │ └── ConnectorStarter.java │ └── resources │ │ ├── connector-docker.properties │ │ ├── connector.properties │ │ └── logback.xml │ └── test │ ├── groovy │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── connector │ │ ├── ClientConnContextTest.groovy │ │ ├── ConnectorClientTest.groovy │ │ └── ConnectorTransferTest.groovy │ └── resources │ └── logback-test.xml ├── docker ├── docker-compose.yml └── sql │ └── client-sample-quick-start.sql ├── mvnw ├── mvnw.cmd ├── pic └── im-structure.png ├── pom.xml ├── protobuf ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── protobuf │ │ ├── constant │ │ └── MsgTypeEnum.java │ │ └── generate │ │ ├── Ack.java │ │ ├── Chat.java │ │ └── Internal.java │ └── resources │ └── proto │ ├── ack.proto │ ├── chat.proto │ └── internal.proto ├── rest ├── pom.xml ├── rest-spi │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── rest │ │ └── spi │ │ ├── UserSpi.java │ │ └── domain │ │ ├── LdapUser.java │ │ └── UserBase.java └── rest-web │ ├── Dockerfile │ ├── pom.xml │ └── src │ ├── assembly │ └── assembly.xml │ ├── main │ ├── bin │ │ ├── start-docker.sh │ │ └── wait-for-it.sh │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── yuanrw │ │ │ └── im │ │ │ └── rest │ │ │ └── web │ │ │ ├── RestStarter.java │ │ │ ├── config │ │ │ └── RestConfig.java │ │ │ ├── filter │ │ │ ├── GlobalErrorAttributes.java │ │ │ ├── GlobalErrorWebExceptionHandler.java │ │ │ ├── HeaderFilter.java │ │ │ └── TokenManager.java │ │ │ ├── handler │ │ │ ├── OfflineHandler.java │ │ │ ├── RelationHandler.java │ │ │ ├── UserHandler.java │ │ │ └── ValidHandler.java │ │ │ ├── mapper │ │ │ ├── OfflineMapper.java │ │ │ ├── RelationMapper.java │ │ │ └── UserMapper.java │ │ │ ├── router │ │ │ └── RestRouter.java │ │ │ ├── service │ │ │ ├── OfflineService.java │ │ │ ├── RelationService.java │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ │ ├── OfflineServiceImpl.java │ │ │ │ ├── RelationServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ ├── spi │ │ │ ├── SpiFactory.java │ │ │ └── impl │ │ │ │ ├── DefaultUserSpiImpl.java │ │ │ │ └── LdapUserSpiImpl.java │ │ │ ├── task │ │ │ ├── CleanOfflineMsgTask.java │ │ │ └── OfflineListen.java │ │ │ └── vo │ │ │ ├── RelationReq.java │ │ │ └── UserReq.java │ └── resources │ │ ├── application-docker.properties │ │ ├── application.properties │ │ ├── logback-spring.xml │ │ ├── mapper │ │ ├── OfflineMapper.xml │ │ └── RelationMapper.xml │ │ └── rest.sql │ └── test │ ├── java │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── rest │ │ └── web │ │ └── test │ │ ├── OfflineTest.java │ │ ├── RelationTest.java │ │ └── UserTest.java │ └── resources │ ├── application.properties │ ├── logback-test.xml │ └── rest-test.sql ├── transfer ├── Dockerfile ├── pom.xml └── src │ ├── assembly │ └── assembly.xml │ ├── main │ ├── bin │ │ ├── start-docker.sh │ │ └── wait-for-it.sh │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── yuanrw │ │ │ └── im │ │ │ └── transfer │ │ │ ├── config │ │ │ ├── TransferConfig.java │ │ │ └── TransferModule.java │ │ │ ├── domain │ │ │ └── ConnectorConnContext.java │ │ │ ├── handler │ │ │ └── TransferConnectorHandler.java │ │ │ ├── service │ │ │ └── TransferService.java │ │ │ └── start │ │ │ ├── TransferMqProducer.java │ │ │ ├── TransferServer.java │ │ │ └── TransferStarter.java │ └── resources │ │ ├── logback.xml │ │ ├── transfer-docker.properties │ │ └── transfer.properties │ └── test │ ├── groovy │ └── com │ │ └── github │ │ └── yuanrw │ │ └── im │ │ └── transfer │ │ └── TransferConnectorTest.groovy │ └── resources │ └── logback-test.xml └── user-status ├── pom.xml └── src ├── main └── java │ └── com │ └── github │ └── yuanrw │ └── im │ └── user │ └── status │ ├── factory │ └── UserStatusServiceFactory.java │ └── service │ ├── UserStatusService.java │ └── impl │ ├── MemoryUserStatusServiceImpl.java │ └── RedisUserStatusServiceImpl.java └── test └── resources └── logback-test.xml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/.travis.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/README.md -------------------------------------------------------------------------------- /README_CH.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/README_CH.md -------------------------------------------------------------------------------- /client-samples/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/Dockerfile -------------------------------------------------------------------------------- /client-samples/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/pom.xml -------------------------------------------------------------------------------- /client-samples/src/assembly/assembly.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/assembly/assembly.xml -------------------------------------------------------------------------------- /client-samples/src/main/bin/start-docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/bin/start-docker.sh -------------------------------------------------------------------------------- /client-samples/src/main/bin/wait-for-it.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/bin/wait-for-it.sh -------------------------------------------------------------------------------- /client-samples/src/main/java/com/github/yuanrw/im/client/sample/MyClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/java/com/github/yuanrw/im/client/sample/MyClient.java -------------------------------------------------------------------------------- /client-samples/src/main/java/com/github/yuanrw/im/client/sample/MyClientApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/java/com/github/yuanrw/im/client/sample/MyClientApplication.java -------------------------------------------------------------------------------- /client-samples/src/main/java/com/github/yuanrw/im/client/test/TestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/java/com/github/yuanrw/im/client/test/TestClient.java -------------------------------------------------------------------------------- /client-samples/src/main/java/com/github/yuanrw/im/client/test/TestClientApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/main/java/com/github/yuanrw/im/client/test/TestClientApplication.java -------------------------------------------------------------------------------- /client-samples/src/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client-samples/src/resources/logback.xml -------------------------------------------------------------------------------- /client/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/pom.xml -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/ClientModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/ClientModule.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/ClientRestServiceProvider.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/ClientRestServiceProvider.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/ImClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/ImClient.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/api/ChatApi.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/api/ChatApi.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/api/ClientMsgListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/api/ClientMsgListener.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/api/UserApi.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/api/UserApi.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/context/RelationCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/context/RelationCache.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/context/UserContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/context/UserContext.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/context/impl/MemoryRelationCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/context/impl/MemoryRelationCache.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/domain/Friend.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/domain/Friend.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/domain/RelationReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/domain/RelationReq.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/domain/UserReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/domain/UserReq.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/handler/ClientConnectorHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/handler/ClientConnectorHandler.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/handler/code/AesDecoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/handler/code/AesDecoder.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/handler/code/AesEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/handler/code/AesEncoder.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/service/ClientRestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/service/ClientRestClient.java -------------------------------------------------------------------------------- /client/src/main/java/com/github/yuanrw/im/client/service/ClientRestService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/main/java/com/github/yuanrw/im/client/service/ClientRestService.java -------------------------------------------------------------------------------- /client/src/test/groovy/com/github/yuanrw/im/client/test/ClientConnectorTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/test/groovy/com/github/yuanrw/im/client/test/ClientConnectorTest.groovy -------------------------------------------------------------------------------- /client/src/test/groovy/com/github/yuanrw/im/client/test/RelationCacheTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/test/groovy/com/github/yuanrw/im/client/test/RelationCacheTest.groovy -------------------------------------------------------------------------------- /client/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/client/src/test/resources/logback-test.xml -------------------------------------------------------------------------------- /common/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/pom.xml -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/code/MsgDecoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/code/MsgDecoder.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/code/MsgEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/code/MsgEncoder.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/ResponseCollector.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/ResponseCollector.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/ResultWrapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/ResultWrapper.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/UserInfo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/UserInfo.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/ack/ClientAckWindow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/ack/ClientAckWindow.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/ack/ProcessMsgNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/ack/ProcessMsgNode.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/ack/ServerAckWindow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/ack/ServerAckWindow.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/conn/AbstractConn.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/conn/AbstractConn.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/conn/Conn.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/conn/Conn.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/conn/ConnContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/conn/ConnContext.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/conn/ConnectorConn.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/conn/ConnectorConn.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/conn/MemoryConnContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/conn/MemoryConnContext.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/constant/ImConstant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/constant/ImConstant.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/constant/MsgVersion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/constant/MsgVersion.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/po/DbModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/po/DbModel.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/po/Offline.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/po/Offline.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/po/Relation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/po/Relation.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/po/RelationDetail.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/po/RelationDetail.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/domain/po/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/domain/po/User.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/exception/ImException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/exception/ImException.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/function/ImBiConsumer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/function/ImBiConsumer.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/parse/AbstractByEnumParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/parse/AbstractByEnumParser.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/parse/AbstractMsgParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/parse/AbstractMsgParser.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/parse/AckParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/parse/AckParser.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/parse/InternalParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/parse/InternalParser.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/parse/ParseService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/parse/ParseService.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/rest/AbstractRestService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/rest/AbstractRestService.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/util/Encryption.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/util/Encryption.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/util/IdWorker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/util/IdWorker.java -------------------------------------------------------------------------------- /common/src/main/java/com/github/yuanrw/im/common/util/SnowFlake.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/main/java/com/github/yuanrw/im/common/util/SnowFlake.java -------------------------------------------------------------------------------- /common/src/test/groovy/com/github/yuanrw/im/common/test/ClientAckWindowTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/groovy/com/github/yuanrw/im/common/test/ClientAckWindowTest.groovy -------------------------------------------------------------------------------- /common/src/test/groovy/com/github/yuanrw/im/common/test/ConnContextTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/groovy/com/github/yuanrw/im/common/test/ConnContextTest.groovy -------------------------------------------------------------------------------- /common/src/test/groovy/com/github/yuanrw/im/common/test/EncryptionTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/groovy/com/github/yuanrw/im/common/test/EncryptionTest.groovy -------------------------------------------------------------------------------- /common/src/test/groovy/com/github/yuanrw/im/common/test/ResponseCollectorTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/groovy/com/github/yuanrw/im/common/test/ResponseCollectorTest.groovy -------------------------------------------------------------------------------- /common/src/test/groovy/com/github/yuanrw/im/common/test/ServerAckWindowTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/groovy/com/github/yuanrw/im/common/test/ServerAckWindowTest.groovy -------------------------------------------------------------------------------- /common/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/common/src/test/resources/logback-test.xml -------------------------------------------------------------------------------- /connector/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/Dockerfile -------------------------------------------------------------------------------- /connector/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/pom.xml -------------------------------------------------------------------------------- /connector/src/assembly/assembly.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/assembly/assembly.xml -------------------------------------------------------------------------------- /connector/src/main/bin/start-docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/bin/start-docker.sh -------------------------------------------------------------------------------- /connector/src/main/bin/wait-for-it.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/bin/wait-for-it.sh -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorConfig.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorModule.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorRestServiceFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/config/ConnectorRestServiceFactory.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/domain/ClientConn.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/domain/ClientConn.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/domain/ClientConnContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/domain/ClientConnContext.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/handler/ConnectorClientHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/handler/ConnectorClientHandler.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/handler/ConnectorTransferHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/handler/ConnectorTransferHandler.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/service/ConnectorToClientService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/service/ConnectorToClientService.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/service/OfflineService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/service/OfflineService.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/service/UserOnlineService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/service/UserOnlineService.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/service/rest/ConnectorRestClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/service/rest/ConnectorRestClient.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/service/rest/ConnectorRestService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/service/rest/ConnectorRestService.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorClient.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorServer.java -------------------------------------------------------------------------------- /connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorStarter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/java/com/github/yuanrw/im/connector/start/ConnectorStarter.java -------------------------------------------------------------------------------- /connector/src/main/resources/connector-docker.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/resources/connector-docker.properties -------------------------------------------------------------------------------- /connector/src/main/resources/connector.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/resources/connector.properties -------------------------------------------------------------------------------- /connector/src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/main/resources/logback.xml -------------------------------------------------------------------------------- /connector/src/test/groovy/com/github/yuanrw/im/connector/ClientConnContextTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/test/groovy/com/github/yuanrw/im/connector/ClientConnContextTest.groovy -------------------------------------------------------------------------------- /connector/src/test/groovy/com/github/yuanrw/im/connector/ConnectorClientTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/test/groovy/com/github/yuanrw/im/connector/ConnectorClientTest.groovy -------------------------------------------------------------------------------- /connector/src/test/groovy/com/github/yuanrw/im/connector/ConnectorTransferTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/test/groovy/com/github/yuanrw/im/connector/ConnectorTransferTest.groovy -------------------------------------------------------------------------------- /connector/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/connector/src/test/resources/logback-test.xml -------------------------------------------------------------------------------- /docker/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/docker/docker-compose.yml -------------------------------------------------------------------------------- /docker/sql/client-sample-quick-start.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/docker/sql/client-sample-quick-start.sql -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pic/im-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/pic/im-structure.png -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/pom.xml -------------------------------------------------------------------------------- /protobuf/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/pom.xml -------------------------------------------------------------------------------- /protobuf/src/main/java/com/github/yuanrw/im/protobuf/constant/MsgTypeEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/java/com/github/yuanrw/im/protobuf/constant/MsgTypeEnum.java -------------------------------------------------------------------------------- /protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Ack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Ack.java -------------------------------------------------------------------------------- /protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Chat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Chat.java -------------------------------------------------------------------------------- /protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Internal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/java/com/github/yuanrw/im/protobuf/generate/Internal.java -------------------------------------------------------------------------------- /protobuf/src/main/resources/proto/ack.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/resources/proto/ack.proto -------------------------------------------------------------------------------- /protobuf/src/main/resources/proto/chat.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/resources/proto/chat.proto -------------------------------------------------------------------------------- /protobuf/src/main/resources/proto/internal.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/protobuf/src/main/resources/proto/internal.proto -------------------------------------------------------------------------------- /rest/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/pom.xml -------------------------------------------------------------------------------- /rest/rest-spi/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-spi/pom.xml -------------------------------------------------------------------------------- /rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/UserSpi.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/UserSpi.java -------------------------------------------------------------------------------- /rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/domain/LdapUser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/domain/LdapUser.java -------------------------------------------------------------------------------- /rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/domain/UserBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-spi/src/main/java/com/github/yuanrw/im/rest/spi/domain/UserBase.java -------------------------------------------------------------------------------- /rest/rest-web/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/Dockerfile -------------------------------------------------------------------------------- /rest/rest-web/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/pom.xml -------------------------------------------------------------------------------- /rest/rest-web/src/assembly/assembly.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/assembly/assembly.xml -------------------------------------------------------------------------------- /rest/rest-web/src/main/bin/start-docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/bin/start-docker.sh -------------------------------------------------------------------------------- /rest/rest-web/src/main/bin/wait-for-it.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/bin/wait-for-it.sh -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/RestStarter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/RestStarter.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/config/RestConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/config/RestConfig.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/GlobalErrorAttributes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/GlobalErrorAttributes.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/GlobalErrorWebExceptionHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/GlobalErrorWebExceptionHandler.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/HeaderFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/HeaderFilter.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/TokenManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/filter/TokenManager.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/OfflineHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/OfflineHandler.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/RelationHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/RelationHandler.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/UserHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/UserHandler.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/ValidHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/handler/ValidHandler.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/OfflineMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/OfflineMapper.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/RelationMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/RelationMapper.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/UserMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/mapper/UserMapper.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/router/RestRouter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/router/RestRouter.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/OfflineService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/OfflineService.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/RelationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/RelationService.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/UserService.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/OfflineServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/OfflineServiceImpl.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/RelationServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/RelationServiceImpl.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/service/impl/UserServiceImpl.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/SpiFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/SpiFactory.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/impl/DefaultUserSpiImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/impl/DefaultUserSpiImpl.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/impl/LdapUserSpiImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/spi/impl/LdapUserSpiImpl.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/task/CleanOfflineMsgTask.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/task/CleanOfflineMsgTask.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/task/OfflineListen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/task/OfflineListen.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/vo/RelationReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/vo/RelationReq.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/vo/UserReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/java/com/github/yuanrw/im/rest/web/vo/UserReq.java -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/application-docker.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/application-docker.properties -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/application.properties -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/logback-spring.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/logback-spring.xml -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/mapper/OfflineMapper.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/mapper/OfflineMapper.xml -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/mapper/RelationMapper.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/mapper/RelationMapper.xml -------------------------------------------------------------------------------- /rest/rest-web/src/main/resources/rest.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/main/resources/rest.sql -------------------------------------------------------------------------------- /rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/OfflineTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/OfflineTest.java -------------------------------------------------------------------------------- /rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/RelationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/RelationTest.java -------------------------------------------------------------------------------- /rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/UserTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/java/com/github/yuanrw/im/rest/web/test/UserTest.java -------------------------------------------------------------------------------- /rest/rest-web/src/test/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/resources/application.properties -------------------------------------------------------------------------------- /rest/rest-web/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/resources/logback-test.xml -------------------------------------------------------------------------------- /rest/rest-web/src/test/resources/rest-test.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/rest/rest-web/src/test/resources/rest-test.sql -------------------------------------------------------------------------------- /transfer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/Dockerfile -------------------------------------------------------------------------------- /transfer/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/pom.xml -------------------------------------------------------------------------------- /transfer/src/assembly/assembly.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/assembly/assembly.xml -------------------------------------------------------------------------------- /transfer/src/main/bin/start-docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/bin/start-docker.sh -------------------------------------------------------------------------------- /transfer/src/main/bin/wait-for-it.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/bin/wait-for-it.sh -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/config/TransferConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/config/TransferConfig.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/config/TransferModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/config/TransferModule.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/domain/ConnectorConnContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/domain/ConnectorConnContext.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/handler/TransferConnectorHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/handler/TransferConnectorHandler.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/service/TransferService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/service/TransferService.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferMqProducer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferMqProducer.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferServer.java -------------------------------------------------------------------------------- /transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferStarter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/java/com/github/yuanrw/im/transfer/start/TransferStarter.java -------------------------------------------------------------------------------- /transfer/src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/resources/logback.xml -------------------------------------------------------------------------------- /transfer/src/main/resources/transfer-docker.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/resources/transfer-docker.properties -------------------------------------------------------------------------------- /transfer/src/main/resources/transfer.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/main/resources/transfer.properties -------------------------------------------------------------------------------- /transfer/src/test/groovy/com/github/yuanrw/im/transfer/TransferConnectorTest.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/test/groovy/com/github/yuanrw/im/transfer/TransferConnectorTest.groovy -------------------------------------------------------------------------------- /transfer/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/transfer/src/test/resources/logback-test.xml -------------------------------------------------------------------------------- /user-status/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/pom.xml -------------------------------------------------------------------------------- /user-status/src/main/java/com/github/yuanrw/im/user/status/factory/UserStatusServiceFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/src/main/java/com/github/yuanrw/im/user/status/factory/UserStatusServiceFactory.java -------------------------------------------------------------------------------- /user-status/src/main/java/com/github/yuanrw/im/user/status/service/UserStatusService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/src/main/java/com/github/yuanrw/im/user/status/service/UserStatusService.java -------------------------------------------------------------------------------- /user-status/src/main/java/com/github/yuanrw/im/user/status/service/impl/MemoryUserStatusServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/src/main/java/com/github/yuanrw/im/user/status/service/impl/MemoryUserStatusServiceImpl.java -------------------------------------------------------------------------------- /user-status/src/main/java/com/github/yuanrw/im/user/status/service/impl/RedisUserStatusServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/src/main/java/com/github/yuanrw/im/user/status/service/impl/RedisUserStatusServiceImpl.java -------------------------------------------------------------------------------- /user-status/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuanrw/IM/HEAD/user-status/src/test/resources/logback-test.xml --------------------------------------------------------------------------------