diff --git a/packages/amqp/src/adapter/admin.ts b/packages/amqp/src/adapter/admin.ts
index d032c9d4..9623029b 100644
--- a/packages/amqp/src/adapter/admin.ts
+++ b/packages/amqp/src/adapter/admin.ts
@@ -1,9 +1,12 @@
import { ConnectionFactoryAdapter } from "./connection"
import { RabbitTemplateAdapter } from "./template"
+import { JSClass } from "@ccms/container"
export const RabbitAdmin = Java.type('org.springframework.amqp.rabbit.core.RabbitAdmin')
export class RabbitAdminAdapter {
+ @JSClass('org.springframework.amqp.rabbit.core.RabbitAdmin')
+ private RabbitAdmin: org.springframework.amqp.rabbit.core.RabbitAdmin
private _Handler: org.springframework.amqp.rabbit.core.RabbitAdmin
constructor(config: RabbitTemplateAdapter | org.springframework.amqp.rabbit.core.RabbitTemplate | ConnectionFactoryAdapter | org.springframework.amqp.rabbit.connection.ConnectionFactory) {
this._Handler = new RabbitAdmin((config instanceof RabbitTemplateAdapter || config instanceof ConnectionFactoryAdapter) ? config.getHandler() : config)
diff --git a/packages/amqp/src/adapter/container.ts b/packages/amqp/src/adapter/container.ts
index a2491dd9..e2d1c7da 100644
--- a/packages/amqp/src/adapter/container.ts
+++ b/packages/amqp/src/adapter/container.ts
@@ -2,7 +2,7 @@ import { ConnectionFactoryAdapter, ConnectionFactory } from "./connection"
import { ChannelAwareMessageListenerAdapter, ChannelAwareMessageListener } from "./listener"
export const SimpleMessageListenerContainer = org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
-export const AcknowledgeMode = org.springframework.amqp.core.AcknowledgeMode
+export const AcknowledgeMode: org.springframework.amqp.core.AcknowledgeMode = Java.type('org.springframework.amqp.core.AcknowledgeMode')
interface ContainerConfig {
connectionFactory: ConnectionFactoryAdapter | typeof ConnectionFactory
queueNames: string[]
diff --git a/packages/amqp/src/admin.ts b/packages/amqp/src/admin.ts
index d60e3499..b23bc1df 100644
--- a/packages/amqp/src/admin.ts
+++ b/packages/amqp/src/admin.ts
@@ -1,8 +1,6 @@
import { JSClass } from "@ccms/container"
import { RabbitAdminAdapter, MessageListenerContainerAdapter, AcknowledgeMode, MessageHandler, ChannelAwareMessageListenerAdapter } from "./adapter"
-const RabbitAdmin = Java.type('org.springframework.amqp.rabbit.core.RabbitAdmin')
-
export class AmqpAdmin {
@JSClass('org.springframework.amqp.core.TopicExchange')
private TopicExchange: typeof org.springframework.amqp.core.TopicExchange
@@ -10,14 +8,15 @@ export class AmqpAdmin {
private Queue: typeof org.springframework.amqp.core.Queue
@JSClass('org.springframework.amqp.core.Binding')
private Binding: typeof org.springframework.amqp.core.Binding
-
+ @JSClass('org.springframework.amqp.rabbit.core.RabbitAdmin')
+ private RabbitAdmin: typeof org.springframework.amqp.rabbit.core.RabbitAdmin
@JSClass('org.springframework.amqp.core.Binding.DestinationType')
- private DestinationType: typeof org.springframework.amqp.core.Binding.DestinationType
+ private DestinationType: org.springframework.amqp.core.Binding.DestinationType
private amqpAdmin: org.springframework.amqp.rabbit.core.RabbitAdmin
constructor(amqpAdmin: org.springframework.amqp.rabbit.core.RabbitAdmin | any) {
- if (amqpAdmin instanceof RabbitAdmin) {
+ if (amqpAdmin instanceof this.RabbitAdmin) {
this.amqpAdmin = amqpAdmin
} else if (amqpAdmin instanceof RabbitAdminAdapter) {
this.amqpAdmin = amqpAdmin.getHandler()
diff --git a/packages/amqp/src/index.ts b/packages/amqp/src/index.ts
index 207ff799..03ead7ab 100644
--- a/packages/amqp/src/index.ts
+++ b/packages/amqp/src/index.ts
@@ -1,8 +1,8 @@
///
-///
-///
-///
-///
+///
+///
+///
+///
import { amqp } from '@ccms/api'
import { getContainer, reduceMetadata } from '@ccms/container'
diff --git a/packages/bukkit/src/index.ts b/packages/bukkit/src/index.ts
index bba8b13d..942f1584 100644
--- a/packages/bukkit/src/index.ts
+++ b/packages/bukkit/src/index.ts
@@ -1,4 +1,4 @@
-///
+///
import { server } from '@ccms/api'
import { Container } from '@ccms/container'
diff --git a/packages/bungee/src/index.ts b/packages/bungee/src/index.ts
index 2993b9ee..c59e0955 100644
--- a/packages/bungee/src/index.ts
+++ b/packages/bungee/src/index.ts
@@ -1,4 +1,4 @@
-///
+///
import { server } from '@ccms/api'
import { Container } from '@ccms/container'
diff --git a/packages/common/package.json b/packages/common/package.json
index 7904597f..80d03d99 100644
--- a/packages/common/package.json
+++ b/packages/common/package.json
@@ -24,7 +24,8 @@
"typescript": "^3.9.2"
},
"dependencies": {
- "@ccms/nashorn": "^0.7.0"
+ "@ccms/nashorn": "^0.7.0",
+ "@javatypes/jdk": "^1.14.0"
},
"gitHead": "562e2d00175c9d3a99c8b672aa07e6d92706a027"
}
diff --git a/packages/common/src/reflect.ts b/packages/common/src/reflect.ts
index 4b201a6b..ea58930b 100644
--- a/packages/common/src/reflect.ts
+++ b/packages/common/src/reflect.ts
@@ -1,4 +1,4 @@
-///
+///
/**
* 反射工具类
@@ -11,7 +11,7 @@ const methodCache = []
class Reflect {
private obj: java.lang.Object
- private class: java.lang.Class
+ private class: java.lang.Class
constructor(obj: any) {
// if (obj === undefined || obj === null) { throw Error(`reflect object can't be ${obj}!`) }
@@ -26,8 +26,8 @@ class Reflect {
}
}
- method(name: string, ...args: any[]) {
- return declaredMethod(this.class, name, args)
+ method(name: string, ...args: java.lang.Class[]) {
+ return declaredMethod(this.class, name, ...args)
}
methods() {
@@ -90,7 +90,7 @@ function types(values: any[], def?: any) {
if (values === null) {
return []
}
- let result: java.lang.Class[] = []
+ let result: java.lang.Class[] = []
values.forEach(t => result.push((t || def) ? JavaObject.class : t instanceof JavaClass ? t : t.class))
return result
}
@@ -119,7 +119,7 @@ function declaredConstructor(clazz, param) {
return accessible(constructor)
}
-function declaredField(clazz: java.lang.Class, name: string | java.lang.String) {
+function declaredField(clazz: java.lang.Class, name: string | java.lang.String) {
if (!clazz) { throw Error(`target class can't be ${clazz}!`) }
let target = clazz
let field = null
@@ -139,17 +139,17 @@ function declaredField(clazz: java.lang.Class, name: string | java.lang.String)
return field
}
-function declaredMethod(clazz: java.lang.Class, name: string, ...clazzs: any[]): java.lang.reflect.Method {
+function declaredMethod(clazz: java.lang.Class, name: string, ...clazzs: java.lang.Class[]): java.lang.reflect.Method {
let key = clazz.getName() + '.' + name + ':' + (clazzs || []).join(':')
if (!methodCache[key]) {
try {
- methodCache[key] = clazz.getMethod(name, clazzs as any)
+ methodCache[key] = clazz.getMethod(name, ...clazzs)
} catch (ex) {
try {
methodCache[key] = clazz.getDeclaredMethod(name, clazzs as any)
} catch (ex) {
for (const m of Java.from(declaredMethods(clazz))) {
- if (m.name == name) {
+ if (m.getName() == name) {
methodCache[key] = m
break
}
@@ -160,8 +160,8 @@ function declaredMethod(clazz: java.lang.Class, name: string, ...clazzs: any[]):
return methodCache[key]
}
-function declaredMethods(clazz) {
- return clazz.declaredMethods
+function declaredMethods(clazz: java.lang.Class) {
+ return clazz.getDeclaredMethods()
}
let classMethodsCache: any[] = []
diff --git a/packages/database/src/database.ts b/packages/database/src/database.ts
index 08950279..160225b8 100644
--- a/packages/database/src/database.ts
+++ b/packages/database/src/database.ts
@@ -1,5 +1,3 @@
-///
-
import { Model } from './model'
const HikariDataSource = Java.type('com.zaxxer.hikari.HikariDataSource')
@@ -69,7 +67,7 @@ export class DataBase {
*/
query(sql: string, ...args: any[]): Array {
let startTime = Date.now()
- let result = Java.from(this.jdbcTemplate.queryForList(sql, args))
+ let result = Java.from(this.jdbcTemplate.queryForList(sql, args))
console.debug(java.lang.String.format(`\n[DB] query \nSQL : ${sql.replace(/\?/ig, '%s')} \nCOST : ${Date.now() - startTime}ms`, args))
return result
}
diff --git a/packages/database/src/index.ts b/packages/database/src/index.ts
index 86de9412..15ab583a 100644
--- a/packages/database/src/index.ts
+++ b/packages/database/src/index.ts
@@ -1,5 +1,6 @@
///
-///
+///
+///
export * from './database'
export * from './manager'
\ No newline at end of file
diff --git a/packages/nashorn/src/index.ts b/packages/nashorn/src/index.ts
index 8026381c..59278cd9 100644
--- a/packages/nashorn/src/index.ts
+++ b/packages/nashorn/src/index.ts
@@ -13,8 +13,8 @@ declare global {
namespace Java {
function type(clazz: string): T
- function from(javaObj: T[]): T[]
- function to(array: T[], type?: T): T[]
+ function from(javaObj: T[]): T[]
+ function to(array: T[], type?: T): T[]
function extend(...parentTypes: any[]): any
function synchronized(func: () => void, lock: any): Function
function asJSONCompatible(obj: T): T
diff --git a/packages/nukkit/src/index.ts b/packages/nukkit/src/index.ts
index b826d37d..855dc4f9 100644
--- a/packages/nukkit/src/index.ts
+++ b/packages/nukkit/src/index.ts
@@ -1,4 +1,4 @@
-///
+///
import { server } from '@ccms/api'
import { Container } from '@ccms/container'
diff --git a/packages/plugins/src/MiaoSpring.ts b/packages/plugins/src/MiaoSpring.ts
index 7ecf38a3..10d91b60 100644
--- a/packages/plugins/src/MiaoSpring.ts
+++ b/packages/plugins/src/MiaoSpring.ts
@@ -1,9 +1,8 @@
-///
-///
-///
+///
+///
import { constants, database, plugin, web } from "@ccms/api"
-import { inject, ContainerInstance, Container } from "@ccms/container"
+import { inject, ContainerInstance, Container, JSClass } from "@ccms/container"
import { JSPlugin, interfaces, cmd } from "@ccms/plugin"
import { DataBase, DataBaseManager } from '@ccms/database'
import { Server, Context, RequestHandler } from '@ccms/web'
@@ -22,6 +21,9 @@ export class MiaoSpring extends interfaces.Plugin {
@inject(web.Server)
private webServer: Server
+ @JSClass('org.springframework.http.HttpStatus')
+ private HttpStatus: org.springframework.http.HttpStatus
+
private ResponseEntity = org.springframework.http.ResponseEntity
private mainDatabase: DataBase
@@ -56,7 +58,7 @@ export class MiaoSpring extends interfaces.Plugin {
preHandle: (ctx: Context) => {
const index = foundMap.indexOf(ctx.request.getRequestURI())
if (index != -1) {
- return this.ResponseEntity.status(org.springframework.http.HttpStatus.FOUND).header('Location', foundMap[index + 1]).build()
+ return this.ResponseEntity.status(this.HttpStatus.FOUND).header('Location', foundMap[index + 1]).build()
}
}
})
diff --git a/packages/plugins/src/SearchRanking.ts b/packages/plugins/src/SearchRanking.ts
index 9a68e08a..49517be7 100644
--- a/packages/plugins/src/SearchRanking.ts
+++ b/packages/plugins/src/SearchRanking.ts
@@ -1,6 +1,3 @@
-///
-///
-
import { constants, plugin as pluginApi, amqp, server, web } from '@ccms/api'
import { plugin, interfaces, cmd } from '@ccms/plugin'
import { AmqpAdmin, ConnectionFactoryAdapter, AmqpManager } from '@ccms/amqp'
diff --git a/packages/sponge/src/index.ts b/packages/sponge/src/index.ts
index eb6c4eda..da6e1f64 100644
--- a/packages/sponge/src/index.ts
+++ b/packages/sponge/src/index.ts
@@ -1,4 +1,4 @@
-///
+///
import { server } from '@ccms/api'
import { Container } from '@ccms/container'
diff --git a/packages/sponge/src/server.ts b/packages/sponge/src/server.ts
index 33f84a3f..6b9bd5f3 100644
--- a/packages/sponge/src/server.ts
+++ b/packages/sponge/src/server.ts
@@ -1,18 +1,18 @@
import { server, constants } from '@ccms/api'
-import { provideSingleton } from '@ccms/container';
+import { provideSingleton } from '@ccms/container'
import * as reflect from '@ccms/common/dist/reflect'
-const Sponge = org.spongepowered.api.Sponge;
-const TextSerializers = org.spongepowered.api.text.serializer.TextSerializers;
-const File = Java.type("java.io.File");
+const Sponge = org.spongepowered.api.Sponge
+const TextSerializers = org.spongepowered.api.text.serializer.TextSerializers
+const File = Java.type("java.io.File")
@provideSingleton(server.Server)
export class SpongeServer extends server.ReflectServer {
- private pluginsFolder: string;
+ private pluginsFolder: string
constructor() {
- super();
+ super()
this.pluginsFolder = new File(base.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile().getCanonicalPath()
}
@@ -35,25 +35,25 @@ export class SpongeServer extends server.ReflectServer {
if (typeof sender === 'string') {
sender = this.getPlayer(sender)
}
- return Sponge.getCommandManager().process(sender, command).getQueryResult().get()
+ return Sponge.getCommandManager().process(sender, command).getQueryResult().get() != 0
}
dispatchConsoleCommand(command: string): boolean {
- return Sponge.getCommandManager().process(Sponge.getServer().getConsole(), command).getQueryResult().get()
+ return Sponge.getCommandManager().process(Sponge.getServer().getConsole(), command).getQueryResult().get() != 0
}
getPluginsFolder(): string {
- return this.pluginsFolder;
+ return this.pluginsFolder
}
getNativePluginManager() {
- return Sponge.getPluginManager() as any;
+ return Sponge.getPluginManager() as any
}
getDedicatedServer() {
return reflect.on(Sponge.getServer()).get()
}
getNettyPipeline() {
- return this.pipeline;
+ return this.pipeline
}
getRootLogger() {
- return this.rootLogger;
+ return this.rootLogger
}
sendJson(sender: string | any, json: string): void {
if (typeof sender === "string") {
diff --git a/packages/web/package.json b/packages/web/package.json
index 3572ae78..92b28991 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -24,6 +24,7 @@
"typescript": "^3.9.2"
},
"dependencies": {
+ "@ccms/api": "^0.7.0",
"@ccms/container": "^0.7.0"
}
}
diff --git a/packages/web/src/index.ts b/packages/web/src/index.ts
index 7a0db934..449e781d 100644
--- a/packages/web/src/index.ts
+++ b/packages/web/src/index.ts
@@ -1,7 +1,9 @@
-///
-///
-///
-///
+///
+///
+///
+///
+///
+///
export * from './server'
export * from './decorators'