|
Glassfish example source code file (uninstall.h)
The Glassfish uninstall.h source code/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html * or packager/legal/LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at packager/legal/LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. */ #ifndef _UNINSTALL_H_ #define _UNINSTALL_H_ #include "java.h" #define LIB_DIR FILE_SEPARATOR "jdk" #define BUNDLED_JVM_DIR LIB_DIR #ifdef WIN32 #define DELETE_INCLUDE_ITEMS { FILE_SEPARATOR "domains",FILE_SEPARATOR "samples",FILE_SEPARATOR "jdk",FILE_SEPARATOR "hadb",FILE_SEPARATOR "lib" FILE_SEPARATOR "install",FILE_SEPARATOR "config", FILE_SEPARATOR "lib" FILE_SEPARATOR "certutil.exe",FILE_SEPARATOR "lib" FILE_SEPARATOR "pk12util.exe",FILE_SEPARATOR "bin" FILE_SEPARATOR "cliutil.dll"} #else #define DELETE_INCLUDE_ITEMS { FILE_SEPARATOR "uninstall", FILE_SEPARATOR "domains", FILE_SEPARATOR "jdk", FILE_SEPARATOR "hadb", FILE_SEPARATOR "config", FILE_SEPARATOR "samples"} #endif #define CLASS_NAME "appserv_uninstall" #define MESSAGE_KEY_PREFIX "uninstall" static char *delete_include_items[] = DELETE_INCLUDE_ITEMS; #define NUM_DELETE_INCLUDE_ITEMS (sizeof(delete_include_items) / sizeof(char *)) /* * Perform any necessary cleanup. * Note: don't use MemAlloc function here since we are in an exit handler. */ void Cleanup() { const char *apphome = GetApplicationHome(); const char *class = GetJavaClassName(); if (apphome) { char *classfile = NULL; if ((classfile = (char *)malloc(strlen(apphome) + strlen(class) + 8)) != NULL) { strcpy(classfile, apphome); strcat(classfile, FILE_SEPARATOR); strcat(classfile, class); strcat(classfile, ".class"); /* If the class file is gone, then the uninstall succeeded */ if (!CheckJavaClassFile()) { char *deletelist[32]; int i; jboolean iserror = JNI_FALSE; for (i = 0; i < NUM_DELETE_INCLUDE_ITEMS; i++) { if ((deletelist[i] = (char *)malloc(strlen(apphome) + strlen(delete_include_items[i]) + 1)) == NULL) break; strcpy(deletelist[i], apphome); strcat(deletelist[i], delete_include_items[i]); } deletelist[i] = NULL; for (i = 0; deletelist[i] != NULL; i++) DeleteFilesAndDirectories(deletelist[i], NULL); for (i = 0; deletelist[i] != NULL; i++) free(deletelist[i]); } free(classfile); classfile = NULL; } } } static char *bundledJREPath = NULL; /* * Returns the bundled JVM path if it exists. */ const char * GetBundledJREPath() { if (!bundledJREPath) { const char *apphome; char *jrepath = NULL; if ((apphome = GetApplicationHome()) != NULL) { jrepath = (char *)MemAlloc(strlen(apphome) + sizeof(BUNDLED_JVM_DIR) + 1); sprintf(jrepath, "%s" BUNDLED_JVM_DIR, apphome); bundledJREPath = GetJREPath(jrepath); free(jrepath); jrepath = NULL; } } return bundledJREPath; } static char *bundledLibPath = NULL; /* * Returns the bundled library path. */ const char * GetBundledLibraryPath() { if (!bundledLibPath) { const char *apphome; if ((apphome = GetApplicationHome()) != NULL) { bundledLibPath = (char *)MemAlloc(strlen(apphome) + sizeof(LIB_DIR) + 1); sprintf(bundledLibPath, "%s" LIB_DIR, apphome); } } return bundledLibPath; } /* * Returns the Java class name to load. */ const char * GetJavaClassName() { return CLASS_NAME; } #ifdef CLASSPATH_ELEMENTS static char *classpath_elements[] = CLASSPATH_ELEMENTS; #define NUM_CLASSPATH_ELEMENTS (sizeof(classpath_elements) / sizeof(char *)) #endif /* * Returns the Java class path elements to load. */ int GetJavaClasspathElements(char ***elements) { #ifdef CLASSPATH_ELEMENTS *elements = classpath_elements; return NUM_CLASSPATH_ELEMENTS; #else *elements = NULL; return 0; #endif } /* * Returns the prefix to use for looking for localized messages. */ char * GetMessageKeyPrefix(const char *key) { char *ret = NULL; ret = (char *)MemAlloc(sizeof(MESSAGE_KEY_PREFIX) + strlen(key) + 2); sprintf(ret, MESSAGE_KEY_PREFIX "_%s", key); return ret; } static char *title = NULL; /* * Returns the title to use on status windows. */ const char * GetTitle() { if (!title) title = GetLocalizedMessage(MESSAGE_KEY_PREFIX "_title"); return title; } /* * Returns whether state file argument is required when the "-silent" * option is used. */ jboolean IsStateFileRequired() { return JNI_FALSE; } #endif /* _UNINSTALL_H_ */ Other Glassfish examples (source code examples)Here is a short list of links related to this Glassfish uninstall.h source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.