Basic Customization > Windchill Customization Basics > Managing Customizations > Best Practices for Adding New Packages and Files
  
Best Practices for Adding New Packages and Files
To create custom applications, your site may need to create new packages and files. You can store new packages and files under the <Windchill>/src/directory structure; however, the packages and files that are defined should not be stored under the <Windchill>/src/wt or <Windchill>/src/com/ptc directory.
Typically, newly developed packages and files are stored under the domain name of your company. For example if your company domain name is mycompany.com, store them under <Windchill>/src/com/mycompany.
* 
When you create a new package, you need to add it to the includeClassStartsWith property in wt.properties. This property lists the package hierarchies that are included when resolving inherited descriptor information. For example, if you add the package com.mycompany, use xconfmanager to add “com.mycompany.” to the property, with the following command from a windchill shell:
xconfmanager --add com.ptc.core.meta.descriptor.server.impl.includeClassStartsWith=com. mycompany. -p
Make sure the package name ends with the period (".") character.
The types of files that you should store under <Windchill>/src/com/mycompany include new Java source files, property files, HTML templates, RBINFO files, and XCONF files.
In addition to keeping your new packages and files in a <Windchill>/src/com/mycompany directory structure, you must include corresponding packages and files in your runtime system. For example, the following list explains where your files should be placed:
Java files are typically compiled to a comparable directory under <Windchill>/codebase. For example, if you create a class under <Windchill>/src/com/mycompany/part, you could compile it to <Windchill>/codebase/com/mycompany/part.
Resource bundle files must be compiled into a directory under <Windchill>/codebase at runtime. This can be done using the ResourceBuild command. For example, if you have new RBINFO files in the directory <Windchill>/src/com/mycompany/part, you could compile them to the <Windchill>/codebase/com/mycompany/part directory by executing the following command from a windchill shell:
ResourceBuild com.mycompany.part
Property files maintained in a custom directory like <Windchill>/src/com/mycompany must be copied to a directory in <Windchill>/codebase at runtime.
Often when you integrate new packages and files into your existing environment, you must change files that were supplied by PTC. Be sure to manage these customized files as directed in earlier sections.
* 
When you are updating files for a maintenance release, remember to copy any updated new packages and files that are used in your runtime system from your test system to your production system.
Modeling Recommendations
Sites that use custom modeled classes using Windchill InformationModeler and Java Annotations, may store their new packages and classes under the <Windchill>/src directory structure; however, the packages that are defined should not be stored under the <Windchill>/src/wt or <Windchill>/src/com/ptc directory.
Typically, newly developed packages and classes are stored under the domain name of your company, as described previously.
Some customizations can also be stored under the <Windchill>/src/com/myCompany directory.