You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2003/09/28 01:58:29 UTC
cvs commit: avalon-sandbox/avalon-net/csframework/bin Apache.Avalon.Framework.Test.dll Apache.Avalon.Framework.dll
hammett 2003/09/27 16:58:29
Modified: avalon-net/cscontainer/AvalonContainerTest
AvalonContainerTest.csproj
DependencyHandlingTestCase.cs
avalon-net/cscontainer/AvalonContainerTest/Components
Vehicle.cs
avalon-net/cscontainer/Samples/bin/Samples
Samples.Components.dll
avalon-net/cscontainer/bin Apache.Avalon.Container.Test.dll
Apache.Avalon.Container.dll
Apache.Avalon.Framework.dll
avalon-net/csframework/AvalonFramework Attributes.cs
avalon-net/csframework/bin Apache.Avalon.Framework.Test.dll
Apache.Avalon.Framework.dll
Added: avalon-net/cscontainer/AvalonContainerTest/Components Bus.cs
Log:
DependencyAttribute must be Inherited=true. Added Unit tests to protected ourself from this bug.
Revision Changes Path
1.2 +5 -0 avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/AvalonContainerTest.csproj
Index: AvalonContainerTest.csproj
===================================================================
RCS file: /home/cvs/avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/AvalonContainerTest.csproj,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AvalonContainerTest.csproj 22 Sep 2003 23:49:23 -0000 1.1
+++ AvalonContainerTest.csproj 27 Sep 2003 23:58:29 -0000 1.2
@@ -134,6 +134,11 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Components\Bus.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Components\Calculator.cs"
SubType = "Code"
BuildAction = "Compile"
1.2 +37 -6 avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/DependencyHandlingTestCase.cs
Index: DependencyHandlingTestCase.cs
===================================================================
RCS file: /home/cvs/avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/DependencyHandlingTestCase.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DependencyHandlingTestCase.cs 22 Sep 2003 23:49:23 -0000 1.1
+++ DependencyHandlingTestCase.cs 27 Sep 2003 23:58:29 -0000 1.2
@@ -61,19 +61,50 @@
[Test]
public void ShutDownOrderCheck()
{
- Assertion.AssertEquals(5, m_container.ShutDownOrder.Length);
+ Assertion.AssertEquals(6, m_container.ShutDownOrder.Length);
- Assertion.AssertEquals(typeof(IVehicle).FullName, m_container.ShutDownOrder[0].Name);
- Assertion.AssertEquals(typeof(IEngine).FullName, m_container.ShutDownOrder[1].Name);
+ Assertion.AssertEquals(typeof(IBus).FullName, m_container.ShutDownOrder[0].Name);
+ Assertion.AssertEquals(typeof(IVehicle).FullName, m_container.ShutDownOrder[1].Name);
+ Assertion.AssertEquals(typeof(IRadio).FullName, m_container.ShutDownOrder[2].Name);
+ Assertion.AssertEquals(typeof(IEngine).FullName, m_container.ShutDownOrder[3].Name);
}
[Test]
public void ComponentWithDependency()
{
- IVehicle vehicle = (IVehicle)
- m_container.LookupManager[ typeof(IVehicle).FullName ];
+ IVehicle vehicle = null;
+
+ try
+ {
+ vehicle = (IVehicle) m_container.LookupManager[ typeof(IVehicle).FullName ];
+ }
+ finally
+ {
+ if (vehicle != null)
+ {
+ m_container.LookupManager.Release(vehicle);
+ }
+ }
+ }
+
+ [Test]
+ public void ComponentWithInheritedDependency()
+ {
+ IBus bus = null;
+
+ try
+ {
+ bus = (IBus) m_container.LookupManager[ typeof(IBus).FullName ];
- m_container.LookupManager.Release(vehicle);
+ bus.Travel();
+ }
+ finally
+ {
+ if (bus != null)
+ {
+ m_container.LookupManager.Release(bus);
+ }
+ }
}
}
}
1.2 +1 -9 avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/Components/Vehicle.cs
Index: Vehicle.cs
===================================================================
RCS file: /home/cvs/avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/Components/Vehicle.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Vehicle.cs 22 Sep 2003 23:49:23 -0000 1.1
+++ Vehicle.cs 27 Sep 2003 23:58:29 -0000 1.2
@@ -53,7 +53,7 @@
using Apache.Avalon.Framework;
/// <summary>
- /// Summary description for Vehicle.
+ /// Definitions for IVehicle service.
/// </summary>
public interface IVehicle
{
@@ -114,8 +114,6 @@
}
}
- #region ILookupEnabled Members
-
public void EnableLookups(ILookupManager manager)
{
Assertion.AssertNotNull(manager);
@@ -126,16 +124,12 @@
Assertion.Equals( typeof(IEngine), manager["Engine"].GetType() );
Assertion.Equals( typeof(IRadio), manager["Radio"].GetType() );
}
-
- #endregion
}
[AvalonService( typeof(IEngine) )]
[AvalonComponent( "Engine", Lifestyle.Transient )]
public class Engine : IEngine
{
- #region IEngine Members
-
public void TurnOn()
{
}
@@ -143,8 +137,6 @@
public void TurnOff()
{
}
-
- #endregion
}
[AvalonService( typeof(IRadio) )]
1.1 avalon-sandbox/avalon-net/cscontainer/AvalonContainerTest/Components/Bus.cs
Index: Bus.cs
===================================================================
// ============================================================================
// The Apache Software License, Version 1.1
// ============================================================================
//
// Copyright (C) 2002-2003 The Apache Software Foundation. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modifica-
// tion, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// 3. The end-user documentation included with the redistribution, if any, must
// include the following acknowledgment: "This product includes software
// developed by the Apache Software Foundation (http://www.apache.org/)."
// Alternately, this acknowledgment may appear in the software itself, if
// and wherever such third-party acknowledgments normally appear.
//
// 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
// must not be used to endorse or promote products derived from this software
// without prior written permission. For written permission, please contact
// apache@apache.org.
//
// 5. Products derived from this software may not be called "Apache", nor may
// "Apache" appear in their name, without prior written permission of the
// Apache Software Foundation.
//
// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
// DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// This software consists of voluntary contributions made by many individuals
// on behalf of the Apache Software Foundation. For more information on the
// Apache Software Foundation, please see <http://www.apache.org/>.
// ============================================================================
namespace Apache.Avalon.Container.Test.Components
{
using System;
using NUnit.Framework;
using Apache.Avalon.Framework;
/// <summary>
/// Definition for IBus service.
/// </summary>
public interface IBus : IVehicle
{
void Travel();
}
[AvalonService( typeof(IBus) )]
[AvalonComponent( "IBus", Lifestyle.Transient )]
public class Bus : Vehicle, IBus
{
public Bus()
{
}
public void Travel()
{
if (Engine == null)
{
throw new ApplicationException("We should have a engine instance.");
}
if (Radio == null)
{
throw new ApplicationException("We should have a radio instance.");
}
}
}
}
1.3 +5 -4 avalon-sandbox/avalon-net/cscontainer/Samples/bin/Samples/Samples.Components.dll
<<Binary file>>
1.3 +47 -24 avalon-sandbox/avalon-net/cscontainer/bin/Apache.Avalon.Container.Test.dll
<<Binary file>>
1.3 +387 -381 avalon-sandbox/avalon-net/cscontainer/bin/Apache.Avalon.Container.dll
<<Binary file>>
1.3 +6 -6 avalon-sandbox/avalon-net/cscontainer/bin/Apache.Avalon.Framework.dll
<<Binary file>>
1.2 +1 -1 avalon-sandbox/avalon-net/csframework/AvalonFramework/Attributes.cs
Index: Attributes.cs
===================================================================
RCS file: /home/cvs/avalon-sandbox/avalon-net/csframework/AvalonFramework/Attributes.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Attributes.cs 22 Sep 2003 23:49:25 -0000 1.1
+++ Attributes.cs 27 Sep 2003 23:58:29 -0000 1.2
@@ -1 +1 @@
-// ============================================================================
// The Apache Software License, Version 1.1
// ============================================================================
//
// Copyright (C) 2002-2003 The Apache Software Foundation. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modifica-
// tion, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// 3. The end-user documentation included with the redistribution, if any, must
// include the following acknowledgment: "This product includes software
// developed by the Apache Software Foundation (http://www.apache.org/)."
// Alternately, this acknowledgment may appear in the software itself, if
// and wherever such third-party acknowledgments normally appear.
//
// 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
// must not be used to endorse or promote products derived from this software
// without prior written permission. For written permission, please contact
// apache@apache.org.
//
// 5. Products derived from this software may not be called "Apache", nor may
// "Apache" appear in their name, without prior written permission of the
// Apache Software Foundation.
//
// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
// DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// This software consists of voluntary contributions made by many individuals
// on behalf of the Apache Software Foundation. For more information on the
// Apache Software Foundation, please see <http://www.apache.org/>.
// ============================================================================
namespace Apache.Avalon.Framework
{
using System;
///<summary>
/// Attribute used to mark the services that a component implements
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=true,Inherited=false)]
public sealed class AvalonServiceAttribute : Attribute
{
private Type m_type;
///<summary>
/// Constructor to initialize the service's name.
///</summary>
///<param name="type">The type for the service</param>
///<exception cref="ArgumentException">If the "type" value is not an interface</exception>
public AvalonServiceAttribute(Type type)
{
if (!type.IsInterface)
{
throw new ArgumentException(
"The type passed in does not represent an interface",
"type" );
}
m_type = type;
}
///<summary>
/// The name of the service
///</summary>
public Type ServiceType
{
get
{
return m_type;
}
}
}
/// <summary>
/// An enumeration used to mark a dependency as optional or not.
/// </summary>
public enum Optional
{
/// <summary>
/// Use "True" if the dependency is not required for the component
/// to run properly.
/// </summary>
True,
/// <summary>
/// Use "False" if the component will not work without the dependnecy.
/// </summary>
False
}
///<summary>
/// Attribute to mark the dependencies for a component.
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=true,Inherited=false)]
public sealed class AvalonDependencyAttribute : Attribute
{
private Type m_type;
private bool m_optional;
private string m_name;
///<summary>
/// Constructor to initialize the dependency's name.
///</summary>
///<param name="type">The type for the dependency</param>
///<param name="key">The dependency's lookup key</param>
///<param name="optional">Whether or not the dependency is optional</param>
///<exception cref="ArgumentException">If the "type" value is not an interface</exception>
public AvalonDependencyAttribute(Type type, string key, Optional optional)
{
if (!type.IsInterface)
{
throw new ArgumentException(
"The type passed in does not represent an interface",
"type" );
}
m_name = (null == key) ? type.Name : key;
m_optional = (optional == Optional.True);
m_type = type;
}
///<summary>
/// The lookup name of the dependency
///</summary>
public string Key
{
get
{
return m_name;
}
}
///<summary>
/// Is this dependency optional?
///</summary>
public bool IsOptional
{
get
{
return m_optional;
}
}
/// <summary>
/// The dependency type
/// </summary>
public Type DependencyType
{
get
{
return m_type;
}
}
}
/// <summary>
/// Enumeration used to mark the component's lifestyle.
/// </summary>
public enum Lifestyle
{
/// <summary>
/// Singleton components are instantiated once, and shared
/// between all clients.
/// </summary>
Singleton,
/// <summary>
/// Thread components have a unique instance per thread.
/// </summary>
Thread,
/// <summary>
/// Pooled components have a unique instance per client,
/// but they are managed in a pool.
/// </summary>
Pooled,
/// <summary>
/// Transient components are created on demand.
/// </summary>
Transient,
/// <summary>
/// Custom lifestyle components should be managed by custom component factories.
/// </summary>
Custom
}
///<summary>
/// Attribute used to mark a component as an Avalon component.
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=false,Inherited=false)]
public sealed class AvalonComponentAttribute : Attribute
{
private Lifestyle m_lifestyle;
private string m_configName;
private string m_loggerName;
/// <summary>
/// Marks a class as a component, providing a configuration name and preferred lifestyle
/// </summary>
/// <param name="name">The name used for configuration elements</param>
/// <param name="lifestyle">The lifestyle used for the component</param>
public AvalonComponentAttribute( string configName, Lifestyle lifestyle )
{
m_lifestyle = lifestyle;
m_configName = configName;
}
/// <summary>
/// The configuration name assigned to this component.
/// </summary>
public string ConfigurationName
{
get
{
return m_configName;
}
}
/// <summary>
/// The logger name assigned to this component.
/// </summary>
public string LoggerName
{
get
{
return m_loggerName;
}
set
{
m_loggerName = value;
}
}
/// <summary>
/// The lifestyle associated with the component
/// </summary>
public Lifestyle Lifestyle
{
get
{
return m_lifestyle;
}
}
}
}
+// ============================================================================
// The Apache Software License, Version 1.1
// ============================================================================
//
// Copyright (C) 2002-2003 The Apache Software Foundation. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modifica-
// tion, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// 3. The end-user documentation included with the redistribution, if any, must
// include the following acknowledgment: "This product includes software
// developed by the Apache Software Foundation (http://www.apache.org/)."
// Alternately, this acknowledgment may appear in the software itself, if
// and wherever such third-party acknowledgments normally appear.
//
// 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
// must not be used to endorse or promote products derived from this software
// without prior written permission. For written permission, please contact
// apache@apache.org.
//
// 5. Products derived from this software may not be called "Apache", nor may
// "Apache" appear in their name, without prior written permission of the
// Apache Software Foundation.
//
// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
// DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// This software consists of voluntary contributions made by many individuals
// on behalf of the Apache Software Foundation. For more information on the
// Apache Software Foundation, please see <http://www.apache.org/>.
// ============================================================================
namespace Apache.Avalon.Framework
{
using System;
///<summary>
/// Attribute used to mark the services that a component implements
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=true,Inherited=false)]
public sealed class AvalonServiceAttribute : Attribute
{
private Type m_type;
///<summary>
/// Constructor to initialize the service's name.
///</summary>
///<param name="type">The type for the service</param>
///<exception cref="ArgumentException">If the "type" value is not an interface</exception>
public AvalonServiceAttribute(Type type)
{
if (!type.IsInterface)
{
throw new ArgumentException(
"The type passed in does not represent an interface",
"type" );
}
m_type = type;
}
///<summary>
/// The name of the service
///</summary>
public Type ServiceType
{
get
{
return m_type;
}
}
}
/// <summary>
/// An enumeration used to mark a dependency as optional or not.
/// </summary>
public enum Optional
{
/// <summary>
/// Use "True" if the dependency is not required for the component
/// to run properly.
/// </summary>
True,
/// <summary>
/// Use "False" if the component will not work without the dependnecy.
/// </summary>
False
}
///<summary>
/// Attribute to mark the dependencies for a component.
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=true,Inherited=true)]
public sealed class AvalonDependencyAttribute : Attribute
{
private Type m_type;
private bool m_optional;
private string m_name;
///<summary>
/// Constructor to initialize the dependency's name.
///</summary>
///<param name="type">The type for the dependency</param>
///<param name="key">The dependency's lookup key</param>
///<param name="optional">Whether or not the dependency is optional</param>
///<exception cref="ArgumentException">If the "type" value is not an interface</exception>
public AvalonDependencyAttribute(Type type, string key, Optional optional)
{
if (!type.IsInterface)
{
throw new ArgumentException(
"The type passed in does not represent an interface",
"type" );
}
m_name = (null == key) ? type.Name : key;
m_optional = (optional == Optional.True);
m_type = type;
}
///<summary>
/// The lookup name of the dependency
///</summary>
public string Key
{
get
{
return m_name;
}
}
///<summary>
/// Is this dependency optional?
///</summary>
public bool IsOptional
{
get
{
return m_optional;
}
}
/// <summary>
/// The dependency type
/// </summary>
public Type DependencyType
{
get
{
return m_type;
}
}
}
/// <summary>
/// Enumeration used to mark the component's lifestyle.
/// </summary>
public enum Lifestyle
{
/// <summary>
/// Singleton components are instantiated once, and shared
/// between all clients.
/// </summary>
Singleton,
/// <summary>
/// Thread components have a unique instance per thread.
/// </summary>
Thread,
/// <summary>
/// Pooled components have a unique instance per client,
/// but they are managed in a pool.
/// </summary>
Pooled,
/// <summary>
/// Transient components are created on demand.
/// </summary>
Transient,
/// <summary>
/// Custom lifestyle components should be managed by custom component factories.
/// </summary>
Custom
}
///<summary>
/// Attribute used to mark a component as an Avalon component.
///</summary>
[AttributeUsage(AttributeTargets.Class,AllowMultiple=false,Inherited=false)]
public sealed class AvalonComponentAttribute : Attribute
{
private Lifestyle m_lifestyle;
private string m_configName;
private string m_loggerName;
/// <summary>
/// Marks a class as a component, providing a configuration name and preferred lifestyle
/// </summary>
/// <param name="name">The name used for configuration elements</param>
/// <param name="lifestyle">The lifestyle used for the component</param>
public AvalonComponentAttribute( string configName, Lifestyle lifestyle )
{
m_lifestyle = lifestyle;
m_configName = configName;
}
/// <summary>
/// The configuration name assigned to this component.
/// </summary>
public string ConfigurationName
{
get
{
return m_configName;
}
}
/// <summary>
/// The logger name assigned to this component.
/// </summary>
public string LoggerName
{
get
{
return m_loggerName;
}
set
{
m_loggerName = value;
}
}
/// <summary>
/// The lifestyle associated with the component
/// </summary>
public Lifestyle Lifestyle
{
get
{
return m_lifestyle;
}
}
}
}
1.3 +8 -10 avalon-sandbox/avalon-net/csframework/bin/Apache.Avalon.Framework.Test.dll
<<Binary file>>
1.3 +6 -6 avalon-sandbox/avalon-net/csframework/bin/Apache.Avalon.Framework.dll
<<Binary file>>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org
RES: cvs commit: avalon-sandbox/avalon-net/csframework/bin Apache.Avalon.Framework.Test.dll Apache.Avalon.Framework.dll
Posted by hammett <ho...@bvtibusiness.com.br>.
-----Mensagem original-----
De: Berin Loritsch [mailto:bloritsch@apache.org]
Enviada em: segunda-feira, 29 de setembro de 2003 09:56
> 1) We should not DLLs we develop in CVS. That is what the build
script is for.
I agree, but how's the strong named DLL could be made? If we don't
upload the signed assembly we shall upload the private/public key pair.
> 2) Make sure we commit them with the -kb attribute set. If it isn't
then we
> need to issue the following command:
>
> cvs -z3 admin -kb Apache.Avalon.Framework.dll
I'll study it...
> How are things going, is there anything you need help with?
I'm using Avalon.Net here and find out a lot of bugs and things just
strange, for instance:
- There is a BlindLookupManager which only returns dependencies for a
component. Unfortunatelly I find myself in a situation where I need
instances that are not exactly dependencies. So I changed the behavior
to be something like Fortress LookupManager.
My next task is to publish a architetural view of the implementation and
ask for opnions from this list. Unfortunatelly I had to revise my book
during this weekend and didn't have spare time..
Regards,
hammett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org
Re: cvs commit: avalon-sandbox/avalon-net/csframework/bin Apache.Avalon.Framework.Test.dll
Apache.Avalon.Framework.dll
Posted by Berin Loritsch <bl...@apache.org>.
hammett@apache.org wrote:
>
>
> 1.3 +8 -10 avalon-sandbox/avalon-net/csframework/bin/Apache.Avalon.Framework.Test.dll
>
> <<Binary file>>
>
>
> 1.3 +6 -6 avalon-sandbox/avalon-net/csframework/bin/Apache.Avalon.Framework.dll
>
> <<Binary file>>
>
Two things:
1) We should not DLLs we develop in CVS. That is what the build script is for.
2) Make sure we commit them with the -kb attribute set. If it isn't then we
need to issue the following command:
cvs -z3 admin -kb Apache.Avalon.Framework.dll
How are things going, is there anything you need help with?
--
"They that give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety."
- Benjamin Franklin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org