Version 1

    Introducing Shine Pattern

    A brief history of Shine

    When we started to do a project we encountered an important problem. Developing a project with amateur developers is very dangerous. Because new developers don't care about some important things, and if the project manager, technical architect or head developer don’t care about those points, the project will fail.

    In 2008 the university manager to assess the student progress situation wants them to develop an enterprise project. Because most of students haven’t enough experiences in implementing software project, we did primary analysis and during implementing project we try to don't help them. Unfortunately output of the project was re-programming the project. This problem kept our mind busy for a long time until we try to create a standard and comprehensive pattern for completing a project. After doing this job we do many enterprise projects with this pattern and the result was 50% saving time of developing and extending the project. So we decided to offer this pattern for developers in SourgeForge website.


    The problems which make the projects to are:

    • Not to follow a standard architecture
    • Not to care about naming rules in forms, classes, pages...
    • Creating useless classes in frameworks such as Struts, Spring and also JSF
    • Using complexity classes
    • Implementing logic layer in the UI layer
    • Plethora of dependency on UI
    • Gaffes of web designer
    • Creating meaningless pages
    • Not to care about security points
    • Creating complexity in distributed application on the network by using RMI, Corba, JMS
    • Plethora engaging with frameworks XML adjustments

    Shine's partsShine pattern has been developed for variety of application. This pattern has these parts:

    • Maplet: a framework for doing web projects which are coincidence with MVC architecture. This framework helps developers to follow a standard pattern for developing a web application. Maplet helps developers to save time of developing and extending.
    • JShooter: a framework that makes reflects oriented programming an easy job for developers. Meanwhile it helps distributing application on the network.
    • JConnection: This package helps developers to work with JDBC and Hibernate easier than before.
    • Util: This package helps developers in these subjects:

    1-    File System

    2-    Runtime

    3-    Compiler

    4-    System Information

    5-    Web Socket

    6-    MD5

    7-    Thread

    8-    Validation

    9-    XML Parsing

    10-  Web uploading



    Our suggestion is that before producing any new part for your application search our Util package. There are lots of classes in this package that help you in different fields. This package will be developed by java open source developers in every version of Shine.



    In Shine 2.2 version, all the org.j2sos packages’ name changed to org.j2os.


    Maplet (Web, MVC Framework)

    What is Maplet?

    Maplet is a framework for implementing web based program, which is compatible with MVC architecture. This framework is very easy and helpful for developers and analyzers to do their jobs better than before, let’s begin with a simple example.


    JShooter (Reflect in Network Framework)

    What is JShooter?

    JShooter is a framework for distributing application programs on the network. Certainly, you have used RMI, Corba and JMS. Each of aforementioned technologies has its own special problems and at the same time enjoys extraordinary advantages. However, you must be careful about the expenses caused by these technologies. In most cases RMI, Corba and JMS increase the productions’ costs unbelievably. However in other cases they confuse programmers. Years ago, Reflect Oriented Programming was the focus of attention within professional programmers, then Aspect Oriented Programming came into the programming world but instead of reducing the programmer’s task, it causes the professional programmers and even the amateur ones to be confused in many cases. One of the most important capabilities of JShooter is that it makes the “Reflect Oriented Programming” easier to use.


    JConnection (JDBC & Hibernate Component)

    What is JConnection?

    JConnection is a tool for developers at the DB layer that solve lots of amateurs’ problems. This tool helps you to work with JDBC and Hibernate.


    Util Package

    What is Util?

    Util package helps you to implement your application very easily. This package helps developers who don't want to use basic codes for their application.