/*******************************************************************************
 * Copyright (c) 2010 BSI Business Systems Integration AG.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     BSI Business Systems Integration AG - initial API and implementation
 ******************************************************************************/
package org.eclipse.scout.sdk.rap;

/**
 * <h3>{@link RapRuntimeClasses}</h3> ...
 * 
 * @author mvi
 * @since 3.8.0 11.02.2012
 */
public final class RapRuntimeClasses {
//CHECKSTYLE:OFF
  public final static String ScoutUiRapBundleId = "org.eclipse.scout.rt.ui.rap"; // NO_UCD
  public final static String ScoutRapTargetPlugin = "org.eclipse.scout.rt.rap.target"; // NO_UCD
//CHECKSTYLE:ON
}
