Apache Sling

最新打算研究下 Apache Sling ,在此记录下过程~

 

官网地址

Apache Sling - Bringing Back the Fun! 带回快乐

Apache Sling™ is an innovative web framework that is intended to bring back the fun to web development.

Discussions about Sling happen on our mailing lists, see the Project Information page for more info.

Apache Sling in five bullets points

  • REST based web framework                              基于Rest
  • Content-driven, using a JCR content repository   内容驱动,使用JCR
  • Powered by OSGi        基于OSGI
  • Scripting inside, multiple languages (JSP, server-side javascript, Scala, etc.) 脚本支持,多语言
  • Apache Open Source project 

Apache Sling in a hundred words  简介

Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content.

Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.

The embedded Apache Felix OSGi framework and console provide a dynamic runtime environment, where code and content bundles can be loaded, unloaded and reconfigured at runtime.

As the first web framework dedicated to JSR-170 Java Content Repositories, Sling makes it very simple to implement simple applications, while providing an enterprise-level framework for more complex applications.

Apache Sling 是一个使用Java内容仓库的web 框架;提供restful风格

内置Apache Felix提供osgi框架支持

是第一个实现JSR-170的仓库

News

  • New Release: Apache Sling Event 4.0.2 (April 4th, 2016)
  • New Release: Apache Sling Discovery Commons 1.0.12 (March 29th, 2016)
  • New Release: Apache Sling Scripting Sightly Engine 1.0.18 (March 18th, 2016)
  • New Release: Apache Maven Sling Plugin 2.1.8 (March 16th, 2016)
  • New Release: Apache Sling IDE Tooling for Eclipse 1.1.0 (March 14th, 2016)

Refer to the news archive for all news.

History

Sling started as an internal project at Day Software , and entered the Apache Incubator in September 2007. As of June, 17th, 2009 Apache Sling is a top level project of the Apache Software Foundation.

The name "Sling" has been proposed by Roy Fielding who explained it like this:

[The name is] Biblical in nature. The story of David: the weapon he uses to slay the giant Goliath is a sling. Hence, our David's [David Nuescheler, CTO of Day Software] favorite weapon.

It is also the simplest device for delivering content very fast.

Getting started

If you prefer doing rather than reading, please proceed to Discover Sling in 15 minutes or read through the recommended links in the Getting Started section, where you can quickly get started on your own instance of Sling.

Use Cases for Sling 使用场景

Wiki 百科

Day built a Wiki system on Sling. Each Wiki page is a node (with optional child nodes) in the repository. As a page is requested, the respective node is accessed and through the applying Component is rendered.

Thanks to the JCR Mapping and the resolution of the Component from the mapped Content, the system does not care for what actual node is addressed as long as there is a Content mapping and a Component capable of handling the Content.

Thus in the tradition of REST, the attachement of a Wiki page, which happens to be in a node nested below the wiki page node is easily accessed using the URL of the wiki page attaching the relative path of the attachement ode. The system resolves the URL to the attachement Content and just calls the attachement's Component to spool the attachement.

Digital Asset Management 数字资产管理

Day has implemented a Digital Asset Management (DAM) Application based on Sling. Thanks to the flexibility of the Content/Component combo as well as the service registration/access functionality offered by OSGi, extending DAM for new content type is merely a matter of implementing one or two interfaces and registering the respective service(s).

Again, the managed assets may be easily spooled by directly accessing them.

Web Content Management  web内容管理(CMS)

Last but not least, Sling offers itself very well to implementing a Web Content Management system. Thanks to the flexibility of rendering the output - remember: the system does not care what to render, as long as the URL resolves to a Content object for which a Component exists, which is called to render the Content - providing support for Web Content authors (not PHP programmers but users out in the field) to build pages to their likings can easily be done.

References

Apache Jackrabbit

The main purpose of Sling is to develop a content-centric Web Application framework for Java Content Repository (JCR) based data stores. Sling is implemented - with the notable exception of JCR Node Type management - purely in terms of the JCR API and as such may use any JCR compliant repository. The default implementation for Apache Jackrabbit is provided out of the box.

OSGi

Sling is implemented as a series of OSGi Bundles and makes extensive use of the OSGi functionality, such as lifecycle management and the service layer. In addition, Sling requires several OSGi compendium services to be available, such as the Log Service, Http Service, Configuration Admin Service, Metatype Service, and Declarative Services.

Apache Felix

While Sling does not require a specific OSGi framework implementation to run in, Sling is being developed using Apache Felix as the OSGi framework implementation. It has not been tested yet, but it is expected that Sling also operates perfectly inside other OSGi frameworks such as Equinox and Knopflerfish.

 

转载于:https://www.cnblogs.com/doonly/p/5364526.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值