smc - State Machine Compiler

Property Value
Distribution RPM Universal
Repository JPackage 5.0 all
Package name smc
Package version 5.0.2
Package release 2.jpp5
Package architecture noarch
Package type rpm
Installed size 325.77 KB
Download size 312.17 KB
Official Mirror
Your application lives in a world of asynchronous, unordered
events: mouse clicks, timeouts, messages, and OS signals.
And you're ready for them. You've carefully designed your
objects. You're using robust patterns that facilitate reuse
and anticipates future product direction. Your dynamic models
allow your objects to recover from all but the most
catestrophic events. Your application is ready for
But there's a hitch. Your detailed state diagrams are only
pictures. How are you going to translate your drawings into
code? A transition matrix is cryptic while switch statements
means your state machine logic is scattered all over your code.
The state pattern looks like a great solution but that means
writing and maintaining a class for each state - too much
Enter SMC - The State Machine Compiler. Now you put your state
diagram in one file using an easy-to-understand language. SMC
generates the state pattern classes for you. No more
hand-maintained transition matrices. No more widely scattered
switch statements. Instead, the state diagram is in one place,
coded directly from the picture to the SMC language and is
easily maintained.
SMC uses the state pattern to its fullest extent. In the real
world, events don't always happen when they should. Dealing
with unexpected events is a must for a robust application. By
combining virtual methods with the state pattern, SMC allows
you to define "Default" transitions - transitions which allow
your objects to handle unexpected events, recover and continue
providing service (rather than crashing, burning and getting
you into trouble).
SMC is a Java application. That means SMC will work on any
platform where Java 1.5.0 or better is supported.


Package Version Architecture Repository
smc-6.0.1-3.jpp6.noarch.rpm 6.0.1 noarch JPackage 6.0
smc - - -


Name Value
java >= 1.5.0
jpackage-utils >= 1.7.4


Name Value
smc = 5.0.2-2.jpp5


Type URL
Binary Package smc-5.0.2-2.jpp5.noarch.rpm
Source Package smc-5.0.2-2.jpp5.src.rpm

Install Howto

Fedora, CentOS, RHEL:
  1. Download latest jpackage-release rpm from
  2. Install jpackage-release rpm:
    # rpm -Uvh jpackage-release*rpm
  3. Install smc rpm package:
    # yum install smc
  1. Add the JPackage 5.0 repository:
    # zypper addrepo jpackage-5.0
  2. Install smc rpm package:
    # zypper install smc
Mandriva, Mageia:
  1. Add the JPackage 5.0 repository:
    # urpmi.addmedia jpackage-5.0 with
  2. Update packages list:
    # urpmi.update -a
  3. Install smc rpm package:
    # urpmi smc




2008-12-08 - Will Tatam <> 5.0.2-2
- Auto rebuild for JPackage 5 in mock
2008-04-22 - Ralph Apel <> - 0:5.0.2-1jpp
- First JPP release
- Validate build in mock

See Also

Package Description
smc-javadoc-5.0.2-2.jpp5.noarch.rpm Javadoc for smc
smc-manual-5.0.2-2.jpp5.noarch.rpm Documents for smc
snmptrapappender-1.2.8-6.jpp5.noarch.rpm SNMP Trap Appender extension for log4j
snmptrapappender-javadoc-1.2.8-6.jpp5.noarch.rpm Javadoc for snmptrapappender
snmptrapappender-repolib-1.2.8-6.jpp5.noarch.rpm Artifacts to be uploaded to a repository library
spring-1.2.9-3.jpp5.noarch.rpm Spring J2EE Framework
spring-all-1.2.9-3.jpp5.noarch.rpm Spring all except mocks
spring-aop-1.2.9-3.jpp5.noarch.rpm Spring aop
spring-beandoc-0.8.1-1jpp.noarch.rpm Spring Beandoc
spring-beandoc-javadoc-0.8.1-1jpp.noarch.rpm Javadoc for spring-beandoc
spring-beans-1.2.9-3.jpp5.noarch.rpm Spring beans
spring-context-1.2.9-3.jpp5.noarch.rpm Spring context
spring-core-1.2.9-3.jpp5.noarch.rpm Spring core
spring-dao-1.2.9-3.jpp5.noarch.rpm Spring dao
spring-demo-1.2.9-3.jpp5.noarch.rpm Samples for spring