tasks that a user must accomplish

  1. create sip servlets
    1. implement protocol messages in the servlet

protocol methods need to be mapped in the sip.xml in the servlet-mapping element for jsr116. This is another multi-file dependency. jsr289 uses the application router which eliminates the servlet-mapping element? Only one servlet can implement a doXyz method in an app?

    1. utility code to access "standard" resources in the servlet

SIP Factory, supported extensions list, Timer service

    1. Sip Listeners

multiple types. have corresponding code in the sip.xml.

  1. compile source into classes

Need to have the sip classes, interfaces and annotation on the CP to do this.

  1. edit the sip.xml

each jsr116 sip servlet needs an entry in the sip.xml. the sip.xml cannot contain "dangling references".

  1. edit sun-sip.xml
  2. package into an archive

Take the class files an package them as required by jsr116 and jsr289

  1. deploy to a SIP container

as an archive or as a directory.

  1. trigger SIP messages towards the container to test logic in application

NetBeans is an IDE written in Java. it currently supports the development of many of the J2EE 1.4 and Java EE 5 components that are envisioned around a Converged SIP Servlet application.

One of the central components of the IDE is the Project concept. Nearly every file edited in NetBeans is assumed to be part of a project. Since the project is such a central element to the user experience with NetBeans, it makes sense that a user would look to Project Templates for guidance on what they can do with the IDE.

The current SIP Servlet development support is hidden behind the Web Application Projects. This should be resolved. The most correct way to have a new project type is to create a new module that creates the new project type and completely customizes the experience around the expectations of the tasks that users will need to accomplish.

This correctness is also very expensive.

Another approach to creating a new project type is to give an existing project type a new entry in the templates. This facade project type is much cheaper to implement. It can be confusing to the user after the IDE has met an initial expectation, "I expect to see a New Project template that has the string 'SIP' in its name". After seeing that a SIP Application project can be created, the user will start to look for a way to create a new SIP servlet. If the project is really some other kind the user will have to dig around to find the wizard that creates a SIP servlet.

The templates that appear initially in the right click menu come from the PrivilegedTemplates. This list is extensible for web app projects.