Commit graph

507 commits

Author SHA1 Message Date
Roland Kuhn
18688fc84b = #17380 fix doc comments for java8 doclint
* actor and cluster-metrics comments
* agent/camel/cluster/osgi/persistence/remote comments
* comments in contrib/persistence-tck/multi-node/typed
2015-05-18 12:51:36 +02:00
Patrik Nordwall
0953e7aee3 !pro #17380 Build with Java 8
* genjavadoc adjustments for java8
2015-05-18 12:51:34 +02:00
Patrik Nordwall
b30e460be7 = #17342 Make 2.4 binary compatible with 2.3
(cherry picked from commit 89af8bdb90)

* remove final identifier in serializers

i* revert/deprecate ProtobufSerializer.ARRAY_OF_BYTE_ARRAY

* adding back compatible empty constructor in serializers

* make FSM.State compatible

* add back ActorPath.ElementRegex

* revert SocketOption changes and add SocketOptionV2
  see a6d3704ef6

* problem filter for ActorSystem and ActorPath

* problem filter for ByteString

* problem filter for deprecated Timeout methods

* BalancingPool companion

* ask

* problem filter for ActorDSL

* event bus

* exclude hasSubscriptions

* exclude some problems in testkit

* boundAddress and addressFromSocketAddress

* Pool nrOfInstances

* PromiseActorRef

* check with 2.3.9

* migration guide note

* explicit exclude of final class problems
2015-05-11 21:11:52 +02:00
Konrad Malawski
bebdb870b6 +pro Update ScalaTest in order to use tag ignoring in sbt 2015-05-08 15:40:34 +02:00
Patrik Nordwall
79e7fe22de =tes #17080 Move TestUtils to testkit.SocketUtil
(cherry picked from commit 3df2a822efa7e1330d564ceea7506d606359e17c)

Conflicts:
	akka-actor-tests/src/test/scala/akka/actor/ActorPerfSpec.scala
	akka-actor-tests/src/test/scala/akka/io/UdpIntegrationSpec.scala
	akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/Journal.scala
	akka-testkit/src/main/scala/akka/testkit/SocketUtil.scala
2015-04-08 08:21:38 +02:00
Ekin Gecikligun
6b1b8316c7 +tes #17023 Adding ForwardActor among test-kit actors 2015-03-26 13:29:36 +02:00
Julian Tescher
00f6a58e7c Changes all occurances of Typesafe copyright to extend to 2015 2015-03-10 14:12:19 -07:00
Patrik Nordwall
30df518421 =tes Use ConversionCheckedTripleEquals 2015-03-10 08:17:03 +01:00
Roland Kuhn
5e1fd1db6c Merge pull request #16763 from akka/wip-cleanup-actor-∂π
fix all non-deprecation warnings
2015-02-06 20:54:12 +01:00
Dale Wijnand
abdb9e1f2d Fix code example in TestKit docs. 2015-02-03 11:40:46 +00:00
Roland Kuhn
613f63b526 fix warnings in actor and testkit 2015-01-30 11:33:33 +01:00
Roland Kuhn
d9efd041f7 add akka-typed project with generic ActorRef
This is the first step towards more type-safety in Actor interactions,
comprising:

* generic ActorRef[T] that only accepts T messages
* generic ActorSystem[T] extends ActorRef[T] (sending to the guardian,
  whose Props[T] are provided for ActorSystem construction)
* removed the Actor trait: everything in there has been made into
  messages and signals
* new Behavior[T] abstraction that consumes messages (of type T) or
  Signals (lifecycle hooks, Terminated, ReceiveTimeout, Failed),
  producing the next Behavior[T] as the result each time
* the ask pattern is provided and yields properly typed Futures
* variants of ActorContext are provided for synchronous testing of
  Behaviors

All of this is implemented without touching code outside akka-typed
(apart from making guardianProps configurable), creating wrapper objects
around ActorRef, ActorContext, ActorSystem, Props and providing an Actor
implementation that just runs a Behavior.
2015-01-29 11:42:28 +01:00
Paweł Wiejacha
f480989b25 +tes #16431 support for TestProbe with user-defined name 2014-12-04 22:42:40 +01:00
Patrik Nordwall
6a7133ea21 !tes #16075 Change default awaitAssert interval to 100 ms 2014-11-21 11:36:37 +01:00
Andrei Pozolotin
d83acb92c3 = akka-*: full name space for loggers - resolve #16138
reflect logger name changes in the migration guide

fix typo in migration guide

fix typo in migration guide (xml)
2014-11-18 09:17:07 -06:00
Pavel Boldyrev
9b9ad0d831 +tes add static modifier for overloaded JavaTestKit.shutdownActorSystem(...) methods to make them more usable in unit tests. 2014-11-16 22:39:19 -05:00
Benjamin Poserow
53e066513d =tes Fix comments in TestEventListener for different event types 2014-10-19 22:22:03 -04:00
Konrad 'ktoso' Malawski
d8a2f1471b =tes #15808 force the locale in pretty duration, its only a helper 2014-09-05 12:23:57 +02:00
Konrad 'ktoso' Malawski
6b1e117a8c =tes #15777 simple, but stable fix to , or . sensitivity in spec
Solves #15777
2014-08-29 17:04:14 +02:00
Viktor Klang
cd8e97c060 +act - 15757 - Reworks implementation of ActorSystem shutdown
* deprecates awaitTermination, shutdown and isTerminated
  * introduces a terminate-method that returns a Future[Unit]
  * introduces a whenTerminated-method that returns a Future[Unit]
  * simplifies the implementation by removing blocking constructs
  * adds tests for terminate() and whenTerminated
2014-08-25 15:49:28 +02:00
Patrik Nordwall
4e54672198 =tes #15167 Harden TestTimeSpec 2014-08-07 11:58:44 +02:00
Łukasz Dubiel
2c88bb1169
=act #13970 Send transistion on goto(CurrentState) in FSM
When in `A`:
* `goto(A)` will trigger `onTransition(A -> A)`
* `stay()` will NOT trigger `onTransition`

Includes:
* migration guide
* docs updates
* test
2014-07-18 17:36:55 +02:00
Michal Knapik
7ca3a9699e +tes #12681 add EchoActor 2014-07-11 11:16:35 +02:00
Konrad 'ktoso' Malawski
67784dbdae =tes #15132 remove not needed lazy val 2014-06-20 16:54:53 +02:00
Marcin Kubala
cdf2bc24d4 +tes #15132 Add additional overloaded expectMsg to TestKit 2014-06-06 21:43:14 +02:00
Marcin Kubala
a165f6da92 =tes #15357 fix for PrettyDurationSpec 2014-06-04 20:50:26 +02:00
Konrad 'ktoso' Malawski
0ab8e2f37a =tes #15165 MetricsKit should not nullpointer on racy graphite usage
The report() call can come from multiple threads in our code,
yet it was opening/closing a shared graphite client instance in this
method, causing NPE when periodic reporting kicked in during a manual
report() call. We want to be able to do this - thus rewrite to safe impl

Removed metrics-graphite dependency, replaced by in house impl.
The previous was using discrete write() calls, which could be entangled
when called from multiple threads, and produce invalid metric lines.
Current impl is simpler and threadsafe, as the lock for write(String) to
aquired for the entire string lenght's write (unlike multiple write calls).

Resolves #15165
2014-05-20 01:22:01 +02:00
Konrad 'ktoso' Malawski
26936e999f =act #15165 should fix out-of-bounds in actor creation
Other than that, also improved failure logging when AIOOB happens in the histogram
Added a test which shows why the updateWithExpectedInterval method
should be preferred too.
2014-05-14 16:33:41 +02:00
Konrad 'ktoso' Malawski
2e221b99dc =tes #15155 prettyduration should work with infinity
adjust default precision to be 4 (fits use case better)
2014-05-09 16:20:24 +02:00
Konrad 'ktoso' Malawski
684c0279ec =act,tes Initial draft of internal MetricsKit
Note: This is NOT aimed to provide an micro-benchmarking solution.
The goal is to provide data for broad trend analysis. For techniques
that fight the inliner and other specialised techniques, refer to JMH.

+ custom console and graphite reporters
  - had to be custom because it's not possible to add custom metric
    types to the existing reporters
+ initial hdr.Histogram histogram() provider, see
  http://latencyutils.github.io/LatencyUtils/
+ Not using timers provided by Metrics, instead use the above histogram
+ Added average Actor size measurement
+ Measuring the "blocking time" when an actor is created, before we fire
  of the async part of this process; Measures in loop and will fluctuate
  a lot. Times are in `us` -- System.nanoTime should provide good enough
  resolution.
+ Measuring total actor creation time by using
  `KnownOpsInTimespanTimer`, which given a known number of ops, in a
  large amount of time, roughtly estimates time per one operation.
  // Yes, we are aware of the possibility of GC pauses and other horrors
+ All classes are `private[akka]`, we should not encourage people to use
  this yet
+ Counters use Java 8's `LongAdder`, which is metric's private;
  The new trend in Java land will be copy paste-ing this class ;)
+ Metrics are logged to Graphite, so we can long-term analyse these
+ Reporters are configurable using typesafe-config

! I'm not very happy about how I work around Metrics not being too open
  for adding additional custom metrics. Seems like a hack at places.
  I will consider removing the Metrics dependency all together.
  numbers

Example output:

```
-- KnownOpsInTimespanTimer-------------------------------------------
  actor-creation.total.creating-100000-actors.Props|new-EmptyArgsActor|…||-same
               ops = 100000
              time = 1.969 s
             ops/s = 50782.22
               avg = 19.69 μs

-- AveragingGauge---------------------------------------------------
  actor-creation.Props|new-EmptyArgsActor|…||-same.avg-mem-per-actor
                avg = 439.67
```
2014-05-08 14:52:39 +02:00
Roland Kuhn
a9c022e92a +act,mul #3948 add MultiNodeSpec.startNewSsytem() and system.abort()
abort() currently only changes that remote-deployed child actors are not
waited for during termination (because that would not change anything);
it is still a different operation than shutdown() since it changes what
you are guaranteed to observe after termination.

testConductor.shutdown(..., abort = true) uses this mode of termination.

improve MultiNodeSpec to allow injection of deployment configuration
into arbitrary actor systems

include number of received elements in the timeout failure message for
TestKit.receiveN
2014-03-21 20:43:06 +01:00
Patrik Nordwall
c3b237ce8d Merge pull request #2066 from akka/wip-3920-remove-deprecated-patiknw
Remove deprecated features
2014-03-14 14:20:05 +01:00
Patrik Nordwall
66e4ca9e93 !tes #3920 Remove TestKit.dilated 2014-03-14 14:16:29 +01:00
Roland Kuhn
f5a5d4bd9b Merge pull request #2042 from jozic/small-testkit-cleanup
=act,tes Small TestKit cleanup
2014-03-12 22:25:58 +01:00
Roland Kuhn
4dd5fe3257 Merge pull request #2047 from drexin/wip-3858-make-case-classes-final-drexin
=all #3858 Make case classes final
2014-03-11 16:06:31 +01:00
dario.rexin
826cc74de3 !tes #2971 Make TestKit.remaining throw AssertionError outside of within 2014-03-11 11:23:12 +01:00
dario.rexin
2cbad298d6 =all #3858 Make case classes final 2014-03-07 13:20:01 +01:00
Roland Kuhn
b5eeb08fde +act #3900 make systemActorOf available to Extensions 2014-03-03 12:00:25 +01:00
Eugene Platonov
96bf75b2b7 =act,tes Small TestKit cleanup 2014-02-27 17:18:13 -05:00
Eugene Platonov
b1d794e9af =tes,act,doc Make dilated an extension method and deprecate TestKit.dilated in favor of JavaTestKit.dilated 2014-02-14 18:35:51 -05:00
Adam Voss
cce29dfa51 Changes all occurances of Typesafe copyright to extend to 2014. 2014-02-04 21:20:09 -06:00
Patrik Nordwall
ef261e8128 Merge pull request #1976 from akka/wip-3837-akka-master-on-scala-master-ban
=all #3837 Make akkaScalaNightly compile on scala 2.11.0-M8
2014-02-02 02:46:39 -08:00
Björn Antonsson
179faba453 =all #3837 Make akkaScalaNightly compile on scala 2.11.0-M8 2014-01-31 14:13:02 +01:00
Patrik Nordwall
615c6b572c =* #2966 Reduce warnings from compile, test, scaladoc 2014-01-24 11:47:57 +01:00
Patrik Nordwall
8ec581c808 Merge pull request #1935 from drexin/wip-3544-improve-testkit
+tes Added system as default param to TestKit.shutdown
2014-01-20 05:12:17 -08:00
Patrik Nordwall
37eddd716c Merge pull request #1936 from akka/wip-3738-memory-leaks-in-tests-patriknw
=act #3738 Fix memory leaks in tests
2014-01-20 02:51:49 -08:00
Dario Rexin
e045c537a3 !tes #3544 Added 'system' as default parameter to the shutdown method on
TestKit
2014-01-17 23:08:32 +01:00
Patrik Nordwall
a11fb1dafc =act #3572 Add parens to sender
* because it is not referentially transparent; normally we reserved parens for
  side-effecting code but given how people thoughtlessly close over it we revised
  that that decision for sender
* caller can still omit parens
2014-01-17 18:21:14 +01:00
Patrik Nordwall
9eb32a4486 =act #3738 Fix memory leaks in tests
* afterAll not called when all tests marked as ignore,
  invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected = true
  should solve that, but changed to pending in Ticket1978 anyway
* Try to shutdown when ActorSystem init fails. It is difficult
  to cover all scenarios, but this should improve the situation.
  This was the reason why DeployerSpec leaked.
* missing shutdown in some tests
2014-01-17 16:18:35 +01:00
Roland Kuhn
5bcb750441 !act,doc,rem,tes 3823 remove deprecated Props methods
- rewrite deprecated usages to their recommended counterparts
- TestActorRef now verifies mailbox requirements
- CallingThreadMailbox now exposes proper messageQueue type for
  inspection
2014-01-17 09:12:44 +01:00