Possible Technologies that will used in the design, development and release of SAIL. If you have any ideas please add them.
Java PDF
Open Source Solutions
- iText - iText is a library that allows you to generate PDF files on the fly. The iText classes are very useful for people who need to generate read-only, platform independent documents containing text, lists, tables and images. The library is especially useful in combination with Java(TM) technology-based Servlets: The look and feel of HTML is browser dependent; with iText and PDF you can control exactly how your servlet's output will look.
- jfreereport- Java reporting tool for formatting PDF reports. It is possible to simply hand off a swing TableModel to JFreeReport and get a paginated pdf as a result.
- FOP - FOP is an XSL formatter written in Java. It is used in conjunction with an XSLT transformation engine to format XML documents into PDF.
- JasperReports - JasperReports is a powerful open source Java reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files
older pdf implementation
Open Source Java PDF Viewer
JPedal
Java Messaging Service (JMS)
IDE
Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.
See also Building SAIL and Building Pas Suite
- General
- Tutorials & White Papers
Necessary plugins
| Name | Update site |
|---|---|
| Maven 2 Plugin | http://m2eclipse.codehaus.org/ |
| Subversive | http://www.polarion.org/projects/subversive/download/update-site/ |
Other plugins you may find useful
| Name | Update site |
|---|---|
| Log4E | http://log4e.jayefem.de/update |
| Koders search | http://www.koders.com/Special/Plugins/Eclipse/Update/site.xml |
| JarPlug | http://www.simontuffs.com/jar-plug |
| Patternbox | none |
| SFTP | http://klomp.org/eclipse/updates/ |
| Protocols | none |
| AdvanQas | none |
| Hibernate Synchronizer | http://hibernatesynch.sourceforge.net/update/ |
| Spring IDE | http://springide.org/updatesite/ |
UI Development
- Components
- Scalable Vector Graphics (SVG)
- Flash and Java
- QuickTime for java
Java 2 Micro Edition - J2ME
J2ME is the platform for cell phones and thin GUIs on the desktop. That domain is very similar to ours in that you have remote devices that cannot assume any computer savvy and need to be updated automatically. They also have the issues of data exchange over an unreliable link.
- Using J2EE to Drive J2ME Applications
- Managed Smart Clients (chapter from book Enterprise J2ME: Developing Mobile Java Applications
Java 2 Enterprise Edition - J2EE
- J2EE Authorization API
- Servlets
- JavaServer Faces
- Java Server Pages
- JSR-168
- Web Servers (WS)
- Java Web Services
Enterprise Java Beans (EJBs)
- Entity Beans
- Session Beans
- Message Beans
- Application Servers (AS)
Core Java
Coding
- Retroweaver - converts JRE 1.5 bytecode to run in JRE 1.4
- Aspect Oriented Programming - O'Reilly primer on AOP
- Xdoclet
- JPOXOpen source implemenation of JDO.
- MockObjects
- OSGi - Open Services Gateway initiative (OSGi) standard component framework specifies how components should be registered with an application for dynamic loading and unloading
Authoring
- Ptolemy II - Java packages supporting heterogeneous, concurrent modeling and design
- Groovy Java-ish scripting language that runs on JVM (WhyGroovy) (Groovy intro)
- Code Generation with Velocity
Distribution
- Rachel - Resource Loading for Java Web Start Made Easy
- Apollo - Open Source Test Skeleton Toolkit for Java Web Start
- JNLP Wrapper for native apps - Java webstart with native apps
- Jsmooth - .exe wrapper
- Microsoft's open source installer
- BitTorrent - using the Java code in Azureus
- MAGNET - an open URI scheme for hash-identified resources
- Native platform integration - O'Reilly article on ways to make Java "go native"
- EhCache a light weight caching framework that could be useful if we need to put together a custom distribution system. Among other things it supports distributed access to the cache.
Peer-to-peer
- JXTA - with Tomcat, with P2P
- JmDNS - Java LGPL implementation of ZeroConf/Rendezvous
- JavaSpaces distributed Java architecture
- Jini
- Autonomic Computing
- Ivy - Ivy is a multi-user read/write peer-to-peer file system.
Distributed Systems
These could be ways to efficiently deploy the owl code and content. And also to maintain synchronized user data.
- article on JMS and JavaSpaces
- Distributed Hash Tables (DHTs)
- Chord Project - group working on CFS and Chord.
These are not java based but their designs and analysis are very informative. CFS is a cooperative read-only file system. Authors can securely insert data into the file system and then it is dynamically published using a distributed hastable. Chord is the hash search system used by CFS. - Tapestry and OceanStore - West coast Chord/CFS

- Bamboo DHT - "A Robust, Open-Source DHT" using Java NIO
- Chord Project - group working on CFS and Chord.
- PlanetLab - a test bed for distributed systems. We might be able to use this to emulate school servers in our tests.
- Freenet - anonymous p2p content distribution network
- SHA1
- Scope-aware distributed OMF for J2EE - A scope-aware system eases development and prevents memory leaks
Storage
- MySQL
- Postgres
- eXist an XML database that is fast
JSR-170- Content Repository for Java (mostly doc management, not applicable)