Wiki source code of Your First Framework
Last modified by Steve Peery on 2012/08/09 05:08
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{toc/}} | ||
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 | ||
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 | ||
20 | |||
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. | ||
22 | |||
23 | = Creating the framework = | ||
24 | |||
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**. | ||
26 | |||
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. | ||
28 | |||
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**. | ||
30 | |||
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**. | ||
32 | |||
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**. | ||
34 | |||
35 | = Linking the application with the framework = | ||
36 | |||
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**. | ||
38 | |||
39 | Click the **Libraries** tab, and you will see the list of Java archives (.jar) and Project Wonder frameworks. | ||
40 | |||
41 | To add **BlogCommon** to the build path (aka the class path), click on **Add Library**. | ||
42 | |||
43 | Select **WebObjects Frameworks** and click **Next**. | ||
44 | |||
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. | ||
46 | |||
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**. | ||
48 | |||
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. | ||
50 | |||
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]]. |