PCM Development/Getting Started
Useful hints on PCM development
- Palladio GitHub Organisation 
- PCM Updating Model Source Code
- PCM Codebereiche
- PCM Development/Solutions for Compilation Errors: Check this page if you have trouble compiling PCM plugin sources in your local Eclipse.
- PCM Development/Palladio Development Toolkit
- Extending PCM
- PCM Development/Update Sites
- PCM Development/Create new AddOn
- Quality assurance rules
- Palladio Build Infrastructure
- Exploring the PCM metamodel
- Check out the category Category:PCM Development for more PCM development related topics (such as tips for common errors, model generation, and more).
This article gives initial information of how to change the PCM Bench implementation (Either develop new features for the PCM, fix bugs or change things).
The Palladio sources are managed in a Subversion system and we recommend to use the Subversive Eclipse plugin to access the sources. (Subversive Installation Guide)
The three basic option to work with Palladio code are:
- Working with a PCM Installation (recommended)
- Working with Source Code Only (Materialise Palladio Core using Buckminster Feature)
Working with a PCM Installation
- Install the PCM Nightly as described at PCM_Installation#PCM_Nightly
- Only check out and open projects (plugins) you want to change
- Background information: Installed Eclipse plugins are overwritten by compiled plugins in the Eclipse workspace when compiling and running your changed project code (see below)
- Select "Run as Eclipse application"
- All opened plugin projects will be compiled and integrated in the started Eclipse.
- Switch to the Java perspective to see the run configuration.
Working with Source Code Only
The following description applies to working with the source code under Eclipse Luna.
As an alternative to installing the PCM and some source code (as described at PCM_Installation#PCM_Nightly), you might want to omit the PCM installation and check out the whole source code instead. This is useful if you want to avoid any incompatibilities between installed and checked out PCM plugins, or if you want a full overview over all source code affected by your change. Proceed as follows:
- Install Eclipse Mars Modeling Edition
- Install required Eclipse Projects features:
- Select Help -> Install new software -> Work with: "Mars - http://download.eclipse.org/releases/mars/"
- Install the following features (select "group items by category" first):
- Collaboration/Subversive SVN Team Provider (minimum requirement to access the SVN Code Repository)
Instructions on how to "materialize" Buckminster components: 
The Palladio Core Buckminster Feature (incl. the required "CQUERY" file) is located in the following SVN: 
- Read-only checkouts from SVN are possible using anonymous / anonymous credentials.
- If you contribute new code or code changes you have to use your personal credentials for commits and you have to posess the corresponding rights.
- This checkout takes about 15-20 minutes, so you might want to do this during your lunch break
- If any of the projects reports an error after checkout try right click -> validate
- Ensure that your project is configured to UTF-8 file encoding
Creating PCM model elements from code
You can instantiate one of the model factories, and then use this factory to create model elements defined in the meta model. see Example PCM Model Factories for an example project.
- de.uka.ipd.sdq.pcm.repository.RepositoryFactory (for repositories, components, interfaces, roles)
- de.uka.ipd.sdq.pcm.resourcetype.ResourcetypeFactory (for abstract resource types, such as processing or communication resources)
- de.uka.ipd.sdq.pcm.seff.SeffFactory (for resource demanding service effect specifications)
- de.uka.ipd.sdq.pcm.system.SystemFactory (for system containers)
- de.uka.ipd.sdq.pcm.usagemodel.UsagemodelFactory (for user behaviour)
If you want to find specific PCM plugins, check the PCM_Code_Overview to find our in which folder in the SVN the plugin is located.
A list of the used Licenses in PCM.