Coder Social home page Coder Social logo

ameba's People

Contributors

icode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ameba's Issues

完善特性系统

改善接口,改善基础类,提供以事件方式注册系统事件的接口,看看akka能否胜任此项工作

web编辑器集成协作功能

  1. 需要一个**服务器进行数据转发
  2. IM
  3. 一些写作功能
  4. 服务器需要有项目列表及源码仓库uri
  5. 编辑器可列出项目列表,并进行clone
  6. 编辑器可通知持续集成服务器进行更新
  7. 持续集成服务应和编辑器产生交互,发送出错、成功及本次集成的原因(bugfix or feature)

URL重构配置

  1. 根据包名、类名重构现有URL


resource.mapping.ameba.m1.resource.*=/m1
resource.mapping.ameba.m1.resource.AResource=/m1/1

  1. 获取映射后的地址API

需要考虑模板的映射,暂时还未想好
web socket映射,应该在web socket处理之前将所有resource model处理掉就不需要关心web socket映射问题

更改模板查找方法

  1. 查找时查找所有匹配文件
  2. 查找时获取文件绝对位置,匹配绝对位置与获取到的资源匹配程度,如 /com/a/a.html->/a/a.jar!/com/a/a.html /project/pkg/res.html->/pkg/res.html

工具集

一个内置的工具集,另一个项目.包括创建项目,更新框架,生成发布包,搜索模块,发布模块等等.

创建APP
App生成resources/conf/application.conf配置文件,maven配置依赖ameba

创建module
module生成resources/conf/module.conf,并在测试目录下生成调用ameba.Ameba的main方法类,生成ameba的maven依赖,scope为provided

添加模块
通过registry搜索模块,并将其添加到maven配置中

程序安装模块

  1. 支持安装时执行脚本
  2. 调用模块管理,配置模块
  3. 安装向导

持续集成服务

  1. 编写服务或利用插件进行持续集成
  2. 服务支持自定义application.conf配置
  3. 服务自动配置ameba使其进行单个模块的持续集成
  4. 测试模式下自动升级数据库,无需确认
  5. 自动发布,并自动切换至新的代码实现(nginx)

模块的注册管理服务

类似NPM.bower等工具的服务,提供模块的注册与管理,基于maven?好吧,这样应该不错,不需要自己管理包吧?

上传文件整合

  1. 将上传文件整合在model内
  2. 可以选择存贮文件地址还是文件二进制
  3. 可以通过配置更改存贮位置
  4. resource参数内直接封装入model

热加载

可以让resource model 和其他使用的用户类在不重启的情况下热加载

用户自定义resource调用

通过UI,配置resource之间调用,存储之。生成新的class类,或者反射?或者逻辑?流程?其他方式?最终提供一个调用API,供用户或开发人员调用。

模块管理、更新

  1. 自动更新模块,框架,应用
  2. 支持密钥验证,验证程序购买时间,是否还可以更新
  3. 更新服务器
  4. 可以新增、购买新模块
  5. 下载jar后重启应用,软重启?(只重启内部容器)
  6. 更新模块后应用更新脚本
  7. 内置maven用于模块依赖升级?

添加模型视图

模型视图,将多个模型或模型属性组合在一起,请求一个复杂的sql,返回这个model view对象。类似于数据库中的视图,没有真实的完全对应的表结构,数据完全是从不同表中抽取。

缓存集成

使用guava cache 缓存 resource 返回数据,提供api接口

虚拟机管理

http://docs.vagrantup.com/

提供创建 删除 复制等虚拟机的操作

镜像文件依赖 如 sys(mac) -> base(NodeJS, Java and more) -> test env

镜像文件管理服务,存储镜像文件和配置,发布

中心配置如zookeeper,监控健康状态,创建时检测状态

优化运行时增强

  • 增加是否已经增强判断
  • 增加缓存
  • defineClass调用更改
  • 重启容器判断有误,未更改方法签名也会被重启,mac os jdk bug
  • 热加载偶尔报错,出现相同类无法转换问题,清理之前缓存的类
  • 支持内部类的编译和热加载
  • 父类增加字段是否该让子类也重新加载?有时ebean增强需要父类新字段,建立关系,增强时获取所有父类,更新时拿到所有子类进行增强
  • 参考jrebel实现热加载,减少重新启动容器

NoSql支持

提供nosql的orm,最好能和现有的ebean整合,统一接口

插件安全管理

框架周边应分为

  1. 类库API,无权限,只是API接口调用
  2. 模块,需要配置应用权限,以告诉ameba所需权限,如未配置则在调用接口时抛出异常
  3. UI库

功能

  1. 框架应有查找安装模块的能力
  2. 检测模块所需要权限
  3. 控制接口调用权限
  4. 更新模块功能
  5. 用户可以禁用模块某种权限调用(在安装模块时 , 也可在权限管理中)
  6. 模块可以获取自身是否有某种权限
  7. 需要由自己的classloader 通过java.system.class.loader配置是一个方法,但是不好。通过application.conf 配置默认classloader?classloader对于安全很重要,需要应用配置,插件不能随意更改。default.conf配置?然后在代码默认反射获取安全模块的classloader,没有则使用默认?

//TODO头脑风暴
利用classloader/securityManager控制权限?
js利用aop?
每一个插件是否应该用单独的classloader?

参考
http://www.ibm.com/developerworks/cn/java/j-lo-javasecurity/
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-sec/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.