use of org.glassfish.hk2.external.org.objectweb.asm.Type in project Payara by payara.
the class CompositeUtil method getModel.
/**
* This method will return a generated concrete class that implements the interface requested, as well as any
* interfaces intended to extend the base model interface. Model extensions must be annotated with
*
* @param modelIface The base interface for the desired data model
* @return An instance of a concrete class implementing the requested interfaces
* @throws Exception
* @RestModelExtension, and must be compiled with rest-annotation-processor library on the compile classpath
* for metadata generation.
*/
public synchronized <T> T getModel(Class<T> modelIface) {
String className = modelIface.getName() + "Impl";
if (!generatedClasses.containsKey(className)) {
Map<String, Map<String, Object>> properties = new HashMap<String, Map<String, Object>>();
Set<Class<?>> interfaces = getModelExtensions(modelIface);
interfaces.add(modelIface);
for (Class<?> iface : interfaces) {
analyzeInterface(iface, properties);
}
ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);
visitClass(classWriter, className, interfaces, properties);
for (Map.Entry<String, Map<String, Object>> entry : properties.entrySet()) {
String name = entry.getKey();
final Map<String, Object> property = entry.getValue();
Class<?> type = (Class<?>) property.get("type");
createField(classWriter, name, type);
createGettersAndSetters(classWriter, modelIface, className, name, property);
}
createConstructor(classWriter, className, properties);
classWriter.visitEnd();
Class<?> newClass;
try {
newClass = defineClass(modelIface, className, classWriter.toByteArray());
} catch (Exception ex) {
throw new RuntimeException(ex);
}
generatedClasses.put(className, newClass);
}
try {
return (T) generatedClasses.get(className).newInstance();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
use of org.glassfish.hk2.external.org.objectweb.asm.Type in project Payara by payara.
the class InplantedTest method Test.
@Test
public void Test() {
ServiceLocator habitat = server.getHabitat();
System.out.println("Process type is " + habitat.<ProcessEnvironment>getService(ProcessEnvironment.class).getProcessType());
for (Sniffer s : habitat.<Sniffer>getAllServices(Sniffer.class)) {
System.out.println("Got sniffer " + s.getModuleType());
}
}
use of org.glassfish.hk2.external.org.objectweb.asm.Type in project Payara by payara.
the class BasicServiceDiscoveryPaaSTest method testGetServiceMetadata.
// Test for CLI : '_get-service-metadata''
/*
The war file contains the following service definition and service reference
1.In glassfish-services.xml
<glassfish-services>
<service-description name="basic-db" init-type="lazy">
<characteristics><characteristic name="service-type" value="JavaEE"/></characteristics>
<configurations>
<configuration name="min.clustersize" value="1"/>
<configuration name="max.clustersize" value="2"/>
</configurations>
</service-description>
</glassfish-services>
<service-description name="db-service" init-type="lazy">
<characteristics>
<characteristic name="service-type" value="Database"/>
</characteristics>
<configurations>
<configuration name="database.name" value=""/>
<configuration name="database.init.sql" value=""/>
</configurations>
</service-description>
2.In web.xml
<resource-ref>
<res-ref-name>jdbc/__basic_db_paas_sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
</resource-ref>
*/
private void testGetServiceMetadata(File archive) {
ServiceLocator habitat = Globals.getDefaultHabitat();
org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
ActionReport report = habitat.getService(ActionReport.class);
org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("_get-service-metadata", report);
ParameterMap parameterMap = new ParameterMap();
parameterMap.add("DEFAULT", System.getProperty("basedir") + "/target/basic_sd_paas_sample.war");
boolean testPassed = false;
invocation.parameters(parameterMap).execute();
testPassed = !report.hasFailures();
String appName = "basic_sd_paas_sample";
String serviceName = "basic-sd";
testGetServiceDescription(appName, serviceName);
List<Map<String, Object>> serviceDescList = (List<Map<String, Object>>) report.getExtraProperties().get("list");
Map<String, Object> serviceDescMap = serviceDescList.get(1);
serviceName = (String) serviceDescMap.get("name");
String init_type = (String) serviceDescMap.get("init-type");
Map<String, String> svcCharacteristicMap = (Map<String, String>) serviceDescMap.get("characteristics");
String serviceType = (String) svcCharacteristicMap.get("service-type");
Map<String, String> svcConfigurationMap = (Map<String, String>) serviceDescMap.get("configurations");
if (serviceName.equalsIgnoreCase("db-service")) {
if ("lazy".equalsIgnoreCase(init_type)) {
if ("Database".equals(serviceType)) {
Map<String, String> serviceConfigurationsMap = (Map<String, String>) serviceDescMap.get("configurations");
if (serviceConfigurationsMap.containsKey("database.init.sql") && serviceConfigurationsMap.containsKey("database.name")) {
testPassed = true;
}
}
}
}
System.out.println("CLI 'get-service-metadata' test passed? :: " + testPassed);
Assert.assertTrue(testPassed);
}
use of org.glassfish.hk2.external.org.objectweb.asm.Type in project Payara by payara.
the class BasicServiceDiscoveryPaaSTest method testGetServiceDescription.
// Test for CLI : '_get-service-description''
private void testGetServiceDescription(String appName, String serviceName) {
ServiceLocator habitat = Globals.getDefaultHabitat();
org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
ActionReport report = habitat.getService(ActionReport.class);
ParameterMap parameterMap = new ParameterMap();
parameterMap.add("appname", appName);
parameterMap.add("DEFAULT", serviceName);
boolean testPassed = false;
org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("_get-service-description", report);
invocation.parameters(parameterMap).execute();
Map<String, Object> SDMap = (Map<String, Object>) report.getExtraProperties().get("list");
if (serviceName.equalsIgnoreCase((String) SDMap.get("name"))) {
if ("lazy".equalsIgnoreCase((String) SDMap.get("init-type"))) {
Map<String, String> serviceCharacteristicsMap = (Map<String, String>) SDMap.get("characteristics");
if ("JavaEE".equals(serviceCharacteristicsMap.get("service-type"))) {
Map<String, String> serviceConfigurationsMap = (Map<String, String>) SDMap.get("configurations");
String minclustersize = serviceConfigurationsMap.get("min.clustersize");
String maxclustersize = serviceConfigurationsMap.get("max.clustersize");
if (Integer.parseInt(minclustersize) == 1 && Integer.parseInt(maxclustersize) == 2) {
testPassed = true;
}
}
}
}
System.out.println("CLI 'get-service-description' test passed? :: " + testPassed);
Assert.assertTrue(testPassed);
}
use of org.glassfish.hk2.external.org.objectweb.asm.Type in project Payara by payara.
the class ExistingDomainTest method Test.
@Test
public void Test() throws Exception {
ServiceLocator habitat = server.getHabitat();
System.out.println("Process type is " + habitat.<ProcessEnvironment>getService(ProcessEnvironment.class).getProcessType());
Collection<ServiceHandle<?>> listeners = habitat.getAllServiceHandles(org.glassfish.grizzly.config.dom.NetworkListener.class);
Assert.assertTrue(listeners.size() > 1);
for (ServiceHandle<?> s : listeners) {
Object networkListener = s.getService();
Method m = networkListener.getClass().getMethod("getPort");
Assert.assertNotNull("Object returned does not implement getPort, is it a networkListener ?", m);
String port = (String) m.invoke(networkListener);
System.out.println("Network Listener " + port);
Assert.assertNotNull("Got a null networkListener port", port);
}
}
Aggregations