• SpringSide V3.3.3 大众搬屋版 *

    2010-08-07 21:51:52

        不断将工作项目中的代码片段移植过来,而且这种搬运的幸福感估计还会下面的几个版本中延续。    下个版本开始,决心对一些基础的部件进行升级,如JPA2.0, myBatis 和 Spring MVC等, 详见3.4版开发计划.

       PS. 推荐Rapid Framework, 更新非常稳定的一个同类项目,比已经进宫的Appfuse好多了。

  • SpringSide 3.3 Long time no see版 *

    2010-05-15 21:30:33

           Hmm...居然还差半个月就有半年没发新版了,long time no see 啊。 至于原因嘛,与Tim讲的 有点相似。

           好在公司的新项目选型都与SS接近,所以新代码里其实有很多是亲爱的同事们的手笔, 不再是一个人在战斗了。

    • 大幅改进Maven使用,更规范,更符合团队多子项目开发的习惯.
    • 大幅改进功能测试,使用Jetty + H2 + DBUnit  + Selenium2.0(HtmlUnit Driver) 实现快速的功能测试.
    • 增加 Jersey REST应用演示
    • 改进SpringSecurity演示:
      • 升级3.0.
      • 使用更规范, 取消数据库存储资源与授权对应关系的模式.
      • 支持CXF WS-Security与Jersy的安全控制.
    • 改进ActiveMQ JMS,增加Advanced的示例演示高级配置.
    • 升级Spring 3.0,但还没有用到什么新功能.
    • Hibernate 与 Jdbc Template的演示增强
    • 删除Hessian,P6Spy, Maven Archetype的演示.
    • 所有依赖包几乎都升级到了最新最新的版本。
  • SpringSide 3.2.1 寒冬日志版发布 *

    2009-11-21 17:42:25

       最近国内的开源项目非常生猛,与Play!Framework有些相近的斗鱼,也是要替代SSH的Nutz, 已经支持Spring 3.0与iBatis 3的Rapid framework 3.0, 在这个好像特别寒冷的年末,形成一道鲜亮的风景。
       SpringSide也发新版了,相比之下创新性有点欠奉,更像是一本日记,将这两三个月里遇到的代码记录下来与大家分享。

       自3.1.8版以来的更新
    • JMS演示: ActiveMQ/Spring-JMS的 Topic/Queue生产者, 主动消费者与Message Driven POJO演示的.
    • WebService演示:WS 二进制数据传输(MTOM附件协议与直接BinaryBase64传输)
                    Hessian 内部高性能服务演示.
    • Web演示:文件下载Servlet, 演示缓存控制,内容压缩等http特性.
             Apache HttpClient多线程环境使用演示.
    • 集群:各示例支持通过Maven实现集群多节点的配置、打包和运行.
    • 数据库:演示数据库Derby->H2, Mini-Example 支持Mysql.
    • 安全演示:SHA-1消息摘要, HMAC-SHA1消息签名 及 DES对称加密演示.
               Nonce生成演示.
    • Log4j演示升级:改进Log4JMbean,增加MockAppender 与 TraceUtils.
    • 报表演示: POI操作Excel演示.
    • Cache演示: Ehcache使用演示.
    • XML演示升级:增加Dom4j演示, Jaxb演示更新,删除XStream演示。
    • Quartz演示升级: 数据库持久化+集群支持.
    • Queue演示升级:整理Consumer策略.

      下载地址http://www.springside.org.cn/download.php
  • SpringSide 3.1.8 兄瓦弟玉版发布 *

    2009-09-02 22:30:06

        作为3.1系列的最后一个版本,3.1.8版的代码质量在 Hudson + Sonar 双塔控制下,慢慢开始好转了.

    • HibernateTools生成CRUD与测试用例代码.
    • Hibernate演示升级:支持Oracle演示,扩展Dialect支持数据库专有特性, 页面快速过滤条件支持日期和数字类型.
    • Service层重构:每个Manager类管理多个相关的Entity,Service类只依赖于Manager类.
    • Web服务演示升级:演示WS-Security的认证机制,在功能测试中增加WebService客户端演示。
    • Web演示升级:演示URL Rewrite.
    • 测试演示升级:TestCase分级制运行, Selenium测试失败时截图, DBUnit管理测试数据。
                         功能测试使用Jetty快速启动Web应用.
                         单元测试与集成测试的大幅重构。
    • Ehcache升级:基于JGroups在集群内同步缓存失效消息.
    • 日志演示升级:动态配置日志等级, 重构异步日志管理实现.
    • JMX演示升级:使用Spring Annotation定义MBean.
    • 代码质量:Checkstyle5.0模板整理,Snoar的使用.
    • 小改动若干至无数.......
  • SpringSide 3.1.4 翻墙版发布 *

    2009-06-29 22:20:34

          某个雷电交加的晚上,提交代码回Google Code服务器居然需要翻墙....所以这个版本就叫做翻墙版以示纪念了。
          在满江红服务器故障的日子里,忽然觉得一个开源项目坚持上几年其实很不容易啊,像这个版本用到的IronTrackSQL,连主页都已经失效了。
          感谢晓钢,服务器硬生生又救回来了,一众国内开源项目避免了IronTrackSQL的下场。
          然后某个炎热的周末下午,花了100大元躲到仙踪林里叹冷气写完了最后的代码。所以,这次的版本,至少价值100大元的啊,挥泪免费下载了。

         在新公司深受一天开发三天改测试用例的折磨后,狂补SpringSide中的各色测试用例。还是工作原因,狂补Hibernate特性的演示。
         虽然3.0系列到了现在才刚刚达到60分的程度,几年下来坚持最长两三个月发一个版本,起码对自己的毅力是很满意了。
    • 升级到JUnit 4.
    • Springside Modules 狂补测试用例.
    • Selenium Web 自动测试演示.
    • Hibernate演示更新:详见后.
    • XML<->Java Bean转换:演示JAXB/XStream.
    • 日志高级应用演示:异步发送Log4j日志到数据库.
    • 报表演示: Amcharts Flash Chart.
    • SpringSecurity更新,1.验证码演示更新 , 2.扩展登录时间属性等属性.
    • 性能监控分析:Perf4j代码性能与P6Spy sql性能分析.
    其余详细更新记录见:http://wiki.springside.org.cn/display/SpringSide3/Release+Notes+3.1.4

    下载地址:http://www.springside.org.cn/download.php

    另外,随着Showcase的发展,3系列又不可避免的滑向繁杂,大家可以积极投诉觉得没必要演示或者演示的不好的东西,我很乐意剪掉di。

  • SpringSide 3.1.3.2发布 *

    2009-05-01 20:53:45

       早就发布了的版本,但文档拖到今天才整理完。期间又回炉了两次,保持每一个半月一版本的真不容易啊。
       这个版本里,Showcase示例开始长起来了。

    • JDK最低版本要求降回5.0,Maven 升级到2.1.0(终于学会多线程下载JAR了),花大力气大幅提升了quickstart脚本的成功率。
    • SpringSecurity演示:增加验证码集成演示,还将民怨很大的,SS3退步铁证之一的授权-URL对应关系从配置文件放回数据库里。
    • JMX演示:增加不使用MBean代理,直接读取属性/调用方法的示例。
    • Spring-Mail演示:多线程群发邮件 和 基于Freemarker模板生成的带附件的MIME邮件示例.
    • 定时任务演示:Quartz Timer/Cron Trigger 和 JDK5 SchduleExecutor示例。
    • Hibernate演示:基于Hibernate的Event机制自动为业务对象加入审计信息示例,OpenSessionInView忽略静态内容的请求。
    • 日志组件降回slf4j+log4j ,因为logback的用户还是太少了。
    • 原有代码持续改进。

  • 源码SVN地址切换

    2009-03-18 12:47:47


    因为JavaScud.org的服务器出现了一点点问题,SVN源码地址切换至Google Code:

    http://springside.googlecode.com/svn/springside3/trunk/

    请大家更新:)

    祝scud同志的硬盘早日康复。
  • SpringSide 3.1.2 更低调发布 *

    2009-03-14 23:18:42

         3.1.2是连跳了3.1.0和3.1.1两个版本后的GA版本,一边忙着Mini-Example这一亩三分地的升级,一边开始Showcase的演示......

    3.1.2版主要变更

    • Struts2:升级Struts 2.1.6 ,使用Convention Plugin 实现完善的MVC零配置文件。
    • JQuery:升级JQuery 1.3.2后速度大为加快,演示JQuery Ajax典型用法及跨域的Mashup。
    • Hibernate:支持DAO or Not DAO两种模式,对泛型DAO基类的功能增强与代码重构。
    • SpringSecurity:授权名称从容易混淆的ROLE_* 改为A_*。
    • Spring:使用@Autowired代替setter函数减少冗余代码。
    • JMX:演示Spring-JMX服务端与客户端,实现远程监控服务状态并修改服务配置。
    • 应用服务器:修改spring context文件路径的写法,在Glassfish2,Weblogic10上成功部署,并演示Tomcat的服务器优化配置。
    • 代码优化:大量代码进行了重构与重新注释。
        完整的变化历史见3.1.2 Release Notes

        无奈啊,Mini-Example总共才几行代码,但改来改去总是还有值得修改的地方,估计很快还要出一个3.1.3来。再日后Showcase开发计划详见Road Map

  • SpringSide 3.0.3 Stable版,SSH2也就这样了. *

    2008-10-07 09:45:33


        估计未来半年一年内,国内的Java主流都还会是这种Spring + Hibernate +Struts2,但约定大于配置的风格。
         
        3.0.3后,Mini-Example算是告一段落,SSH2的惯用法也就那样了。个人的理解总有局限,接下来就要靠大家的反馈推动。

        这次的主要改动有:
    • 使用Spring 2.5的IOC annotation 实现Service层/Dao层零配置。
    • 使用Spring 2.5的新TestContext Framework。
    • Hibernate Ehcache Lv2 缓存:1. 配置优化 2.集群环境使用。
    • Struts2.1版zero-config 与 code-behind的合并,实现零配置。
        往后会一边依据社区的反馈修改,一边在showcase示例里演示一些表格控件(如GT-Grid),一些Hibernate的应用(如Hibernate Envers)。

        而主要精力,将开始论坛示例,会像2.0版的书店示例那样综合展示大量开源项目,但它是完整的,且支持可伸缩与高可靠性的集群及Web2.0的特征。

        变更记录: http://wiki.springside.org.cn/display/SpringSide3/ChangeLog
        下载地地:http://www.springside.org.cn/download.php
        讨论区:http://forum.springside.org.cn/

        欢迎大家试用反馈,共同打造我们的SSH2较佳实践。
  • SpringSide 3.0.2 ,一个相对满意的版本 *

    2008-09-25 02:42:49

       有一年半没发新版的SpringSide, 在3.0的发布时有点急了.这次的版本, 才是一个相对让自己满意的版本.
       原本大家投诉的文档粗略,没有傻瓜式快速开始版这次都作了改进,另有颇多代码上的更新,详见3.0.2版完整修改记录.

       接下来还会继续在mini-examples上打滚一段时间,毕竟这是团队每日开发的基础,然后才会开始那个Web2.0的,高可靠高伸缩性的论坛示例.

       下载地址:http://www.springside.org.cn/download.php

  • SpringSide 3.0.1接踵而来 *

    2008-08-05 15:48:54

       人家说看一个社区活不活跃,就看它的X.0.0发布之后,X.0.1什么时候出来了。

       主要修正的地方:
    • IDE项目文件 从D版MyEclipse 换成 Eclipse 3.4 for Java EE developers,虽然Eclipse 3.4毫无悬念的要粗糙一截。
    • 全maven的编译部署脚本,配上全界面化的Hudson持续集成服务器,感觉很不错。
    • 为了某些打死不用maven的兄弟,增加了一个附带所有jar的下载版本 SpringSide3.0.1 withdout maven,但就需要大家自己完成后面的配置了。
    • Acegi 2.0改到一种比较合理的模式:
      分用户->角色->授权三级。
      前两者保存在数据库中,由用户管理;
      授权则由程序员规划,硬编码在jsp代码(taglib),业务方法(annoatation),URL配置文件(ApplicationContext.xml)中。
    • Struts2CRUDAction定义了更多标准操作,HibernateSimpleDao改善了分页部分代码。
     
        3.0.2的开发计划见 Todolist , 同时也会展开完整论坛示例的开发,欢迎大家继续讨论SpringSide接下来的选型、特性、方向.....
  • SpringSide 3.0 低调发布 *

    2008-07-30 00:28:26

        怀胎十八个月的SpringSide 3.0 终于低调的发布了。

        这个版本里的SpringSide,终于放弃梦想,不再奢望做一个框架,或者一个像RoR/Gails那样极简的、创新的封装,而是对如何用不轻也不重的主流选型、编程实践来开发JavaEE企业应用进行老老实实的总结。
        如果说Sun 的代码规范规定了大家在代码中如何命名变量,怎么编写注释的话,SpringSide就是对JavaEE企业应用开发的建议。

        当然,SpringSide 3.0 还同步了这一年半里Java社区的技术升级:JAX-WS 2.0/CXF , Struts2, Spring 2.5, Acegi 2.0 ... 也全面引入了Maven作为项目管理与新项目生成的工具。

        在第一个版本中,只发布了3个典型场景的示例:
    • 迷你后台Web服务(mini-service) 场景: Spring + Hibernate + JAX-WS2 (CXF) 的组合。
    • 迷你CRUD管理界面(mini-web)场景:Spring + Hibernate + Struts 2 + Acegi Security 2的组合。
    • 超轻量级网站前台(extreme-web)场景:Jsp + Spring Jdbc 无配置文件的超轻量组合,专扫极速网站Demo,墙角小应用之类的工作。
        而spring-core则如自己所愿非常的小,因为SpringSide不提倡把什么都再封装一遍。

        下载地址:http://www.springside.org.cn/download.php
        文档地址:http://wiki.springside.org.cn/display/SpringSide3
  • 关于3.0跳票与extreme-web示例

    2008-07-24 22:36:01

    一回头又一个月,日子过得太快了,快到你想哭。

    这个月去了趟上海,想着回来无论如何也将3.0版给发了吧。虽然亲爱的sourceforge.net被GFW了。

    但接下来一次贴近团队的快速开发,又感到SpringSide3.0还是太重了。

    对于演示原型,上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的网站角落,或者极少数管理人员才用到的管理功能,在恨不能php,ror的时候,你会想起jsp+jdbc的温暖。

    又或者你请到了只会写jsp和sql的极品,又想让他明天开始干活.....

    传统的jsp+jdbc写法不堪回首,所以另做了这个extreme-web风格示例, 在jsp and jdbc and no config file的同时,仍然是个可堪一观的MVC,仍然基于亲爱的Spring.

    View层:一个jsp(见webapp/user/user.jsp)
       Web应用里,单纯的内容展示型场景占绝大多数。
       我们也单纯的在jsp的开始代码调用Model层的Service Pojo查出所需内容。
       然后可以继续忍受压力,直接在页面中嵌入显示代码。也可以将结果放入贯通两界的pageContext里,换用Jsp2.0 EL和JSTL taglib来作展示。
       一页到尾,不要再扯什么Struts2 Action,什么struts.xml。

    Control层:还是一个jsp(见webapp/user/userAction.jsp)
        少量的用户提交内容的场景,就会来到这个代替Struts2 Action的jsp,由它来调用Model层的Service Bean,然后又redirect/forward回View层的jsp。
        如果顺手,可以用spring的DataBinder 将request参数绑定到DTO。否则就N多request.getParameter("foo")手工组合。

    Model层:一个使用Spring JDBC的POJO(见src/.../UserService.java)
        为什么不继续用jsp,彻底的改代码不重启应用?因为舍不得Spring的JDBCTemplate/DataSource/Transcation这一系列功能。
        用@Service注册bean,就不用再写applicationContext.xml定义helloService bean了。
        继续用@Transcational 定义事务。
        Spring的SimpleJDBCTemplate其实也挺好用的,顺手的话,可以将输入参数/ResultSet 直接反射到DTO上。
        不顺手的话,用MapSqlParameterSource绑定DTO到输入参数,用ParameterizedRowMapper绑定ResultSet到DTO。

    除了上面几点,其他地方也简化了,比如maven的功能退化到jar管理,连接池直接用commons-dbcp定义不依赖应用服务器等等...

    Extreme比较适应那些上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的角落。

    如果你请到了只会写jsp和sql的极品,extremeweb也能让他明天开始干活,但代码依然可堪一观。



    再看原来的SpringSide3.0,感觉至少还要改几个地方,才好意思叫3.0 Stable:

    1.从JPA回退到Hibernate, JPA等了一年在国内都没啥市场,比hibernate又没啥进步。
    2.Service+DAO层还是有点多余。
    3.Struts2Action里的基类有点不伦不类,还是取消的好。
    4.其他觉得臃肿的地方。

    下次预发布估计是奥运来临了.


  • 打扫,准备发布3.0

    2008-06-14 23:41:34

    主站终于ICP注册完毕,继续写开发周记。

    预计下周可以发布一个3.0了吧。还有很多来不及做的东西,统统划到了下一个版本里。(见wiki中的todolist)

    问:既然还有这么多来不及做的东西,这个版本为什么要叫3.0呢,叫3.0M1,3.0 RC1不好吗?

    开发界不比互联网,Web2.0永远Beta的精神是不适用的,我自己就几乎不看不用不是Stable的东西。所以为了上座率,这个版本姑且叫3.0吧,东西虽然少点,但至少是正确可靠的。

    这周的主要是wiki上文档的编写和一些细碎修改,在SVN的log里很清楚,着重增强了代码可读性。可读性一是靠注释,二就是靠爱国卫生运动,将项目始终保持在清爽简洁的状态。

    在SpringSide 2.0的末期,整个项目就枝枝蔓蔓颇有几分失控。另外,简洁也不等于代码少,有时候用诡异的语言诡异的语法,很少的代码做很多的事情,可读性反而很低。有些代码为了可读性,在不牺牲性能的情况下宁愿多写几行。

    除bugfix,演示门面改善和爱国卫生运动,注释运动外,一些比较明显的修改:

    • Derby数据库脱离对MyEclipse的依赖,至此整个开发环境已经基本不依赖于Myeclipse。
    • 统一使用Strust2的taglib,不使用JSTL,避免同时使用时的混乱。
    • 整理cleanup 和 formatter 规则
    • acegi的配置定义修改,不过滤css与图片
    • springside-core的pom.xml中,依赖设为optional,因为依赖springside-core的项目,不一定需要springside-core的全部功能,也就不需要连环依赖所有springside-core依赖的jar.
  • 08年第二周:又见struts2

    2008-01-15 09:47:33

        这周又把MVC转成Struts2了。S1到S3,Spring MVC->Struts->Struts2三个action-base的mvc framework,只怪Java的MVC Framework实在选择太多。但愿这是最后一个了,本来action-base就是件很简单的事情而已...

        另外,温少又给SS3挑了些刺,改完后,3.0M1离发布不远了。

     

  • 勤有功戲无益- 08年第一周的更新日志 *

    2008-01-06 23:54:00

    1.综合:

    • 使用log4j作者新作slf4j/logback 代替 commons-logging/log4j,不再需要为了一点点性能而到处是if(logger.isDebugabble())..... 
    • 使用Spring2.5标注:
      使用@Required,保证某些使用autowired的关键属性必须注入.
      使用@PostContrust 代替原来的initBean接口afterPropertiySet()函数,见WebServiceSupport.java.
      思考再三,还是没有使用EJB3的@Resource(name="userManager") 这种注入配置方式,太耦合了
    • 修改Spring的ApplicationContext文件:
      Schema改到Spring 2.5.
      分离applicationContext-production.xml,对应applicationContext-test.xml存放生产环境的配置变量.
      合并applicationContext-service和applicationContext-dao,但可按模块划分此文件.

    2. mini-service:

    • 修改DTO的JAXB2.0定义,取消accessType定义,使用默认的PUBLIC_MEMBER.
    • 修正之前FaultException在WSDL中没有正确反射的bug.
    • 修改WebServiceSupport类加强dozer的初始化管理.
    • 修正项目生成模板service-archtype积累下来的问题.

    3. mini-web:

    • 新增最初级的acegi使用示例
      根据acegi1.0.6示例代码,以URL作为权限判断依据,角色与URL的对应关系由开发人员在配置文件中预设,用户可在管理界面设定用户的角色。
      这种使用对旧系统代码的影响极小,一个service.security.UserDetailServiceImpl类,一个login.jsp,并修改UserManager类的update/delete方法使之刷新UserDetail缓存即可。

    4.其他:

    • SpringSide主站与3.0 Wiki的整理。
    • 加大XML文件宽度到120字符,重新格式化。
    • rename: si(系统交互)层->ws(Web Service)层,UserService->UserManager。

    5. 下周工作计划:

    • 受到InfoQ上那本Startging Struts2诱惑,mini-web打算换成Struts2
    • ExtJS的widgets
    • MyEclipse总是受人诟病,但是用WTP2.0大家就没法QuickStart了,头痛中。 
  • SpringSide 3.0启动

    2007-11-30 13:16:40

    沉默的半年,如迷的呼吸,SpringSide3.0 重启完成,正式上路....

    SpringSide 3.0 主页

  • SpringSide 2.0 RC1 Winter Edition发布 *

    2007-01-23 15:32:23

    1. 概述

       传说中的圣诞版快要变成新春版的时候,SpringSide的Winter Edition来了。
       这个版本主要增加了SS的系统友好度,开始SpringSide-IDE的项目,Acegi、JBossRules、Compass也重新铺开。

    2.New Feature

    2.1 代码质量与用户友好度升级

    • 建立了SpringSide代码规范,极端时使用IDEA-Eclipse-Checkstyle-PMD-Findbugs 五层保湿,平时使用Eclipse+Checkstyle 简单控制代码质量。
    • SpringSide-Core 收集大家的反馈意见后,再度重构。
    • 项目结构进行了简化,丢弃Maven的深闺式布局。
    • 增加新建项目时的友好度,Ant 脚本与Library不再必须依赖SpringSide目录。

      2.2 Springside-IDE

             蒋新主理的SpringSide-IDE,可以新建一个SpringSide结构的Java项目,自完成一切必要的设置。
             用户可以在其上使用MyEclipse的右键菜单Add Web Project Abillity 升级为MyEclipse项目。
             这是SpringSide-IDE迈出的第一步。


      2.3 Acegi Security

              cac提供Acegi SS1.0M3版的化简版,更加清晰明了,在数据库中存放用户角色资源三表,仅提供URL过滤安全保护。


      2.4 JBossRules RuleEngine

             白衣参考JBoss Seam的做法,升级了对JBossRules的封装,并在书店示例进行更好的用法演示。


      2.5 Compass SearchEngine

             Scheweigen重做的 Compass示例

      • 脱离对Spring MVC的依赖,仿造其Spring MVC Controller的写法提供对Compass的封装,演示在Struts下的使用。
      • 加入Highlighter的演示。
      • 增加应用启动时重建索引的。

        2.6 ActiveMQ Demo Upgrade

                cctvx1 升级了ActiveMQ的Demo

        • 增加持久化到数据库的演示。
        • 增加使用Jenck JCA Container代替Spring的Container的演示。

          2.7 DBUnit 

                Anders小明增加了使用DBUnit的Selenium基类,使用DBUnit自动保持集成测试前后的数据库状态。

        1. 送出第一批纪念品--SpringSide Logo的杯子 *

          2006-12-30 14:54:26

          Cac 终于印好了第一批SpringSide纪念品:



             
                由cac负责将杯子邮寄给下面的得主:

                     请各位将邮寄地址发送到cac的邮箱: johnsonchen916@gmail.com
                     希望获得SpringSide第一批纪念品的会员(或许,Maybe以后会很有纪念价值),赶紧在春节前将积分灌到300呀!!!!
                    
                     原本要印T恤的,错过了入货的最好时间--夏季清仓大甩卖的时候,大家希望下次送什么,回帖说一下阿。
          1. 蒋新加入SpringSide团队 *

            2006-12-22 14:48:20

               岁末之际,SpringSide团队又有高手加入,负责SpringSide-IDE开发。

              
               个人简介:蒋新,毕业于清华大学软件学院,主要从事eclipse插件开发,对开源软件十分感兴趣,注重软件的实用,也是linux系统的爱好者。目前在北京工作。(mail: xinjiang1979@gmail.com)
          251/212>
          Open Toolbar