Create a new resource type from scratch
Run build Script
- First we create an empty resource-type. For this, use the build script in the console:
./build.sh new-resource-type
for Linux
build.bat new-resource-type
for windows - It will ask you for a name for your resource-type and type a name (this should be all lower case and hyphen separated, e.g.:
my-resource
). This will also be the name of the directory where your resource will reside. - Next, it will ask you for a namespace for your resource. Insert a namespace, e.g.
http://myproject.org/yanel/resource/1.0
- Then, give a short description for your resource-type
- Now, it will ask you for a package name for the java class of your resource type. Type a package name, e.g.
org.wyona.yanel.impl.resources.mypackage
- Enter a java class name of this resource-type, e.g.
MyResource
- Now choose the template for your java class. Type any one of the following: {empty | xml | usecase | examples}.
- Then, you will be asked if you want to implement interfaces in your java class. Type
yes
to implement interfaces. - You will be asked for the different interfaces. Type yes for necessary interfaces.
- Now the newly created resource is available in the directory
$YANELHOME/src/contributions/resources
- Your resource type directory now contains the following items:
./yanel-htdocs/doc/index.html
./yanel-htdocs/icons/scalable/rt-icon.svg
./yanel-htdocs/icons/32x32/rt-icon.png
./yanel-htdocs/icons/22x22/rt-icon.png
./yanel-htdocs/icons/16x16/rt-icon.png
./resource.xml
./build.xml
./src/build/dependencies.xml
./src/build/build.properties
./src/java/org/myproject/yanel/impl/resources/MyResource.java
Register New Resource
- Register your newly created resource to the
local.resource-types.xml
(in$YANELHOME/conf/local/local.resource-types.xml
) by adding the following line:
<resource-type src="@YANEL_SRC_DIR@/src/contributions/resources/your-resource/" compile="true"/>
webapps/yanel/WEB-INF/classes/resource-types.xml)
Implement Functionality
- Implement necessary functionality in the MyNewResource.java.
Rebuild Yanel
- Rebuild Yanel so that yanel can build our newly created resource-type also.
- Please note that a resource type can also be built on its own (e.g.
./build.sh -f src/resources/xml/build.xml
), whereas one might have to update the dependencies (e.g. insrc/resources/xml/src/build/dependencies.xml
)
Restart Yanel
- Type
./yanel.sh start
for Linux orstart-yanel.bat
for Windows - Your new resource type should be listed now at http://127.0.0.1:8080/yanel/
Add Resource Type configuration
- Yanel looks up the configuration for a requested URL, to determine what resource-type to use. The resource-type configuration files are located in the repository which is configured as the rti (resource type identifier) repository in a realm (e.g
$YANELHOME/src/realms/use-cases/yanel/rti/my-resource.html.yanel-rc)
.<?xml version="1.0"?>
<yanel:resource-config xmlns:yanel="http://www.wyona.org/yanel/rti/1.0">
<yanel:rti name="hello-world" namespace="http://myproject.org/yanel/resource/1.0"/>
</yanel:resource-config>
Browse Resource
- You can view the newly created resource by visiting
http://localhost:8080/yanel/test/use-cases/my-resource.html
.
Ignoring the build directory
- If you are using svn or git for version control, note that the first time you build your new resource, the directory
build
will be created in the resource's home directory. To make svn ignore this directory, in the resource's home directory do:
svn propset svn:ignore build
Or to make git ignore this directory, create a .gitignore file containing 'build' as a directory to be ignored.
Your comments are much appreciated
Is the content of this page unclear or you think it could be improved? Please add a comment and we will try to improve it accordingly.