@@ -0,0 +1,1703 @@
+/*%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.security;%0A%0Aimport org.openremote.logging.Logger;%0A%0Aimport java.security.Provider;%0Aimport java.security.Security;%0A%0A/**%0A * Provides some generic methods to work on JVM installed security providers.%0A *%0A * @author %3Ca href=%22mailto:juha@openremote.org%22%3EJuha Lindfors%3C/a%3E%0A */%0Apublic class Providers%0A%7B%0A%0A  private final static Logger log = Logger.getInstance(SecurityLog.CONFIGURATION);%0A%0A  public static void main(String... args)%0A  %7B%0A    Provider%5B%5D providers = Security.getProviders();%0A    StringBuilder builder = new StringBuilder(1024);%0A%0A    for (Provider provider : providers)%0A    %7B%0A      builder.append(%22%5CnPROVIDER:%22);%0A      builder.append(provider.getName());%0A      builder.append(%22%5Cn            %22);%0A      builder.append(provider.getInfo());%0A      builder.append(%22%5Cn%22);%0A    %7D%0A%0A    log.error(builder.toString());%0A  %7D%0A%7D%0A%0A

add a main class