Wiki source code of Your First Framework
Last modified by Steve Peery on 2012/08/09 05:08
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
5.1 | 1 | {{toc/}} |
![]() |
1.1 | 2 | |
3 | = Introduction = | ||
4 | |||
5 | Now that we have a working REST project, let's create a framework. A framework in a Project Wonder context is a special folder that contains Java libraries (.jar), other resources (EOModels, images, CSS, etc.) and a Info.plist file. If you are a Cocoa developer, a Project Wonder framework structure have a similar structure as a Cocoa framework. | ||
6 | |||
7 | When a framework is built (with Ant or Maven), the structure is like this: | ||
8 | |||
9 | MyStuff.framework | ||
![]() |
5.1 | 10 | ~-~-> Resources |
11 | ~-~-~-~-> Info.plist | ||
12 | ~-~-~-~-> Java | ||
13 | ~-~-~-~-~-~-> mystuff.jar | ||
14 | ~-~-~-~-~-~-> some-third-party.jar | ||
15 | ~-~-~-~-> MyEOModel.eomodeld | ||
16 | ~-~-~-~-> Properties | ||
17 | ~-~-> WebServerResources | ||
18 | ~-~-~-~-> someimage.png | ||
19 | ~-~-~-~-> somestyling.css | ||
![]() |
1.1 | 20 | |
![]() |
3.1 | 21 | So why using frameworks? Simple: to be able to use them in more than one project. Putting your EOModel into a framework is a good idea since you can built many different projects for the same business logic. |
![]() |
1.1 | 22 | |
![]() |
3.1 | 23 | = Creating the framework = |
![]() |
1.1 | 24 | |
![]() |
3.1 | 25 | So let's make a new framework. In Eclipse, open the **File** menu, select **New** and select **Wonder Framework**. Name it **BlogCommon** and click **Finish**. |
![]() |
1.1 | 26 | |
![]() |
3.1 | 27 | Now you have another project in your Eclipse workspace. Open it and you will see that the folder structure is the same as for an Wonder application. A framework and an application in Eclipse is almost the same, the difference is the nature of the project and when the project is built, the product will be a bit different. |
![]() |
1.1 | 28 | |
![]() |
5.1 | 29 | The next step is to copy the EOModel and its related Java code to the framework. Open the **BlogRest** project, open its **Resources** folder, and select **BlogModel.eogen** and **BlogModel.eomodel**. Right-click on one of the two files and select **Refactor** -> **Move**. |
![]() |
1.1 | 30 | |
![]() |
3.1 | 31 | You will see the list of all opened projects in your Eclipse workspace, and we want to copy the two files into the **BlogCommon** project. Select the **Resources** folder of the **BlogCommon** project and click **OK**. |
![]() |
1.1 | 32 | |
![]() |
5.1 | 33 | We need to do similar steps for the Java code. Open the **Sources** folder of the **BlogRest** project. Select the **your.app.model** and **your.app.model.migrations** packages, right-click on one of the packages, and select **Refactor** -> **Move**. For the destination, select the **Sources** folder, and click **OK**. |
![]() |
1.1 | 34 | |
![]() |
3.1 | 35 | = Linking the application with the framework = |
![]() |
1.1 | 36 | |
![]() |
5.1 | 37 | If you go back to the **BlogRest** project, you will see compilation errors. We need to link the application project with the framework project. To do so, right-click on the **BlogRest** project, and select **Build Path** -> **Configure Build Path**. |
![]() |
1.1 | 38 | |
![]() |
4.1 | 39 | Click the **Libraries** tab, and you will see the list of Java archives (.jar) and Project Wonder frameworks. |
![]() |
1.1 | 40 | |
![]() |
3.1 | 41 | To add **BlogCommon** to the build path (aka the class path), click on **Add Library**. |
![]() |
1.1 | 42 | |
![]() |
3.1 | 43 | Select **WebObjects Frameworks** and click **Next**. |
![]() |
1.1 | 44 | |
![]() |
3.1 | 45 | You will see a list of all frameworks that you can add to your project. Check **BlogCommon** in the list and click **Finish**. Click **OK** in the **Properties** window to go back to the main Eclipse window. |
![]() |
1.1 | 46 | |
![]() |
5.1 | 47 | You can see that all compilation errors are now gone. The next thing we need to do is to link the H2PlugIn with the **BlogCommon** framework. Why? Because since we moved the database model to the framework, the framework needs the JDBC plugin included in the H2PlugIn in its build path. To do so, right-click on the **BlogCommon** project, and select **Build Path** -> **Configure Build Path**. |
![]() |
1.1 | 48 | |
![]() |
3.1 | 49 | Click the **Libraries** tab, and you will see the list of Java archives (.jar) and Project Wonder frameworks. Click on **Add Library**, select **WebObjects Frameworks** and click **Next**. Select **H2PlugIn**, click on **Add Library**. Close the **Properties** window to go back to the main Eclipse window. |
![]() |
1.1 | 50 | |
![]() |
7.1 | 51 | You can run the **BlogRest** application and everything will work. By moving the EOModel to the framework, you will be able to use the model in the next tutorial: [[building a DirectToWeb application to manage the blog>>doc:WEB.Home.Getting Started.Your First D2W Project.WebHome]]. |