Skip to content

Commit

Permalink
Initial MSC2 documentation.
Browse files Browse the repository at this point in the history
  • Loading branch information
ropalka committed Apr 10, 2015
1 parent d4db31d commit d2b5dba
Show file tree
Hide file tree
Showing 6 changed files with 150 additions and 16 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,13 @@ Build project
Build documentation

> mvn javadoc:javadoc
> mvn site
Read documentation

> target/site/index.html
License
-------
* [Apache License Version 2.0](http://repository.jboss.org/licenses/apache-2.0.txt)
Expand Down
78 changes: 62 additions & 16 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
<groupId>org.jboss.msc</groupId>
<artifactId>jboss-msc</artifactId>
<version>2.0.0.Beta1-SNAPSHOT</version>
<name>JBoss Modular Service Container</name>
<name>Modular Service Container 2 (MSC 2)</name>
<description>MSC 2 is super fast, highly concurrent services framework with built-in transactions support.</description>

<parent>
<groupId>org.jboss</groupId>
Expand All @@ -46,6 +47,57 @@
<url>${project.scm.url}</url>
</scm>

<organization>
<name>JBoss By Red Hat</name>
<url>http://www.jboss.org</url>
</organization>

<issueManagement>
<system>JIRA</system>
<url>https://issues.jboss.org/browse/MSC2/</url>
</issueManagement>

<developers>
<developer>
<id>dmlloyd</id>
<name>David M. Lloyd</name>
<email>david dot lloyd at redhat dot com</email>
<organization>Red Hat Inc.</organization>
<organizationUrl>http://www.redhat.com</organizationUrl>
<roles>
<role>visionary</role>
<role>architect</role>
</roles>
<timezone>America/Chicago</timezone>
</developer>
<developer>
<id>fl4via</id>
<name>Flavia Rainone</name>
<email>frainone at redhat dot com</email>
<organization>Red Hat Inc.</organization>
<organizationUrl>http://www.redhat.com</organizationUrl>
<roles>
<role>developer</role>
<role>tester</role>
</roles>
<timezone>America/Sao_Paolo</timezone>
</developer>
<developer>
<id>ropalka</id>
<name>Richard Opalka</name>
<email>ropalka at redhat dot com</email>
<organization>Red Hat Inc.</organization>
<organizationUrl>http://www.redhat.com</organizationUrl>
<roles>
<role>architect</role>
<role>developer</role>
<role>tester</role>
<role>documentator</role>
</roles>
<timezone>Europe/Prague</timezone>
</developer>
</developers>

<properties>
<project.url>https://github.com/jboss-msc/msc2</project.url>
<project.scm.url>git@github.com:jboss-msc/msc2.git</project.scm.url>
Expand Down Expand Up @@ -84,27 +136,21 @@

<build>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<excludePackageNames>org.jboss.msc._private</excludePackageNames>
<docfilessubdirs>true</docfilessubdirs>
<detectJavaApiLink>false</detectJavaApiLink>
<detectLinks>false</detectLinks>
<doclet>net.gleamynode.apiviz.APIviz</doclet>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.2.GA</version>
</docletArtifact>
<doctitle><![CDATA[JBoss Modular Service Container API ]]>${project.version}</doctitle>
<header><![CDATA[JBoss Modular Service Container API ]]>${project.version}</header>
<footer><![CDATA[JBoss Modular Service Container API ]]>${project.version}</footer>
<bottom><![CDATA[<i>Copyright &#169; 2013 JBoss, a division of Red Hat, Inc.</i>]]></bottom>
<links>
<link>http://java.sun.com/javase/6/docs/api/</link>
</links>
<doctitle><![CDATA[Modular Service Container API ]]>${project.version}</doctitle>
<header><![CDATA[Modular Service Container API ]]>${project.version}</header>
<footer><![CDATA[Modular Service Container API ]]>${project.version}</footer>
<bottom><![CDATA[<i>Copyright &#169; 2015 JBoss, a division of Red Hat, Inc.</i>]]></bottom>
</configuration>
</plugin>
<plugin>
Expand All @@ -121,4 +167,4 @@
</plugins>
</build>

</project>
</project>
9 changes: 9 additions & 0 deletions src/site/apt/guide.apt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
MSC 2 User Guide

* {{{#Preface} Preface}}

[]

* {Preface}

TODO: write documentation
47 changes: 47 additions & 0 deletions src/site/apt/index.apt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Overview

When MSC 1 was implemented it was designed with a <<JBoss AS 5/6>> server type in mind.
The initial idea behind MSC 1 was <everything is a deployment>.
Later when <<JBoss AS 7>> and <<Wildfly>> were implemented on top of MSC 1
it became obvious it does not play nicely with management
operations which typically need to know when particular operation is
complete, whether any part of the operation failed and if it failed what
the failures were (ideally in human-readable language).

The main <<JBoss AS 7>> and <<Wildfly>> problem from MSC point of view is they cannot deterministically decide when a management
operation is done. The MSC 1 state machine makes it impossible.
Therefore there were many time-based hacks implemented in <<JBoss AS 7>> and <<Wildfly>> code bases to workaround this limitation.
All these hacks were implemented using MSC 1 <<service listeners>> and later little
bit optimized with <<Stability monitors>> which have been introduced in MSC 1.1. But both approaches exposed the same
problem - they significantly degrade the MSC 1 performance.

The origin MSC team analyzed MSC 1 and its usage in <<Wildfly>> and it came with these conclusions:

* MSC 1 had great performance until service listeners and stability monitors were introduced

* Wildfly management layer tries to emulate transactional behavior on top of MSC 1

* MSC 1 API is difficult to use (e.g. its complex injection/value framework)

[]

The outcome of this analysis was obvious - the need to create new <<MSC 2>> with goals:

* it will be much more faster than MSC 1

* it will consume much less memory than MSC 1

* it will come with built-in support for transactions

* its API will be radically simplified

* its runtime model will be enhanced - no more one container for everything

[]

And here it goes. MSC 2 is in many usecases times faster than MSC 1 was.
It consumes much less memory and it was designed with an idea <everything is a transaction>.
It has more than {{{./apidocs/index.html}twice less}} classes than MSC 1 had.
Its API is much more cleaner and easier to use.

Dear users, welcome to the new era - {{{./guide.html}the MSC 2 world}}.
Binary file added src/site/resources/images/GitHub-Mark-64px.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions src/site/site.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="JBoss Modular Service Container 2">
<bannerLeft>
<name>Modular Service Container 2</name>
<href>http://github.com/jboss-msc/msc2</href>
</bannerLeft>
<bannerRight>
<name>GitHub</name>
<href>https://www.github.com/</href>
<src>images/GitHub-Mark-64px.png</src>
</bannerRight>
<body>
<menu name="Get MSC 2">
<item name="Downloads" href="http://github.com/jboss-msc/msc2"/>
<item name="License" href="license.html"/>
</menu>
<menu name="Release (Current)">
<item name="Guide" href="guide.html"/>
<item name="Javadoc" href="apidocs/index.html"/>
<item name="Dependencies" href="dependencies.html"/>
</menu>
<menu name="Project Documentation">
<item name="About" href="index.html"/>
<item name="Project Info" href="project-info.html"/>
</menu>
</body>
</project>

0 comments on commit d2b5dba

Please sign in to comment.