public IAssemblyTransformation CreateTransformation(IAppDomainInfoBroker infoBroker) { if (_infoProviderName == null) throw new InvalidOperationException ("Please initialize options first! (NewTransformer) : Infoprovider must be specified"); var provider = infoBroker.CreateInfoProviderWrapper<NewTransformerInfoProvider> (_infoProviderName, typeof (MemberID).Assembly.CodeBase); var wrapper = new NewTransformerInfoWrapper (provider); return new NewTransformer (wrapper, new ILCodeRewriter(), _factoryMakeProtected); }
public IAssemblyTransformation CreateTransformation(IAppDomainInfoBroker infoBroker) { if (_infoProviderName == null) throw new InvalidOperationException ("Please initialize options first! (MethodVirtualizer) : Infoprovider must be specified"); var provider = infoBroker.CreateInfoProviderWrapper<MethodVirtualizerInfoProvider> (_infoProviderName, typeof (MemberID).Assembly.CodeBase); var wrapper = new MethodVirtualizerInfoWrapper (provider); return new MethodVirtualizer (wrapper, new ILCodeGenerator()); }
public IAssemblyTransformation CreateTransformation(IAppDomainInfoBroker infoBroker) { if (_infoProviderName == null) { throw new InvalidOperationException("Please initialize options first! (NewTransformer) : Infoprovider must be specified"); } var provider = infoBroker.CreateInfoProviderWrapper <NewTransformerInfoProvider> (_infoProviderName, typeof(MemberID).Assembly.CodeBase); var wrapper = new NewTransformerInfoWrapper(provider); return(new NewTransformer(wrapper, new ILCodeRewriter(), _factoryMakeProtected)); }
public void SetUp() { _trackerMock = MockRepository.GenerateStrictMock <IAssemblyTracker>(); _trackerFactoryMock = MockRepository.GenerateStrictMock <IAssemblyTrackerFactory>(); _transformerMock = MockRepository.GenerateStrictMock <IAssemblyTransformation>(); _transformationFactoryMock = MockRepository.GenerateStrictMock <IAssemblyTransformationFactory>(); _transformerMock2 = MockRepository.GenerateStrictMock <IAssemblyTransformation> (); _transformationFactoryMock2 = MockRepository.GenerateStrictMock <IAssemblyTransformationFactory> (); _signerMock = MockRepository.GenerateStrictMock <IAssemblySigner>(); _signerFactoryMock = MockRepository.GenerateStrictMock <IAssemblySignerFactory>(); _infoBroker = MockRepository.GenerateStub <IAppDomainInfoBroker>(); }
public IAssemblyTransformation CreateTransformation(IAppDomainInfoBroker infoBroker) { if (_infoProviderName == null) { throw new InvalidOperationException("Please initialize options first! (MethodVirtualizer) : Infoprovider must be specified"); } var provider = infoBroker.CreateInfoProviderWrapper <MethodVirtualizerInfoProvider> (_infoProviderName, typeof(MemberID).Assembly.CodeBase); var wrapper = new MethodVirtualizerInfoWrapper(provider); return(new MethodVirtualizer(wrapper, new ILCodeGenerator())); }
public void Run(IAssemblyTrackerFactory trackerFactory, IEnumerable <IAssemblyTransformationFactory> transformationFactories, IAssemblySignerFactory signerFactory, IAppDomainInfoBroker infoBroker) { ArgumentUtility.CheckNotNull("trackerFactory", trackerFactory); ArgumentUtility.CheckNotNull("transformationFactories", transformationFactories); ArgumentUtility.CheckNotNull("signerFactory", signerFactory); #if PERFORMANCE_TEST Stopwatch s = new Stopwatch(); Stopwatch total = new Stopwatch(); s.Start(); total.Start(); #endif var tracker = trackerFactory.CreateTracker(); #if PERFORMANCE_TEST total.Stop(); Process procObj = Process.GetCurrentProcess(); Console.WriteLine(Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine(Environment.NewLine + " Initialization: " + s.Elapsed); Console.WriteLine(Environment.NewLine + " press key to continue with transformations"); total.Start(); s.Restart(); #endif foreach (var factory in transformationFactories) { Console.WriteLine("Transforming assemblies according to " + factory.GetType().Name); factory.CreateTransformation(infoBroker).Transform(tracker); } infoBroker.Unload(); #if PERFORMANCE_TEST total.Stop(); procObj = Process.GetCurrentProcess(); Console.WriteLine(Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine(Environment.NewLine + " Transformation: " + s.Elapsed); Console.WriteLine(Environment.NewLine + " press key to continue with sign and save"); total.Start(); s.Restart(); #endif var signer = signerFactory.CreateSigner(); Console.WriteLine("Signing and writing the transformed assemblies ... "); signer.SignAndSave(tracker); #if PERFORMANCE_TEST s.Stop(); total.Stop(); procObj = Process.GetCurrentProcess(); Console.WriteLine(Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine(Environment.NewLine + " Signing & Saving: " + s.Elapsed); Console.WriteLine(Environment.NewLine + "Total: " + total.Elapsed + Environment.NewLine); #endif }
private static void InitializeTransformer(IEnumerable<string> args) { var showHelp = false; var globalOptions = new OptionSet { { "h|?", "Show this help message and exit.", v => showHelp = v != null } }; globalOptions.Add ("d|targetDir=", "The (root) directory containing the targeted assemblies.", dir => _workingDirectory = dir); var fileSystem = new FileSystem.FileSystem(); Dictionary<string, OptionSet> options = new Dictionary<string, OptionSet>(); globalOptions.Parse (args); // -- create AppDomainInfoBroker _workingDirectory = _workingDirectory.Replace ("\"", ""); _workingDirectory = _workingDirectory.TrimEnd (new[] { '\\' }); _infoBroker = new AppDomainInfoBroker (_workingDirectory); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).RemoveSearchDirectory ("."); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).RemoveSearchDirectory ("bin"); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).AddSearchDirectory (_workingDirectory); // -- create all the transformations var transformationFactoryFactory = new DLLBasedTransformationFactoryFactory (fileSystem, _workingDirectory); transformationFactoryFactory.TransformationsDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); transformationFactoryFactory.AddOptions (globalOptions); // -- add the assembly tracker var trackerFactory = new DirectoryBasedAssemblyTrackerFactory (fileSystem, _workingDirectory); trackerFactory.AddOptions (globalOptions); // -- add the assembly signer _signerFactory = new AssemblySignerFactory (fileSystem); _signerFactory.AddOptions (globalOptions); // load the given transformations globalOptions.Parse (args); _transformationFactories = transformationFactoryFactory.CreateTrackerFactories (); // -- add options of the transformations foreach (var factory in _transformationFactories) { var tempOptions = new OptionSet(); factory.AddOptions (tempOptions); options[factory.GetType().Name] = tempOptions; } try { var allOptions = new OptionSet(); foreach (var option in globalOptions) allOptions.Add (option); foreach (var set in options.Values) foreach (var option in set) allOptions.Add (option); var leftOver = allOptions.Parse (args); trackerFactory.IncludeFiles = leftOver.Where (s => (!s.StartsWith ("-") || !s.StartsWith ("\\"))).ToList(); _targetFiles = trackerFactory.IncludeFiles; leftOver.RemoveAll (s => (!s.StartsWith ("-") || !s.StartsWith ("\\"))); if (showHelp || leftOver.Count != 0) ShowHelp (globalOptions, options, leftOver); } catch (OptionException e) { Console.WriteLine (e.Message); ShowHelp (globalOptions, options, new string[0]); } _trackerFactory = trackerFactory; }
public void Run(IAssemblyTrackerFactory trackerFactory, IEnumerable<IAssemblyTransformationFactory> transformationFactories, IAssemblySignerFactory signerFactory, IAppDomainInfoBroker infoBroker) { ArgumentUtility.CheckNotNull ("trackerFactory", trackerFactory); ArgumentUtility.CheckNotNull ("transformationFactories", transformationFactories); ArgumentUtility.CheckNotNull ("signerFactory", signerFactory); #if PERFORMANCE_TEST Stopwatch s = new Stopwatch (); Stopwatch total = new Stopwatch (); s.Start (); total.Start(); #endif var tracker = trackerFactory.CreateTracker(); #if PERFORMANCE_TEST total.Stop(); Process procObj = Process.GetCurrentProcess (); Console.WriteLine (Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine (Environment.NewLine + " Initialization: " + s.Elapsed); Console.WriteLine (Environment.NewLine + " press key to continue with transformations"); total.Start (); s.Restart (); #endif foreach (var factory in transformationFactories) { Console.WriteLine ("Transforming assemblies according to " + factory.GetType().Name); factory.CreateTransformation(infoBroker).Transform (tracker); } infoBroker.Unload(); #if PERFORMANCE_TEST total.Stop (); procObj = Process.GetCurrentProcess (); Console.WriteLine (Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine (Environment.NewLine + " Transformation: " + s.Elapsed); Console.WriteLine (Environment.NewLine + " press key to continue with sign and save"); total.Start (); s.Restart (); #endif var signer = signerFactory.CreateSigner(); Console.WriteLine ("Signing and writing the transformed assemblies ... "); signer.SignAndSave (tracker); #if PERFORMANCE_TEST s.Stop(); total.Stop (); procObj = Process.GetCurrentProcess (); Console.WriteLine (Environment.NewLine + " Private Memory Size : {0:N0}" + Environment.NewLine + " Virtual Memory Size : {1:N0}" + Environment.NewLine + " Working Set Size: {2:N0}", procObj.PrivateMemorySize64, procObj.VirtualMemorySize64, procObj.WorkingSet64); Console.WriteLine (Environment.NewLine + " Signing & Saving: " + s.Elapsed); Console.WriteLine (Environment.NewLine + "Total: " + total.Elapsed + Environment.NewLine); #endif }
private static void InitializeTransformer(IEnumerable <string> args) { var showHelp = false; var globalOptions = new OptionSet { { "h|?", "Show this help message and exit.", v => showHelp = v != null } }; globalOptions.Add("d|targetDir=", "The (root) directory containing the targeted assemblies.", dir => _workingDirectory = dir); var fileSystem = new FileSystem.FileSystem(); Dictionary <string, OptionSet> options = new Dictionary <string, OptionSet>(); globalOptions.Parse(args); // -- create AppDomainInfoBroker _workingDirectory = _workingDirectory.Replace("\"", ""); _workingDirectory = _workingDirectory.TrimEnd(new[] { '\\' }); _infoBroker = new AppDomainInfoBroker(_workingDirectory); ((DefaultAssemblyResolver)GlobalAssemblyResolver.Instance).RemoveSearchDirectory("."); ((DefaultAssemblyResolver)GlobalAssemblyResolver.Instance).RemoveSearchDirectory("bin"); ((DefaultAssemblyResolver)GlobalAssemblyResolver.Instance).AddSearchDirectory(_workingDirectory); // -- create all the transformations var transformationFactoryFactory = new DLLBasedTransformationFactoryFactory(fileSystem, _workingDirectory); transformationFactoryFactory.TransformationsDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); transformationFactoryFactory.AddOptions(globalOptions); // -- add the assembly tracker var trackerFactory = new DirectoryBasedAssemblyTrackerFactory(fileSystem, _workingDirectory); trackerFactory.AddOptions(globalOptions); // -- add the assembly signer _signerFactory = new AssemblySignerFactory(fileSystem); _signerFactory.AddOptions(globalOptions); // load the given transformations globalOptions.Parse(args); _transformationFactories = transformationFactoryFactory.CreateTrackerFactories(); // -- add options of the transformations foreach (var factory in _transformationFactories) { var tempOptions = new OptionSet(); factory.AddOptions(tempOptions); options[factory.GetType().Name] = tempOptions; } try { var allOptions = new OptionSet(); foreach (var option in globalOptions) { allOptions.Add(option); } foreach (var set in options.Values) { foreach (var option in set) { allOptions.Add(option); } } var leftOver = allOptions.Parse(args); trackerFactory.IncludeFiles = leftOver.Where(s => (!s.StartsWith("-") || !s.StartsWith("\\"))).ToList(); _targetFiles = trackerFactory.IncludeFiles; leftOver.RemoveAll(s => (!s.StartsWith("-") || !s.StartsWith("\\"))); if (showHelp || leftOver.Count != 0) { ShowHelp(globalOptions, options, leftOver); } } catch (OptionException e) { Console.WriteLine(e.Message); ShowHelp(globalOptions, options, new string[0]); } _trackerFactory = trackerFactory; }
public void SetUp() { _trackerMock = MockRepository.GenerateStrictMock<IAssemblyTracker>(); _trackerFactoryMock = MockRepository.GenerateStrictMock<IAssemblyTrackerFactory>(); _transformerMock = MockRepository.GenerateStrictMock<IAssemblyTransformation>(); _transformationFactoryMock = MockRepository.GenerateStrictMock<IAssemblyTransformationFactory>(); _transformerMock2 = MockRepository.GenerateStrictMock<IAssemblyTransformation> (); _transformationFactoryMock2 = MockRepository.GenerateStrictMock<IAssemblyTransformationFactory> (); _signerMock = MockRepository.GenerateStrictMock<IAssemblySigner>(); _signerFactoryMock = MockRepository.GenerateStrictMock<IAssemblySignerFactory>(); _infoBroker = MockRepository.GenerateStub<IAppDomainInfoBroker>(); }