- Level of integration: Very/Low http://css.desy.de/content/e760/e761/index_eng.html
- Checking out
- Install Mercurial
- Download source code http://mercurial.selenic.com/release/mercurial-1.6.4.tar.gz
- Type "make local" in the top directory
- Download source code http://mercurial.selenic.com/release/mercurial-1.6.4.tar.gz
- Install MercurialEclipse
- http://www.javaforge.com/project/HGE#download
(update site is fine)
- http://www.javaforge.com/project/HGE#download
- Clone CSS repository
- http://sourceforge.net/apps/trac/cs-studio/wiki/SourceRepository
- Use 'read-only' => http://cs-studio.hg.sourceforge.net:8000/hgroot/cs-studio/cs-studio
(no account/password)
- http://sourceforge.net/apps/trac/cs-studio/wiki/SourceRepository
- More heap space for Eclipse needed
- Edit eclipse.ini in $ECLIPSE_HOME (768 MB is what I have)
- Java 1.6 needed for some CSS plugins
- Install Mercurial
- Developing
- The minimum list of plugins to develop with DataBrowser
- Adding existing HLA library
- Wrap as a plugin
- The minimum list of plugins to develop with DataBrowser
How to develop with CSS
- Overview https://ics-web.sns.ornl.gov/css/EPICS2010Intro/EclipseCSSDevIntro1.pdf
- Demos http://css.desy.de/content/e70/e10/index_eng.html
- JavaDoc http://css-javadoc.desy.de/
- Plugins http://css.desy.de/epicsgroup/css/content/e428/e396/e402/e491/CSSPluginOverview.htm
- DAL
- Preferences
- Messages
- Authentication and Authorization http://sourceforge.net/apps/trac/cs-studio/wiki/AuthAndAuth
- Mailing list http://sourceforge.net/mailarchive/forum.php?forum_name=cs-studio-core
- Development environment
- Tools
- Localization editor http://css.desy.de/content/e428/e1446/e1448/index_eng.html
- IDE
- Version Control
- Hg http://sourceforge.net/apps/trac/cs-studio/wiki/SourceRepository
- Eclipse plugin: http://www.javaforge.com/project/HGE
- Commit, then push
- Pull, then update
- Hg http://sourceforge.net/apps/trac/cs-studio/wiki/SourceRepository
- Localization editor http://css.desy.de/content/e428/e1446/e1448/index_eng.html
- API
- Documentation
- Eclipse Architecture
- CSS Architecture
- Tools
- Build and release procedures
- Eclipse-based build http://ics-web.sns.ornl.gov/css/devel.html
- Headless
- Creating a product
- Automated?
- Eclipse-based build http://ics-web.sns.ornl.gov/css/devel.html
- Production environment
How to contribute to CSS
- Level of integration http://css.desy.de/content/e760/e761/index_eng.html
- Standards
- Test-driven (JUnit) http://sourceforge.net/apps/trac/cs-studio/wiki/UnitTests
- Test-driven (JUnit) http://sourceforge.net/apps/trac/cs-studio/wiki/UnitTests
- Procedure http://css.desy.de/content/e760/e761/index_eng.html
- Select the level of integration for your plugin from the list above
- Use existing interfaces and extension points
- Add new extension points whenever useful
- Use Eclipse contributions to integrate your plugin seamlessly with other plugins
- Use common data types (IData) to exchange data (not only strings) with other plugins
- Localize strings in your code
- Decouple local requirements from CSS implementations. Use interfaces to decouple.
- Test CSS core versions and plugins on several platforms (at least Windows, Linux Mac-OS)
- Code style
Links