Commit graph

86 commits

Author SHA1 Message Date
Viktor Klang
a863f135e0 #2020 - Adding 'checkedApply' to Mapper to allow for binary compatible retrofit. And then @throws on the other Java Callbacks 2012-04-24 17:56:18 +02:00
Roland
201885d125 incorporate Viktor’s review
- rename instance() to getInstance()
- add ScalaDoc
- some formatting
2012-04-10 16:59:23 +02:00
Roland
b6db48818a add Java API for most case objects
- “case object” will emit a concrete class without constructor, so put
  abstract class in its way in order to obtain an accessible type for
  Scala & Java (i.e. without $)
- add “def instance = this” to make access uniform from Java
- this does not work for nested case objects because of missing static
  forwarders, so keep those as they were
- fix issue with case object FromConfig colliding with case class
  FromConfig by open-coding the “case”iness in this case (should be
  thrown out in 2.1)
2012-04-10 16:59:15 +02:00
Roland
73170d1f4b Merge remote-tracking branch 'origin/master' into testing-2.9.2 2012-02-28 10:52:27 +01:00
phaller
00e5bf3bdf Add Java API class UntypedActorWithStash. Add tests for Stash Java API. 2012-02-27 22:38:26 +01:00
Viktor Klang
46b9b3cd43 Removing the Filter class, keeping Filter.filterOf 2012-02-27 11:08:02 +01:00
Roland
0cb2184904 make it compile in SBT & Eclipse with 2.9.2-SNAPSHOT
- there is one remaining bug, which makes it impossible to implement
  Function1[T, Boolean] from Java (I wonder if this will ever work,
  given that there is no equivalent type expressible in Java)
- hence create Function1 in Scala code, Java only prepares a Filter SAM
  which does not inherit from anything
- ugly (one more alloc) but the only way I see right now.
2012-02-25 19:34:59 +01:00
Viktor Klang
e88f2bd936 First stab, do we want to go for throws Throwable or even just switch to RuntimeExceptions? 2012-02-16 12:31:49 +01:00
Patrik Nordwall
e017aeef08 Replace akka.actor.timeout with specfic settings. See #1808
* ActorTimeout (akka.actor.timeout) was used to all sorts of things.
* TestKit default-timeout
* TypedActor timeout for non void methods
* Transactor coordinated-timeout
* ZeroMQ new-socket-timeout
* And in various tests
2012-02-10 16:07:17 +01:00
Roland
dca309c535 incorporate Patrik’s feedback
- rename to DynamicAccess
- rename to createInstanceFor / createClassFor
- fix a few little things
2012-02-10 11:36:23 +01:00
Roland
2ce47d6bb5 Bye-bye ReflectiveAccess, introducing PropertyMaster, see #1750
- PropertyMaster is the only place in Akka which calls
  ClassLoader.getClass (apart from kernel, which might be special)
- all PropertyMaster methods (there are only three) take a ClassManifest
  of what is to be constructed, and they verify that the obtained object
  is actually compatible with the required type

Other stuff:
- noticed that I had forgotten to change to ExtendedActorSystem when
  constructing Extensions by ExtensionKey (damn you, reflection!)
- moved Serializer.currentSystem into JavaSerializer, because that’s the
  only one needing it (it’s only used in readResolve() methods)
- Serializers are constructed now with one-arg constructor taking
  ExtendedActorSystem (if that exists, otherwise no-arg as before), to
  allow JavaSerializer to do its magic; possibly necessary for others as
  well
- Removed all Option[ClassLoader] signatures
- made it so that the ActorSystem will try context class loader, then
  the class loader which loaded the class actually calling into
  ActorSystem.apply, then the loader which loaded ActorSystemImpl
- for the second of the above I added a (reflectively accessed hopefully
  safe) facility for getting caller Class[_] objects by using
  sun.reflect.Reflection; this is optional an defaults to None, e.g. on
  Android, which means that getting the caller’s classloader is done on
  a best effort basis (there’s nothing we can do because a StackTrace
  does not contain actual Class[_] objects).
- refactored DurableMailbox to contain the owner val and use that
  instead of declaring that in all subclasses
2012-02-09 11:56:43 +01:00
Viktor Klang
8193e61aee Renaming tryRecover to recoverWith as in SIP14, adding parameter to foreach 2012-02-03 09:25:56 +01:00
Viktor Klang
5d2669769f Making the ExecutionContext protected and adding tryRecover 2012-01-30 17:01:47 +01:00
Viktor Klang
1ebdcaca1a Fixes after review 2012-01-26 17:47:31 +01:00
Viktor Klang
5ddf1afb20 Adding tests for recover and mapTo, adding API for creating manifests from Java and doccing things 2012-01-26 15:11:49 +01:00
Viktor Klang
b310407334 wip 2012-01-26 14:15:25 +01:00
Roland
d5c23bcb76 add ExtendedActorSystem to shield ActorSystemImpl
- add provider, guardian, systemGuardian and deathWatch to it
- make ActorSystemImpl extend ExtendedActorSystem
- use ExtendedActorSystem for creating extensions, thereby limiting the
  access extensions get to just those four published methods.
2012-01-24 11:33:40 +01:00
Patrik Nordwall
1572da09db Changed name of the instance field as suggested. See #1702 2012-01-23 16:11:58 +01:00
Patrik Nordwall
05d4a6ed38 DOC: Extension sample for application specific settings. See #1702
* Added sample and documentation for how to create extension for application specific config
* Simplified java usage of ExtensionIdProvider, more aligned with how it is done in scala
2012-01-20 11:30:33 +01:00
Viktor Klang
149fbea5a7 Updating Copyright as per #1660 2012-01-19 18:21:06 +01:00
Jonas Bonér
a18206b81a Merge branch 'wip-remove-timeout-jboner' into master
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-12-14 22:46:43 +01:00
Viktor Klang
e959493e12 Enormous merge with master which probably led to the indirect unfortunate deaths of several kittens 2011-12-14 17:36:39 +01:00
Jonas Bonér
04cd2adee9 Moved Timeout classes from akka.actor._ to akka.util._.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-12-14 17:34:56 +01:00
Viktor Klang
b3e5da2377 Changing Akka Futures to better conform to spec 2011-12-14 01:24:55 +01:00
Roland
5eedbdd69f rename ActorSystem.stop() to .shutdown() 2011-12-14 01:06:20 +01:00
Jonas Bonér
c9b787f029 Removed all 'actorOf' methods that does not take a 'Props', and changed all callers to use 'actorOf(Props(..))'
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-12-13 14:09:40 +01:00
Viktor Klang
b32cbbc764 Renaming Block to Await, renaming sync to result, renaming on to ready, Await.ready and Await.result looks and reads well 2011-12-12 22:50:08 +01:00
Viktor Klang
d8fe6a5509 Removing Future.get 2011-12-12 22:24:17 +01:00
Viktor Klang
67c782f82c Renaming onResult to onSuccess and onException to onFailure 2011-12-12 20:09:26 +01:00
Viktor Klang
2d418c188f Renaming completeWithResult to success, completeWithException to failure, adding tryComplete to signal whether the completion was made or not 2011-12-12 17:25:34 +01:00
Viktor Klang
7026ded91d Removing Future.result 2011-12-12 15:22:26 +01:00
Viktor Klang
7eced71a85 Removing FutureFactory and reintroducing Futures (for Java API) 2011-12-12 14:39:10 +01:00
Viktor Klang
0b6a1a0e54 Removing Future.exception plus starting to remove Future.result 2011-12-12 12:41:56 +01:00
Viktor Klang
2673a9c047 Removing Future.as[] and commenting out 2 Java Specs because the compiler can't find them? 2011-12-11 20:12:55 +01:00
Viktor Klang
1efed78de8 Removing resultOrException 2011-12-11 14:06:30 +01:00
Viktor Klang
3b1330c6d7 Tests are green with new Futures, consider this a half-way-there marker 2011-12-11 00:40:52 +01:00
Patrik Nordwall
bfa14a692c Merge branch 'master' into wip-1377-context-patriknw
Conflicts:
	akka-actor/src/main/scala/akka/actor/ActorCell.scala
	akka-actor/src/main/scala/akka/actor/ActorRef.scala
	akka-actor/src/main/scala/akka/dispatch/AbstractDispatcher.scala
	akka-actor/src/main/scala/akka/event/EventStream.scala
	akka-tutorials/akka-tutorial-first/src/main/java/akka/tutorial/first/java/Pi.java
	akka-tutorials/akka-tutorial-first/src/main/scala/Pi.scala
2011-12-07 07:49:34 +01:00
Patrik Nordwall
3204269f6a Cleanup of methods in Actor and ActorContext trait. See #1377
* Added JavaActorContext, UntypedActor.getContext
* implicit val context in Actor needs to be implicit to support forward,
it would be nice if it wasn't implicit because now I can't override context
in UntypedActor
* Removed implicit def system in Actor
* Removed implicit def defaultTimeout in Actor
* Removed receiveTimeout, children, dispatcher, become, unbecome, watch,
unwatch in Actor
* Removed corresponding as above from UntypedActor
* Removed implicit from dispatcher in ActorSystem
* Removed implicit def timeout in TypedActor
* Changed receiveTimeout to use Duration (in api)
* Changed many tests and samples to match new api
2011-12-06 09:50:16 +01:00
Roland
e38cd19af9 Merge branch 'master' into wip-ActorPath-rk 2011-12-02 13:31:48 +01:00
Patrik Nordwall
b488d70f54 Fixed several memory and thread leaks. See #1404
* Dispatchers need Scheduler to be able to shutdown themselves. Stop Scheduler after dispatchers.
* Changed CallingThreadDispatcher global object to Extension, since it holds map of references to mailboxes. Will be GC:ed when system is GC:ed.
* Made testActor lazy, since it is not used in all tests, and it creates CallingThreadDispatcher.
* Activated some java tests that were not running
* Many tests were not stopping created ActorSystems. VERY IMPORTANT TO STOP ActorSystem in tests. Use AkkaSpec as much as possible.
* Used profiler to verify (and find) dangling ActorSystemImpl and threads from dispatchers.
* FutureSpec creates ForkJoinPool threads that are not cleared, but number of threads don't grow so it's not a problem.
2011-12-02 09:48:21 +01:00
Roland
073c3c012b fix EventStreamSpec by adding Logging extension
- used only to keep the uniquifying logger counter per-ActorSystem
- add convenience-class for writing an extension with only two lines
  overhead (Java: three)!
2011-11-29 23:00:57 +01:00
Patrik Nordwall
b56201ab7f Updated to latest config lib and changed how reference config files are loaded.
* Config lib 4f3a91f
* All reference files named reference.conf, all will be loaded
* Usage of ConfigFactor.load as default way
* Extensions use same config as ActorSystem.settings.config
2011-11-29 11:56:41 +01:00
Viktor Klang
539e12a7a4 Making TypedActors an Akka Extension and adding LifeCycle overrides to TypedActors, see #1371 and #1397 2011-11-28 16:15:08 +01:00
Viktor Klang
603a8ed034 Creating ExtensionId, AbstractExtensionId, ExtensionIdProvider and Extension 2011-11-25 10:45:22 +01:00
Viktor Klang
bf20f3fa44 Reinterpretation of Extensions 2011-11-24 18:53:18 +01:00
Patrik Nordwall
179399296e Modularize configuration. See #1361
* Split config reference to one for each module/extension.
* Adjusted signature of registerExtension to avoid race of extension init
* Moved Duration.dilated to testkit
* TestKitExtension
* RemoteExtension
* SerializationExtension
* Durable mailboxes extensions
* Fixed broken serialization bindings and added test
* Updated configuration documentation
* System properties akka.remote.hostname akka.remote.port replaced with akka.remote.server.hostname and akka.remote.server.port
* Adjustments of ActorSystem initialization. Still don't like the two-phase constructor/init flow. Very fragile for changes.

Review fixes. SerializationExtension
2011-11-23 20:31:58 +01:00
Roland
263e2d495d Merge branch 'extensions' into master 2011-11-21 15:58:01 +01:00
Roland
69ce6aa9d6 add extension mechanism
- type is encoded in key, allowing proper typing in Scala & Java
- test cases for Scala & Java are included to ensure that the API makes
  sense and does not break
2011-11-18 16:52:44 +01:00
Patrik Nordwall
4b8f11ea92 Replaced akka.config with new configuration utility. See #1141 and see #1342
* All default values removed from code and loaded from akka-actor-reference.conf, located in src/main/resources (included in jar)
* Default test configuration included in AkkaSpec instead of using akka.test.conf, avoids problems when running test (in IDE) and forgetting to use -Dakka.mode=test.
* System.properties used first, if availble
* Next step will be to split akka-actor-reference.conf in separate -reference for each module
2011-11-18 10:05:40 +01:00
Roland
d381b72061 rename app: ActorSystem to system everywhere 2011-11-17 12:36:35 +01:00