This commit is contained in:
Greg Richardson
2007-01-16 10:22:21 +00:00
parent 1b73394fc7
commit 3ba102c4f1
37 changed files with 6971 additions and 539 deletions

View File

@@ -0,0 +1,69 @@
#######################################################################
#
# Copyright (C) 2004 Novell, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Author: Greg Richardson <grichardson@novell.com>
#
#######################################################################
SUBDIRS =
DIST_SUBDIRS =
EXTRA_DIST = MungeCryptoPropertiesFilePath.vjsproj Program.jsl
if DEBUG
TARGET_CFG = Debug
else
TARGET_CFG = Release
endif
PACKAGE = MungeCryptoPropertiesFilePath
TARGET_FILE = $(PACKAGE).exe
LOG_FILE = $(PACKAGE).log
.PHONY: package package-clean package-install package-uninstall devenv
package: $(TARGET_FILE)
devenv:
@if ! test -x "$(VSINSTALLDIR)/Common7/IDE/devenv.exe"; then echo "Error: Microsoft Visual Studio .NET is currently required to build MSI and MSM packages"; exit 1; fi
$(TARGET_FILE): devenv
@rm -f $(LOG_FILE) $@
@CMD='"$(VSINSTALLDIR)/Common7/IDE/devenv.exe" ../server-java_msi/server-java_msi.sln /build $(TARGET_CFG) /project $(PACKAGE) /out $(LOG_FILE)'; \
echo $$CMD; \
if eval $$CMD; then \
ls -l bin/$(TARGET_CFG)/$(TARGET_FILE); \
else \
grep -a "ERROR:" $(LOG_FILE); \
fi
package-clean clean-local:
rm -rf Release/* Release Debug/* Debug*/Release */Debug *.log *.suo
clean:
rm -rf Release/* Release Debug/* Debug */Release */Debug *.log *.suo
distclean-local: package-clean
rm -f Makefile
maintainer-clean-local:
rm -f Makefile.in

View File

@@ -0,0 +1,43 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{75D8742F-4778-4978-9032-ED9649BA402D}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>MungeCryptoPropertiesFilePath</RootNamespace>
<AssemblyName>MungeCryptoPropertiesFilePath</AssemblyName>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.jsl" />
<Compile Include="Properties\AssemblyInfo.jsl" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualJSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,312 @@
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
package MungeCryptoPropertiesFilePath;
import java.io.*;
import java.util.*;
/**
* Summary description for Program
*/
public class Program
{
final static int ERROR_NO_ERROR = 0;
final static int ERROR_INVALID_NUMBER_OF_PARAMS = -1;
final static int ERROR_MISSING_INPUT_FILE = -2;
final static int ERROR_OUTPUT_COPY_FAILED = -3;
final static int ERROR_IO_EXCEPTION = -4;
final static int ERROR_BAD_INPUT_FILE_PARAM = -5;
final static int ERROR_BAD_OUTPUT_FILE_PARAM = -6;
final static int ERROR_MISSING_INPUT_FILE_PARAM = -7;
final static int ERROR_MISSING_OUTPUT_FILE_PARAM = -8;
final static int ERROR_CANNOT_READ_FILE = -9;
final static int ERROR_CANNOT_CREATE_FILE = -10;
final static String INPUT_FILE_PARAM = "input=";
final static String OUTPUT_FILE_PARAM = "output=";
final static String FILE_KEY = "org.apache.ws.security.crypto.merlin.file=";
File fileInput;
File fileOutput;
File file;
FileWriter fw;
String sInput;
String sOutput;
public static void main(String[] args)
{
Program p = new Program(args);
}
Program(String[] args)
{
int rc = ERROR_NO_ERROR;
fileInput = null;
fileOutput = null;
try
{
file = new File("c:\\test5.log");
fw = new FileWriter(file);
log("Here we go: " + args.length);
for (int i = 0; i < args.length; i++)
{
log("Arg " + i + " = " + args[i]);
}
// Process the arguments
if (ERROR_NO_ERROR == (rc = processArgs(args)))
{
// Process the file
rc = createOutputFile();
}
}
catch (IOException e)
{
rc = ERROR_IO_EXCEPTION;
}
finally
{
try
{
log("return code = " + rc);
fw.flush();
fw.close();
}
catch (Exception e1)
{
}
}
System.exit(rc);
}
int processArgs(String[] args)
{
int i;
// Validate the number of parameters
if (args.length != 2)
{
return ERROR_INVALID_NUMBER_OF_PARAMS;
}
for (i = 0; i < args.length; i++)
{
log("arg[" + i + "] = " +args[i]);
if (args[i].startsWith(INPUT_FILE_PARAM))
{
// Make sure it is more than the param tag
if (args[i].length() <= INPUT_FILE_PARAM.length())
{
return ERROR_BAD_INPUT_FILE_PARAM;
}
sInput = args[i].substring(INPUT_FILE_PARAM.length()).trim();
fileInput = new File(sInput);
// Make sure the input file can be found
if (!fileInput.exists())
{
log(ERROR_MISSING_INPUT_FILE, sInput);
return ERROR_MISSING_INPUT_FILE;
}
}
else if (args[i].startsWith(OUTPUT_FILE_PARAM))
{
// Make sure it is more than the param tag
if (args[i].length() <= OUTPUT_FILE_PARAM.length())
{
return ERROR_BAD_OUTPUT_FILE_PARAM;
}
sOutput = args[i].substring(OUTPUT_FILE_PARAM.length()).trim();
fileOutput = new File(sOutput);
}
}
// Make sure we got an input file
if (null == fileInput)
{
return ERROR_MISSING_INPUT_FILE_PARAM;
}
// Make sure we got an output file
if (null == fileOutput)
{
return ERROR_MISSING_OUTPUT_FILE_PARAM;
}
return ERROR_NO_ERROR;
}
int createOutputFile()
{
LineNumberReader lnr = null;
FileWriter fwOutput = null;
String sLineTemplate;
String sLineOutput;
int iSearchFor;
try
{
// Open the file
lnr = new LineNumberReader(new FileReader(fileInput));
}
catch (Exception e)
{
return ERROR_CANNOT_READ_FILE;
}
try
{
fwOutput = new FileWriter(fileOutput);
}
catch (Exception e)
{
return ERROR_CANNOT_CREATE_FILE;
}
try
{
// For each line of text in the template file...
while (null != (sLineTemplate = lnr.readLine()))
{
sLineOutput = sLineTemplate;
log("<-- " + sLineOutput);
if (sLineOutput.trim().startsWith(FILE_KEY))
{
// Replace all instances of the line separator on the line
while (-1 != (iSearchFor = sLineOutput.indexOf("\\")))
{
log("replacing \\ at position " + iSearchFor + " with //");
sLineOutput = sLineOutput.substring(0, iSearchFor) + "//" +
sLineOutput.substring(iSearchFor + 1);
}
}
try
{
fwOutput.write(sLineOutput + "\r\n");
log("--> " + sLineOutput);
}
catch (Exception e)
{
return -42;
}
}
// Clean up
fwOutput.flush();
fwOutput.close();
lnr.close();
}
catch (Exception e)
{
return ERROR_OUTPUT_COPY_FAILED;
}
return ERROR_NO_ERROR;
}
void log(int err)
{
log(err, null);
}
void log(int err, String s)
{
String sMessage = "";
switch (err)
{
case ERROR_NO_ERROR:
sMessage = "No error";
break;
case ERROR_INVALID_NUMBER_OF_PARAMS:
sMessage = "Invalid number of parameters: 2 expected";
break;
case ERROR_MISSING_INPUT_FILE:
sMessage = "Invalid number of parameters: 2 expected";
break;
case ERROR_OUTPUT_COPY_FAILED:
sMessage = "Unable to create output file";
break;
case ERROR_IO_EXCEPTION:
sMessage = "IOException";
break;
case ERROR_BAD_INPUT_FILE_PARAM:
sMessage = "Invalid input file parameter";
break;
case ERROR_BAD_OUTPUT_FILE_PARAM:
sMessage = "Invalid output file parameter";
break;
case ERROR_MISSING_INPUT_FILE_PARAM:
sMessage = "Missing input file parameter";
break;
case ERROR_MISSING_OUTPUT_FILE_PARAM:
sMessage = "Missing output file parameter";
break;
case ERROR_CANNOT_READ_FILE:
sMessage = "Cannot read file";
break;
case ERROR_CANNOT_CREATE_FILE:
sMessage = "Cannot create file";
break;
default:
sMessage = "Unknown error: " + err;
break;
}
if (null != s)
{
sMessage = sMessage + s;
}
log(sMessage);
}
void log(String s)
{
try
{
fw.write(this.getClass().getName() + ": " + s + "\r\n");
}
catch (IOException ioe)
{
}
}
}

View File

@@ -0,0 +1,36 @@
import System.Reflection.*;
import System.Runtime.CompilerServices.*;
import System.Runtime.InteropServices.*;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
/** @assembly AssemblyTitle("MungeCryptoPropertiesFilePath") */
/** @assembly AssemblyDescription("") */
/** @assembly AssemblyCompany("Novell") */
/** @assembly AssemblyProduct("MungeCryptoPropertiesFilePath") */
/** @assembly AssemblyCopyright("Copyright © Novell 2007") */
/** @assembly AssemblyTrademark("") */
/** @assembly AssemblyCulture("") */
// The ComVisible attribute controls accessibility of an individual type
// or member, or of all types within this assembly, from COM. To access
// a type or member in this assembly from COM, set the ComVisible attribute
// on that type or member to true.
/** @assembly ComVisible(false) */
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
/** @assembly AssemblyVersion("1.0.0.0") */