TODO.txt 4.56 KB
Newer Older
Lionel Seinturier's avatar
Lionel Seinturier committed
1
core/
Lionel Seinturier's avatar
Lionel Seinturier committed
2
3
4
5
* when Juliac is invoked programmatically, support in memory code generation and
  compilation when no value is defined for the --gensrc and --genclass
  parameters. Retain the current behavior to generate in the default locations
  for the MOJO and the command line.
6
* provide a --gensrcjar for packaging the generated source code in a jar file 
Lionel Seinturier's avatar
Lionel Seinturier committed
7
* expose Juliac as a Fractal provider class.
Lionel Seinturier's avatar
Lionel Seinturier committed
8
9
  The idea is to generated the source code during the first run of the
  application in order to be able to reuse it for later runs.
Lionel Seinturier's avatar
Lionel Seinturier committed
10
11
12
13
14
15
* proxy generation
  * fix generic type variable conflicts between the implemented interface and
    the extended class. This conflict occurs for example in Tinfi when
    generating proxies for generic interfaces (e.g.
    BindingFactoryPlugin<E extends ExportHints, B extends BindHints>) from
    the Binding Factory. In this case, the extended class is ServiceReference<B>
Lionel Seinturier's avatar
Lionel Seinturier committed
16
    and the identifier B clashes with the one from BindingFactoryPlugin.
17
18

examples/advanced/
Lionel Seinturier's avatar
Lionel Seinturier committed
19
* add an example which uses the julia-fraclet module developed by Marc
Lionel Seinturier's avatar
Lionel Seinturier committed
20

Lionel Seinturier's avatar
Lionel Seinturier committed
21
extension/osgi/
Lionel Seinturier's avatar
Lionel Seinturier committed
22
* support OSGi properties (requested by Philippe)
Lionel Seinturier's avatar
Lionel Seinturier committed
23
24
25
* enable changing the bundle which is associated with a osgiPrimitive component
  (suggestion by Valerio)

26
27
28
29
30
mojo/
* mvn clean checks the availability of the maven-juliac-plugin even though this
  plugin is not required when performing mvn clean. This causes mvn clean to
  fail if the MOJO has not been installed before (bug reported by Denis.)

31
32
33
34
opt/comp/
* provide a membrane factory
* interceptors on control interfaces (see OO)

Lionel Seinturier's avatar
Lionel Seinturier committed
35
opt/ultra-comp/
Lionel Seinturier's avatar
Lionel Seinturier committed
36
37
* use the parse method from the Fractal ADL plugin to retrieve a model of the
  application. Traverse the model and replace:
38
39
40
41
42
  * each primitive with the assembly corresponding to its membrane. The
    primitive becomes the CContent component in the membrane.
  * each composite with the assembly corresponding to its membrane. The
    subcomponents should be referenced by the content control component of the
    composite.
43
44
45
46
47
48
49
50
51
* do not add a content control component for composite membranes
  (contentClassName == null ?)
* fix the status of the component control component in primitive membranes:
  should it be removed and replaced by the MPrimitiveImpl of the content control
  component?
* fix the status of the binding control component: should it be removed and
  replaced by the MCompositeImpl of the membrane?
* if the content class implements LifeCycleController, add the corresponding
  server interfaces to the content control component
52
53
54
  * declare in the ADL of the lifecycle control component, the corresponding
    optional client interfaces
  * bind these interfaces
55
56
* fix the management of collection interfaces in MPrimitiveImpl and in
  MCompositeImpl
Lionel Seinturier's avatar
Lionel Seinturier committed
57

58
59
60
61
62
63
opt/merge-all/
* merge all except content when the generic factory is invoked with an instance
* interceptors on client interfaces
* take into account .cfg Tree for instantiating a controller (see OO)
* interceptors on control interfaces (see OO)

64
opt/ultra-merge/core/
Lionel Seinturier's avatar
Lionel Seinturier committed
65
* handle synchronized methods
Lionel Seinturier's avatar
Lionel Seinturier committed
66
* handle synchronized(this) blocks
67
* provide an external configuration file to declare fields which hold
68
  references to bound components (avoid being obliged to annotate fields with
69
70
  @Requires)
* merge the code of some specified interceptors and/or controllers.
Lionel Seinturier's avatar
Lionel Seinturier committed
71
  For example, it may be useful to inline a stat controller and its
72
73
74
75
76
  interceptors. Such a use case is also needed by Ales and Frederic in the
  Soleil-RTF project.
* support multiple different components with the same content class
* generate the code which contains a description of the architecture
* provide an API to retrieve a reconfigurable architecture from the merged
Lionel Seinturier's avatar
Lionel Seinturier committed
77
78
  application. Note: transferring the application state from the merged
  application to the reconfigurable one may not be so easy.
79
80
* evaluate and inline Fractal API invocations which do not modify the
  architecture (e.g. getFcName())
81
82
83
84
* handle @Attribute annotations (suggested by Philippe)
  * set the visibilities of attribute fields to final
  * assign the values from the architecture descriptor to the initialization
    expressions of the attribute fields
Lionel Seinturier's avatar
Lionel Seinturier committed
85

86
plugin/compiler/
87
* investigate new plugins for the compilation service
Lionel Seinturier's avatar
Lionel Seinturier committed
88
89
  * janino <www.janino.net> (janino.jar - 463412 bytes)
  * javac (jdk <= 1.5)
Lionel Seinturier's avatar
Lionel Seinturier committed
90

Lionel Seinturier's avatar
Lionel Seinturier committed
91
92
93
runtime-comp/
* provide a generic initializer implementation

Lionel Seinturier's avatar
Lionel Seinturier committed
94
95
96
97
runtime-merge-all/
* create this module with a o.o.f.juliac.runtime.merge_all package
* provide a generic initializer implementation

Lionel Seinturier's avatar
Lionel Seinturier committed
98
runtime-oo/
Lionel Seinturier's avatar
Lionel Seinturier committed
99
* provide a generic initializer implementation