@@ -0,0 +1,3154 @@
+/*%0A * OpenRemote, the Home of the Digital Home.%0A * Copyright 2008-2014, OpenRemote Inc.%0A *%0A * See the contributors.txt file in the distribution for a%0A * full listing of individual contributors.%0A *%0A * This program is free software: you can redistribute it and/or modify%0A * it under the terms of the GNU Affero General Public License as%0A * published by the Free Software Foundation, either version 3 of the%0A * License, or (at your option) any later version.%0A *%0A * This program is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the%0A * GNU Affero General Public License for more details.%0A *%0A * You should have received a copy of the GNU Affero General Public License%0A * along with this program. If not, see %3Chttp://www.gnu.org/licenses/%3E.%0A */%0Apackage org.openremote.exception;%0A%0A/**%0A * A runtime (unchecked) exception type to indicate implementation errors (code paths that%0A * should not be reached under normal conditions). Differentiating the exception type to make%0A * it easier to distinguish from other predefined exception types that may originate for example%0A * from third party libraries. This allows clear distinction between OpenRemote error conditions%0A * and other errors that may be handled separately.%0A *%0A * @author %3Ca href=%22mailto:juha@openremote.org%22%3EJuha Lindfors%3C/a%3E%0A */%0Apublic class IncorrectImplementationException extends OpenRemoteRuntimeException%0A%7B%0A%0A%0A  // TODO : Should be moved to a base package once one is created   %5BJPL%5D%0A%0A  /**%0A   * Constructs a new implementation exception with a given message.%0A   *%0A   * @param msg%0A   *          human-readable error message%0A   */%0A  public IncorrectImplementationException(String msg)%0A  %7B%0A    super(msg);%0A  %7D%0A%0A  /**%0A   * Constructs a new implementation exception with a parameterized message.%0A   *%0A   * @param msg%0A   *          human-readable error message%0A   *%0A   * @param params%0A   *          exception message parameters -- message parameterization must be%0A   *          compatible with %7B@link java.text.MessageFormat%7D API%0A   *%0A   * @see java.text.MessageFormat%0A   */%0A  public IncorrectImplementationException(String msg, Object... params)%0A  %7B%0A    super(msg, params);%0A  %7D%0A%0A  /**%0A   * Constructs a new implementation exception with a given message and root cause.%0A   *%0A   * @param msg%0A   *          human-readable error message%0A   *%0A   * @param cause%0A   *          root exception cause%0A   */%0A  public IncorrectImplementationException(String msg, Throwable cause)%0A  %7B%0A    super(msg, cause);%0A  %7D%0A%0A  /**%0A   * Constructs a new implementation exception with a parameterized message and root cause.%0A   *%0A   * @param msg%0A   *          human-readable error message%0A   *%0A   * @param cause%0A   *          root exception cause%0A   *%0A   * @param params%0A   *          exception message parameters -- message parameterization must be%0A   *          compatible with %7B@link java.text.MessageFormat%7D API%0A   *%0A   * @see java.text.MessageFormat%0A   */%0A  public IncorrectImplementationException(String msg, Throwable cause, Object... params)%0A  %7B%0A    super(format(msg, params), cause);%0A  %7D%0A%0A%7D%0A%0A

Add an exception type for implementation error. Including here until a common base package has been set up.