use of org.apache.geode.internal.ClassBuilder in project geode by apache.
the class ClusterConfigurationServiceEndToEndDUnitTest method postSetUpCliCommandTestBase.
@Override
public final void postSetUpCliCommandTestBase() throws Exception {
disconnectAllFromDS();
addIgnoredException("EntryDestroyedException");
serverNames = new HashSet<>();
jarFileNames = new HashSet<>();
this.classBuilder = new ClassBuilder();
Object[] result = setup();
int locatorPort = (Integer) result[0];
this.jmxHost = (String) result[1];
this.jmxPort = (Integer) result[2];
this.httpPort = (Integer) result[3];
this.locatorString = "localHost[" + locatorPort + "]";
}
use of org.apache.geode.internal.ClassBuilder in project geode by apache.
the class IncrementalBackupDUnitTest method testBackupUserDeployedJarFiles.
/**
* Successful if a user deployed jar file is included as part of the backup.
*/
@Test
public void testBackupUserDeployedJarFiles() throws Exception {
final String jarName = "BackupJarDeploymentDUnit";
final String jarNameRegex = ".*" + jarName + ".*";
final ClassBuilder classBuilder = new ClassBuilder();
final byte[] classBytes = classBuilder.createJarFromName(jarName);
VM vm0 = Host.getHost(0).getVM(0);
/*
* Deploy a "dummy" jar to the VM.
*/
File deployedJarFile = vm0.invoke(() -> {
DeployedJar deployedJar = ClassPathLoader.getLatest().getJarDeployer().deploy(jarName, classBytes);
return deployedJar.getFile();
});
assertTrue(deployedJarFile.exists());
/*
* Perform backup. Make sure it is successful.
*/
assertBackupStatus(baseline(vm0));
/*
* Make sure the user deployed jar is part of the backup.
*/
Collection<File> memberDeployedJarFiles = FileUtils.listFiles(getBackupDirForMember(getBaselineDir(), getMemberId(vm0)), new RegexFileFilter(jarNameRegex), DirectoryFileFilter.DIRECTORY);
assertFalse(memberDeployedJarFiles.isEmpty());
// Shut down our member so we can perform a restore
PersistentID id = getPersistentID(vm0);
closeCache(vm0);
/*
* Get the VM's user directory.
*/
final String vmDir = vm0.invoke(() -> System.getProperty("user.dir"));
File backupDir = getBackupDirForMember(getBaselineDir(), getMemberId(vm0));
vm0.bounce();
/*
* Cleanup "dummy" jar from file system.
*/
Pattern pattern = Pattern.compile('^' + jarName + ".*#\\d++$");
deleteMatching(new File("."), pattern);
// Execute the restore
performRestore(new File(id.getDirectory()), backupDir);
/*
* Make sure the user deployed jar is part of the restore.
*/
Collection<File> restoredJars = FileUtils.listFiles(new File(vmDir), new RegexFileFilter(jarNameRegex), DirectoryFileFilter.DIRECTORY);
assertFalse(restoredJars.isEmpty());
List<String> restoredJarNames = new LinkedList<>();
TransformUtils.transform(memberDeployedJarFiles, restoredJarNames, TransformUtils.fileNameTransformer);
for (String name : restoredJarNames) {
assertTrue(name.contains(jarName));
}
// Restart the member
openCache(vm0);
/*
* Remove the "dummy" jar from the VM.
*/
vm0.invoke(new SerializableCallable() {
@Override
public Object call() throws Exception {
for (DeployedJar jarClassLoader : ClassPathLoader.getLatest().getJarDeployer().findDeployedJars()) {
if (jarClassLoader.getJarName().startsWith(jarName)) {
ClassPathLoader.getLatest().getJarDeployer().undeploy(jarClassLoader.getJarName());
}
}
return null;
}
});
/*
* Cleanup "dummy" jar from file system.
*/
pattern = Pattern.compile('^' + jarName + ".*#\\d++$");
deleteMatching(new File(vmDir), pattern);
}
use of org.apache.geode.internal.ClassBuilder in project geode by apache.
the class DeployCommandRedeployDUnitTest method createJarWithFunctionB.
private File createJarWithFunctionB(String version) throws Exception {
URL classTemplateUrl = DeployCommandRedeployDUnitTest.class.getResource("DeployCommandRedeployDUnitTest_FunctionBTemplate");
assertThat(classTemplateUrl).isNotNull();
String classContents = FileUtils.readFileToString(new File(classTemplateUrl.toURI()), "UTF-8");
classContents = classContents.replaceAll("PACKAGE_B", PACKAGE_B);
classContents = classContents.replaceAll("FUNCTION_B", FUNCTION_B);
classContents = classContents.replaceAll("VERSION", version);
File jar = new File(lsRule.getTempFolder().newFolder(JAR_NAME_B + version), this.JAR_NAME_B);
ClassBuilder functionClassBuilder = new ClassBuilder();
functionClassBuilder.writeJarFromContent("jddunit/function/" + FUNCTION_B, classContents, jar);
return jar;
}
Aggregations