`
文章列表
看到发的博客内容出现大量排版错误,目前,新的文章发在github.io。 请访问http://chrisrc.me关注新的博客。谢谢关注!  
ExtJS框架分层 Ext Fundation层负责创建Ext实例,部分工具实例和类系统。通过类系统我们可以扩展类,覆盖方法和属性,向类添加mixins和configurations,以及一些其他的事情。 注:在开发中应该使用ext-all-dev.js,它比ext-all-debug.js提 ...
       下述部分摘自OSGi Core规范中关于Fragment bundle的规范描述,翻译一下,加深印象。         Fragment Bundle是一个可追加于一个或多个主体(Host)Bundle的Bundle。Fragment Bundle与其Host Bundle之间是从主关系,并且Fragment Bundle不能独立运行,它在Host Bundle解析之前被框架追加到Host Bundle,随之被看作是Host Bundle的一部分。 Fragment Bundle具有自己的保护域,但没有自己的Class loader。         具有相同的Symbol ...
Karaf对OSGi Bundle的组织采用Pax的maven url方式,这也隐性的继承了maven的特性,即,所有的依赖来自maven仓库,在实际开发中,这大大的便利了项目结构的组织和维护,开发人员只要指明对某个bundle的maven依赖,karaf自动去选取和下载。但是,在基于karaf的项目部署时,项目或产品的发布环境往往要求严格,不能够随意访问远程的maven仓库;那提供一个本地maven仓库?显然这也不合理,本地maven仓库的维护加重了维护的复杂性。本文主要就离线发布karaf的需求实现进行探讨。 Pax URL Mvn协议 在讨论karaf的maven依赖加载与管理之前, ...
本文目的 Apache Karaf项目在基于OSGi的组件框架应用开发中为开发者和架构师提供了一个便利的基础运行和部署框架。通过Karaf的Feature定义及Kar打包,开发者可以自由的定义OSGi Bundle的分组并按需定制细粒度的打包定义,在系统发布时,通过自由组合这些feature及kar,可以快速发布针对性的产品或特定的发布包。 Karaf通过与maven相结合,可以为用户基于OSGi Bundle的模块化开发、测试、集成和持续交付提供方便和快速的解决方案。 本文为主要探讨在开发阶段如何快速搭建基于maven的自定义的karaf开发调试环境提供一种方案,对于想对karaf的 ...
问题现象    目前在OSGi环境中记录log日志有很多选择,用的最多的应该是slf4j,针对slf4j的增强也很多,像eclipse/equinox环境中采用logback,karaf中采用pax-logging。    因为没有注意到pax-logging-api的bundle里导出了org.slf4j(包括多个版本),我在karaf(karaf运行时采用pax-logging-api)中碰到org.slf4j.impl的package use conflict异常,如下: Unable to execute command on bundle 100: The bundle & ...
题外话     使用Maven作为项目结构进行开发吗?你选择什么IDE工具呢?Eclipse的m2e,Netbeans还是Intellij IDEA?     最纯粹的Maven开发支持我推荐Netbeans,当然,前提是你不觉得它的显示比起Eclipse来很“丑陋”,我的同事是这种感觉 。Netbeans加载Maven项目后,基本上不会注入任何IDE相关的配置(除非你想自定义Netbeans的菜单的功能,存储在nbaction.xml中),不像Eclipse要为每个对应的POM生成.project,.classpath和.settings目录。IDEA也要为每个POM生成一个*.iml文件 ...
1、在redmine部署某些插件后执行下面操作时: rake db:migrate:plugins RAILS_ENV=production 出现如下错误提示: rake aborted! Access denied for user ’bitnami’@’localhost’ to database ‘redmine_development’ 解决方法:   退出redmine控制台,在执行任何ruby指令之前启动redmine console。注意:应在use_redmine脚本的当前路径下启动console: ./use_redmine rake db:migrate:plugins ...
1. Remove the “prefix=/redmine” entry from your <installdir>/apps/redmine/config/mongrel_cluster.yml. 2. Replace the <installdir>/apps/redmine/conf/redmine.conf file for this one: <VirtualHost *:8080> ServerAdmin info @ example.com ServerName www. example. com ServerAlias ...
1.简述 随着OSGi越来越被大家所熟知,基于OSGi的开发成为一种趋势。在OSGi中,两个核心元素是Bundle和Service,本文仅涉及Bundle,Service不在讨论范围之内。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   OSGi中的Bundle通常被看做是一个细粒度的功能模块,为整个基于OSGi的系统提供某项功能。但是,Bundle的资源组织特性,使其可以不仅仅作为一个功能模块,也可以作为资源组织模块来应用。Bundle的资源组织特 ...
1.摘要 本文简要讨论了如何看待OSGi,以及在OSGi之上进行开发的一些关键概念,常见问题及编程提示 。 2.如何看待OSGi JAVA面向对象的编程语言彻底推翻了过程化编程的模型,开启了软件开发的一个新的时代。但是,Java语言并没 ...
软件编程发展到今天可以看作是一个量变引发质变的过程。最初,程序开发面向过程,开发人员需要编写大量的过程代码,随着过程代码的不断积累(量变产生),从代码维护和重用的角度,过程开发变得越来越不适应,质变产生,面向对象的开发逐渐被采用。由于面向对象的开发很好的封装了过程,而且从面向对象的角度可以很好的描述实际应用中的需求模型,因此面向对象的开发逐渐成为主流。同样,随着面向对象开发的不断应用(量变产生),出现了大量的可复用的类及包,维护这些类/包变得越来越困难,而且,尽管面向对象的编程机制可以很好的适应小规模应用的开发,但随着应用系统的规模越来越大,如同用细小的沙粒构建堤坝,面向对象的机制难于适应, ...
1、摘要 前述文档我向大家展示了Equinox OSGi环境及其搭建配置。从本文开始,我们将详细讨论Bundle的开发及OSGi应用构建。 2、OSGi相关概念 在正式进入Bundle的设计与开发之前,我们先来熟悉一下OSGi框架中的一些概念。用户在设计Bu ...
1、OSGi是什么 OSGi是一种松散耦合的组件管理和服务运行平台规范。简单的说,用户只需要修改通用的Java类库打包档案JAR文件中META-INF下的元数据文件MANIFEST.MF,添加必要的标签信息,放置到OSGi框架的Bundle Repository中,用户的类 ...
1、概述 上文我们对Equinox OSGi运行环境的组成及搭建过程做了详细讲述。本文主要对Equinox OSGi运行环境的可配置参数及其作用加以介绍,从而使用户在实际使用过程中可以对Equinox运行环境更好地进行控制。 Equinox项目沿袭Eclipse的特点,具有高度的可配置性。用户可以通过命令行参数或系统属性参数(JVM属性参数)两种方式对Equinox OSGi运行环境进行设定。命令行参数可以看作是系统属性参数的简化方式,Equinox中提供的很多系统属性参数可能不具有对应的命令行快捷设定。 2、Equinox配置参数详解 Equinox配置的参数在实际使用中可以通过 ...
Global site tag (gtag.js) - Google Analytics