/*******************************************************************************
* Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.tools.workbench.scplugin.model;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.eclipse.persistence.tools.workbench.utility.ClassTools;
import org.eclipse.persistence.tools.workbench.utility.iterators.TransformationIterator;
public class ServerPlatformManager extends SCPlatformManager {
private Map configs;
public static final String NO_SERVER_ID = "NoServerPlatform";
public static final String WEBLOGIC_10_ID = "WebLogic_10_Platform";
public static final String WEBLOGIC_9_ID = "WebLogic_9_Platform";
public static final String WEBLOGIC_8_1_ID = "WebLogic_8_1_Platform";
public static final String WEBLOGIC_7_0_ID = "WebLogic_7_0_Platform";
public static final String WEBLOGIC_6_1_ID = "WebLogic_6_1_Platform";
public static final String WEBSPHERE_7_ID = "WebSphere_7_Platform";
public static final String WEBSPHERE_6_1_ID = "WebSphere_6_1_Platform";
public static final String WEBSPHERE_6_0_ID = "WebSphere_6_0_Platform";
public static final String WEBSPHERE_5_1_ID = "WebSphere_5_1_Platform";
public static final String WEBSPHERE_5_0_ID = "WebSphere_5_0_Platform";
public static final String WEBSPHERE_4_0_ID = "WebSphere_4_0_Platform";
public static final String JBOSS_ID = "JBossPlatform";
public static final String SUNAS_ID = "SunAS9ServerPlatform";
public static final String CUSTOM_SERVER_ID = "CustomServerPlatform";
private static ServerPlatformManager INSTANCE;
private ServerPlatformManager() {
super();
}
@Override
protected void initialize() {
super.initialize();
this.configs = new HashMap();
this.buildConfigs();
}
/**
* singleton support
*/
public static synchronized ServerPlatformManager instance() {
if( INSTANCE == null) {
INSTANCE = new ServerPlatformManager();
}
return INSTANCE;
}
protected void addConfig( String id, String configClassName) {
this.configs.put( id, configClassName);
}
protected void buidPlatforms() {
this.addPlatform( NO_SERVER_ID, "org.eclipse.persistence.platform.server.NoServerPlatform");
this.addPlatform( WEBLOGIC_9_ID, "org.eclipse.persistence.platform.server.wls.WebLogic_9_Platform");
this.addPlatform( WEBLOGIC_10_ID, "org.eclipse.persistence.platform.server.wls.WebLogic_10_Platform");
this.addPlatform( WEBSPHERE_6_1_ID, "org.eclipse.persistence.platform.server.was.WebSphere_6_1_Platform");
this.addPlatform( WEBSPHERE_7_ID, "org.eclipse.persistence.platform.server.was.WebSphere_7_Platform");
this.addPlatform( JBOSS_ID, "org.eclipse.persistence.platform.server.jboss.JBossPlatform");
this.addPlatform( SUNAS_ID, "org.eclipse.persistence.platform.server.sunas.SunAS9ServerPlatform");
this.addPlatform( CUSTOM_SERVER_ID, "org.eclipse.persistence.platform.server.CustomServerPlatform");
}
protected void buildConfigs() {
this.addConfig( NO_SERVER_ID, "null");
this.addConfig( WEBLOGIC_9_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.WebLogic_9_PlatformConfig");
this.addConfig( WEBLOGIC_10_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.WebLogic_10_PlatformConfig");
this.addConfig( WEBSPHERE_6_1_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.WebSphere_6_1_PlatformConfig");
this.addConfig( WEBSPHERE_7_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.WebSphere_7_0_PlatformConfig");
this.addConfig( JBOSS_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.JBossPlatformConfig");
this.addConfig( SUNAS_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.SunAS9PlatformConfig");
this.addConfig( CUSTOM_SERVER_ID, "org.eclipse.persistence.internal.sessions.factories.model.platform.CustomServerPlatformConfig");
}
public Iterator platformShortNames() {
return new TransformationIterator( this.platformIds()) {
protected Object transform( Object next) {
String id = ( String)next;
return ClassTools.shortNameForClassNamed( getRuntimePlatformClassNameFor( id));
}
};
}
public Iterator configIds() {
return this.configs.keySet().iterator();
}
public Iterator configNames() {
return this.configs.values().iterator();
}
public Iterator configShortNames() {
return new TransformationIterator( this.configNames()) {
protected Object transform( Object next) {
return ClassTools.shortNameForClassNamed(( String)next);
}
};
}
public String getRuntimePlatformConfigClassNameForPlatformId( String platformId) {
if (configs.containsKey(platformId)) {
return (String)configs.get(platformId);
}
throw new IllegalArgumentException( "missing platform config named: "
+ platformId);
}
}