hg merge release-1.0c (forward-porting)

This commit is contained in:
Carlos Ruiz 2013-07-31 10:04:55 -05:00
commit d0f1a03dba
79 changed files with 607 additions and 135 deletions

View File

@ -0,0 +1,32 @@
-- Jul 24, 2013 10:16:11 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=W & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:16:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206
;
-- Jul 24, 2013 10:16:35 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=X & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:16:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3612
;
-- Jul 24, 2013 10:16:48 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=I & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:16:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201638
;
-- Jul 24, 2013 10:17:27 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=P | @Action@=R & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:17:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2576
;
-- Jul 24, 2013 10:17:53 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=T & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:17:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208
;
-- Jul 24, 2013 10:18:05 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=F & @IsSummary@=N',Updated=TO_DATE('2013-07-24 10:18:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207
;
SELECT register_migration_script('20130724102515_IDEMPIERE-1187.sql') FROM dual
;

View File

@ -0,0 +1,7 @@
-- Jul 30, 2013 11:49:17 AM SGT
-- IDEMPIERE-840 Improvement to Request model class
UPDATE AD_ModelValidator SET IsActive='N',Updated=TO_DATE('2013-07-30 11:49:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_ModelValidator_ID=200003
;
SELECT register_migration_script('201307301144_IDEMPIERE-840.sql') FROM dual
;

View File

@ -0,0 +1,25 @@
-- Jul 30, 2013 3:02:24 PM COT
-- IDEMPIERE-1162
UPDATE R_MailText SET MailText='Dear @Name@,
You are receiving this email because you (or somebody pretending to be you) said you have lost your iDempiere password.
To access your iDempiere, use the temporary password from @AD_Client_ID<Name>@ below:
@#NewPassword@
Once you login, you will be directed to change password screen. Please change your password to something you can remember.
Sincerely,
The iDempiere Accounts Team
Note: This email address cannot accept replies.',Updated=TO_DATE('2013-07-30 15:02:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=0 WHERE R_MailText_ID=200000
;
-- Jul 30, 2013 3:02:24 PM COT
-- IDEMPIERE-1162
UPDATE R_MailText_Trl SET IsTranslated='N' WHERE R_MailText_ID=200000
;
SELECT register_migration_script('201307301502_IDEMPIERE-1162.sql') FROM dual
;

View File

@ -0,0 +1,7 @@
-- Jul 30, 2013 11:33:11 PM SGT
-- IDEMPIERE-840 Improvement to Request model class
DELETE FROM AD_ModelValidator WHERE AD_ModelValidator_ID=200003
;
SELECT register_migration_script('201307302339_IDEMPIERE-840.sql') FROM dual
;

View File

@ -0,0 +1,13 @@
-- Jul 31, 2013 9:00:38 AM COT
-- IDEMPIERE-840 Improvement to Request model class
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Org_ID,Created,AD_Client_ID) VALUES ('I','Sent by iDempiereMail',200218,'D','e1049e33-cbdc-4fc4-94fa-9e99f6bb07cc','RequestSentBy','Y',TO_DATE('2013-07-31 09:00:30','YYYY-MM-DD HH24:MI:SS'),100,100,0,TO_DATE('2013-07-31 09:00:30','YYYY-MM-DD HH24:MI:SS'),0)
;
-- Jul 31, 2013 9:00:38 AM COT
-- IDEMPIERE-840 Improvement to Request model class
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200218 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
;
SELECT register_migration_script('201307310904_IDEMPIERE-840.sql') FROM dual
;

View File

@ -0,0 +1,32 @@
-- Jul 24, 2013 10:16:11 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=W & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:16:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206
;
-- Jul 24, 2013 10:16:35 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=X & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:16:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3612
;
-- Jul 24, 2013 10:16:48 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=I & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:16:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201638
;
-- Jul 24, 2013 10:17:27 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=P | @Action@=R & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:17:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2576
;
-- Jul 24, 2013 10:17:53 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=T & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:17:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208
;
-- Jul 24, 2013 10:18:05 AM COT
-- IDEMPIERE-1187 in make menu window, when select "Summary Level", field "Window" still display
UPDATE AD_Field SET DisplayLogic='@Action@=F & @IsSummary@=N',Updated=TO_TIMESTAMP('2013-07-24 10:18:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207
;
SELECT register_migration_script('20130724102515_IDEMPIERE-1187.sql') FROM dual
;

View File

@ -0,0 +1,7 @@
-- Jul 30, 2013 11:49:17 AM SGT
-- IDEMPIERE-840 Improvement to Request model class
UPDATE AD_ModelValidator SET IsActive='N',Updated=TO_TIMESTAMP('2013-07-30 11:49:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_ModelValidator_ID=200003
;
SELECT register_migration_script('201307301144_IDEMPIERE-840.sql') FROM dual
;

View File

@ -0,0 +1,25 @@
-- Jul 30, 2013 3:02:24 PM COT
-- IDEMPIERE-1162
UPDATE R_MailText SET MailText='Dear @Name@,
You are receiving this email because you (or somebody pretending to be you) said you have lost your iDempiere password.
To access your iDempiere, use the temporary password from @AD_Client_ID<Name>@ below:
@#NewPassword@
Once you login, you will be directed to change password screen. Please change your password to something you can remember.
Sincerely,
The iDempiere Accounts Team
Note: This email address cannot accept replies.',Updated=TO_TIMESTAMP('2013-07-30 15:02:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=0 WHERE R_MailText_ID=200000
;
-- Jul 30, 2013 3:02:24 PM COT
-- IDEMPIERE-1162
UPDATE R_MailText_Trl SET IsTranslated='N' WHERE R_MailText_ID=200000
;
SELECT register_migration_script('201307301502_IDEMPIERE-1162.sql') FROM dual
;

View File

@ -0,0 +1,7 @@
-- Jul 30, 2013 11:33:11 PM SGT
-- IDEMPIERE-840 Improvement to Request model class
DELETE FROM AD_ModelValidator WHERE AD_ModelValidator_ID=200003
;
SELECT register_migration_script('201307302339_IDEMPIERE-840.sql') FROM dual
;

View File

@ -0,0 +1,13 @@
-- Jul 31, 2013 9:00:38 AM COT
-- IDEMPIERE-840 Improvement to Request model class
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Org_ID,Created,AD_Client_ID) VALUES ('I','Sent by iDempiereMail',200218,'D','e1049e33-cbdc-4fc4-94fa-9e99f6bb07cc','RequestSentBy','Y',TO_TIMESTAMP('2013-07-31 09:00:30','YYYY-MM-DD HH24:MI:SS'),100,100,0,TO_TIMESTAMP('2013-07-31 09:00:30','YYYY-MM-DD HH24:MI:SS'),0)
;
-- Jul 31, 2013 9:00:38 AM COT
-- IDEMPIERE-840 Improvement to Request model class
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Message_Trl_UU ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200218 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
;
SELECT register_migration_script('201307310904_IDEMPIERE-840.sql') FROM dual
;

View File

@ -274,6 +274,7 @@ Import-Package: com.sun.mail.auth;version="1.4.5",
org.apache.commons.net.ftp, org.apache.commons.net.ftp,
org.apache.ecs, org.apache.ecs,
org.apache.ecs.xhtml, org.apache.ecs.xhtml,
org.apache.felix.scr;version="1.6.0",
org.apache.poi.hssf.usermodel, org.apache.poi.hssf.usermodel,
org.apache.poi.ss.usermodel, org.apache.poi.ss.usermodel,
org.apache.tools.ant, org.apache.tools.ant,
@ -282,6 +283,7 @@ Import-Package: com.sun.mail.auth;version="1.4.5",
org.eclipse.osgi.framework.console;version="1.1.0", org.eclipse.osgi.framework.console;version="1.1.0",
org.eclipse.osgi.service.datalocation, org.eclipse.osgi.service.datalocation,
org.osgi.framework, org.osgi.framework,
org.osgi.service.cm;version="1.3.0",
org.osgi.service.component;version="1.1.0", org.osgi.service.component;version="1.1.0",
org.osgi.service.event;version="1.2.0", org.osgi.service.event;version="1.2.0",
org.osgi.util.tracker;version="1.5.0", org.osgi.util.tracker;version="1.5.0",

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.archive.store.archivedb"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.model.ArchiveDB">
<implementation class="org.compiere.model.ArchiveDB"/> <implementation class="org.compiere.model.ArchiveDB"/>
<service> <service>
<provide interface="org.compiere.model.IArchiveStore"/> <provide interface="org.compiere.model.IArchiveStore"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.archive.store.archivefile"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.model.ArchiveFileSystem">
<implementation class="org.compiere.model.ArchiveFileSystem"/> <implementation class="org.compiere.model.ArchiveFileSystem"/>
<service> <service>
<provide interface="org.compiere.model.IArchiveStore"/> <provide interface="org.compiere.model.IArchiveStore"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.attachment.store.attachmentdb"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.model.AttachmentDBSystem">
<implementation class="org.compiere.model.AttachmentDBSystem"/> <implementation class="org.compiere.model.AttachmentDBSystem"/>
<service> <service>
<provide interface="org.compiere.model.IAttachmentStore"/> <provide interface="org.compiere.model.IAttachmentStore"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.attachment.store.attachmentfile"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.model.AttachmentFileSystem">
<implementation class="org.compiere.model.AttachmentFileSystem"/> <implementation class="org.compiere.model.AttachmentFileSystem"/>
<service> <service>
<provide interface="org.compiere.model.IAttachmentStore"/> <provide interface="org.compiere.model.IAttachmentStore"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.broadcast.util"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.broadcast.BroadCastUtil">
<implementation class="org.idempiere.broadcast.BroadCastUtil"/> <implementation class="org.idempiere.broadcast.BroadCastUtil"/>
<reference bind="bindMessageService" cardinality="1..1" interface="org.idempiere.distributed.IMessageService" name="IMessageService" policy="dynamic" unbind="unbindMessageService"/> <reference bind="bindMessageService" cardinality="1..1" interface="org.idempiere.distributed.IMessageService" name="IMessageService" policy="dynamic" unbind="unbindMessageService"/>
</scr:component> </scr:component>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.columncallout.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultColumnCalloutFactory">
<implementation class="org.adempiere.base.DefaultColumnCalloutFactory"/> <implementation class="org.adempiere.base.DefaultColumnCalloutFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IColumnCalloutFactory"/> <provide interface="org.adempiere.base.IColumnCalloutFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.doc.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultDocumentFactory">
<implementation class="org.adempiere.base.DefaultDocumentFactory"/> <implementation class="org.adempiere.base.DefaultDocumentFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IDocFactory"/> <provide interface="org.adempiere.base.IDocFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.lookup.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultLookupFactory">
<implementation class="org.adempiere.base.DefaultLookupFactory"/> <implementation class="org.adempiere.base.DefaultLookupFactory"/>
<service> <service>
<provide interface="org.adempiere.base.ILookupFactory"/> <provide interface="org.adempiere.base.ILookupFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.model.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultModelFactory">
<implementation class="org.adempiere.base.DefaultModelFactory"/> <implementation class="org.adempiere.base.DefaultModelFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IModelFactory"/> <provide interface="org.adempiere.base.IModelFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.modelvalidator.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultModelValidatorFactory">
<implementation class="org.adempiere.base.DefaultModelValidatorFactory"/> <implementation class="org.adempiere.base.DefaultModelValidatorFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IModelValidatorFactory"/> <provide interface="org.adempiere.base.IModelValidatorFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.paymentprocessor.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultPaymentProcessorFactory">
<implementation class="org.adempiere.base.DefaultPaymentProcessorFactory"/> <implementation class="org.adempiere.base.DefaultPaymentProcessorFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IPaymentProcessorFactory"/> <provide interface="org.adempiere.base.IPaymentProcessorFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.process.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultProcessFactory">
<implementation class="org.adempiere.base.DefaultProcessFactory"/> <implementation class="org.adempiere.base.DefaultProcessFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IProcessFactory"/> <provide interface="org.adempiere.base.IProcessFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.shipmentprocessor.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.DefaultShipmentProcessorFactory">
<implementation class="org.adempiere.base.DefaultShipmentProcessorFactory"/> <implementation class="org.adempiere.base.DefaultShipmentProcessorFactory"/>
<service> <service>
<provide interface="org.adempiere.base.IShipmentProcessorFactory"/> <provide interface="org.adempiere.base.IShipmentProcessorFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.ds.locator"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.ds.DynamicServiceLocator">
<property name="service.ranking" type="Integer" value="1"/> <property name="service.ranking" type="Integer" value="1"/>
<service> <service>
<provide interface="org.adempiere.base.IServiceLocator"/> <provide interface="org.adempiere.base.IServiceLocator"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.adempiere.base.event.manager"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.adempiere.base.event.EventManager">
<implementation class="org.adempiere.base.event.EventManager"/> <implementation class="org.adempiere.base.event.EventManager"/>
<reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/> <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.keystore.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.util.DefaultKeyStore">
<implementation class="org.compiere.util.DefaultKeyStore"/> <implementation class="org.compiere.util.DefaultKeyStore"/>
<service> <service>
<provide interface="org.adempiere.base.IKeyStore"/> <provide interface="org.adempiere.base.IKeyStore"/>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.0.0">
<OCD description="Request Service" name="Request Service" id="org.adempiere.base.event.RequestEventHandler">
<AD name="Ignore Request Types" id="ignoreRequestTypes" required="true" type="String" default=""/>
</OCD>
<Designate pid="org.adempiere.base.event.RequestEventHandler">
<Object ocdref="org.adempiere.base.event.RequestEventHandler"/>
</Designate>
</metatype:MetaData>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" configuration-policy="optional" name="org.adempiere.base.event.RequestEventHandler">
<implementation class="org.adempiere.base.event.RequestEventHandler"/>
<reference bind="bindEventManager" cardinality="1..1" interface="org.adempiere.base.event.IEventManager" name="IEventManager" policy="static" unbind="unbindEventManager"/>
<service>
<provide interface="org.osgi.service.cm.ManagedService"/>
<provide interface="org.adempiere.base.event.RequestEventHandler"/>
</service>
<property name="service.pid" type="String" value="org.adempiere.base.event.RequestEventHandler"/>
</scr:component>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.event.RequestPropertyService">
<implementation class="org.adempiere.base.event.RequestPropertyService"/>
<reference bind="bindConfigurationAdmin" cardinality="1..1" interface="org.osgi.service.cm.ConfigurationAdmin" name="ConfigurationAdmin" policy="static" unbind="unbindConfigurationAdmin"/>
</scr:component>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.interfaces.server"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.interfaces.impl.ServerBean">
<implementation class="org.compiere.interfaces.impl.ServerBean"/> <implementation class="org.compiere.interfaces.impl.ServerBean"/>
<service> <service>
<provide interface="org.compiere.interfaces.Server"/> <provide interface="org.compiere.interfaces.Server"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.base.interfaces.status"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.interfaces.impl.StatusBean">
<implementation class="org.compiere.interfaces.impl.StatusBean"/> <implementation class="org.compiere.interfaces.impl.StatusBean"/>
<service> <service>
<provide interface="org.compiere.interfaces.Status"/> <provide interface="org.compiere.interfaces.Status"/>

View File

@ -28,6 +28,8 @@ bin.includes = META-INF/,\
OSGI-INF/defaultshipmentprocessorfactory.xml,\ OSGI-INF/defaultshipmentprocessorfactory.xml,\
OSGI-INF/defaultpaymentprocessorfactory.xml,\ OSGI-INF/defaultpaymentprocessorfactory.xml,\
OSGI-INF/broadcastutil.xml,\ OSGI-INF/broadcastutil.xml,\
OSGI-INF/requesteventhandler.xml,\
OSGI-INF/requestpropertyservice.xml,\
schema/ schema/
output.base.jar = build/ output.base.jar = build/
src.includes = schema/ src.includes = schema/

View File

@ -42,6 +42,7 @@ import org.osgi.util.tracker.ServiceTracker;
public class BaseActivator implements BundleActivator { public class BaseActivator implements BundleActivator {
private static BundleContext bundleContext = null; private static BundleContext bundleContext = null;
private ComponentBlackListService blacklistService;
/** /**
* default constructor * default constructor
@ -58,6 +59,8 @@ public class BaseActivator implements BundleActivator {
loadInitProperties(Adempiere.getAdempiereHome()); loadInitProperties(Adempiere.getAdempiereHome());
bundleContext = context; bundleContext = context;
context.registerService(CommandProvider.class.getName(), new StackTraceCommand(), null); context.registerService(CommandProvider.class.getName(), new StackTraceCommand(), null);
blacklistService = new ComponentBlackListService(context);
} }
/* /*
@ -114,6 +117,10 @@ public class BaseActivator implements BundleActivator {
} }
} }
trackerCache.clear(); trackerCache.clear();
if (blacklistService != null) {
blacklistService.stop(context);
blacklistService = null;
}
Adempiere.stop(); Adempiere.stop();
} }

View File

@ -0,0 +1,129 @@
/******************************************************************************
* Copyright (C) 2012 Heng Sin Low *
* Copyright (C) 2012 Trek Global *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/
package org.adempiere.base;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.felix.scr.Component;
import org.apache.felix.scr.ScrService;
import org.compiere.util.Ini;
import org.compiere.util.Util;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceEvent;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.ComponentConstants;
/**
* @author hengsin
*
*/
public class ComponentBlackListService implements ServiceListener {
private ScrService scrService = null;
private List<String> blackListComponentNames = null;
protected ComponentBlackListService(BundleContext context) {
ServiceReference<ScrService> ref = context.getServiceReference(ScrService.class);
scrService = context.getService(ref);
blackListComponentNames = new ArrayList<String>();
retrieveBlacklistCandidates();
if (!blackListComponentNames.isEmpty()) {
disableComponents();
}
context.addServiceListener(this);
}
public void stop(BundleContext context) {
scrService = null;
blackListComponentNames = null;
context.removeServiceListener(this);
}
private void retrieveBlacklistCandidates() {
String path = Ini.getAdempiereHome();
File file = new File(path, "components.blacklist");
if (file.exists()) {
BufferedReader br = null;
try {
FileReader reader = new FileReader(file);
br = new BufferedReader(reader);
String s = null;
do {
s = br.readLine();
if (!Util.isEmpty(s)) {
blackListComponentNames.add(s.trim());
}
} while (s != null);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {}
}
}
}
}
private void disableComponents()
{
Component[] comps = scrService.getComponents();
for (Component comp : comps) {
if (blackListComponentNames.contains(comp.getName())) {
comp.disable();
}
}
}
private void disableComponent(String componentName)
{
Component[] comps = scrService.getComponents();
for (Component comp : comps) {
if (comp.getName().equals(componentName)) {
comp.disable();
break;
}
}
}
/* (non-Javadoc)
* @see org.osgi.framework.ServiceListener#serviceChanged(org.osgi.framework.ServiceEvent)
*/
@Override
public void serviceChanged(ServiceEvent event) {
if (event.getType() == ServiceEvent.REGISTERED) {
if (scrService != null && !blackListComponentNames.isEmpty()) {
ServiceReference<?> ref = event.getServiceReference();
String name = (String) ref.getProperty(ComponentConstants.COMPONENT_NAME);
if (!Util.isEmpty(name)) {
if (blackListComponentNames.contains(name)) {
disableComponent(name);
}
}
}
}
}
}

View File

@ -92,5 +92,7 @@ public interface IEventTopics {
public static final String PREF_AFTER_LOAD = "adempiere/pref/afterLoad"; public static final String PREF_AFTER_LOAD = "adempiere/pref/afterLoad";
public static final String BROADCAST_MESSAGE = "idempiere/broadcastMsg"; public static final String BROADCAST_MESSAGE = "idempiere/broadcastMsg";
public static final String REQUEST_SEND_EMAIL = "idempiere/requestSendEMail";
} }

View File

@ -1,5 +1,5 @@
/****************************************************************************** /******************************************************************************
* Copyright (C) 2013 Elaine Tan * * Copyright (C) 2013 Nur Yasmin *
* Copyright (C) 2013 Trek Global * Copyright (C) 2013 Trek Global
* This program is free software; you can redistribute it and/or modify it * * This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published * * under the terms version 2 of the GNU General Public License as published *
@ -11,8 +11,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.base.event;
package org.compiere.model;
import static org.compiere.model.SystemIDs.MESSAGE_REQUESTUPDATE; import static org.compiere.model.SystemIDs.MESSAGE_REQUESTUPDATE;
@ -21,75 +20,87 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Dictionary;
import java.util.StringTokenizer;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.base.event.EventManager;
import org.adempiere.base.event.RequestSendEMailEventData;
import org.adempiere.exceptions.DBException; import org.adempiere.exceptions.DBException;
import org.compiere.model.I_R_Request;
import org.compiere.model.MClient;
import org.compiere.model.MNote;
import org.compiere.model.MRequest;
import org.compiere.model.MRequestAction;
import org.compiere.model.MRequestType;
import org.compiere.model.MRequestUpdate;
import org.compiere.model.MUser;
import org.compiere.model.PO;
import org.compiere.model.X_AD_User;
import org.compiere.model.X_R_Request;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedService;
import org.osgi.service.event.Event; import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
/** /**
* * Request event handler
* @author Elaine * @author Nur Yasmin
* *
*/ */
public class RequestValidator implements ModelValidator, EventHandler public class RequestEventHandler extends AbstractEventHandler implements ManagedService
{ {
public static final String ON_REQUEST_SEND_EMAIL_TOPIC = "onRequestSendEMail"; private static CLogger s_log = CLogger.getCLogger (RequestEventHandler.class);
private static CLogger s_log = CLogger.getCLogger (RequestValidator.class);
private int m_AD_Client_ID;
@Override @Override
public void initialize(ModelValidationEngine engine, MClient client) protected void doHandleEvent(Event event)
{ {
if (client != null) String topic = event.getTopic();
m_AD_Client_ID = client.getAD_Client_ID(); if (topic.equals(IEventTopics.REQUEST_SEND_EMAIL))
engine.addModelChange(I_R_Request.Table_Name, this);
if (EventManager.getInstance() != null)
EventManager.getInstance().register(ON_REQUEST_SEND_EMAIL_TOPIC, this);
}
@Override
public int getAD_Client_ID()
{
return m_AD_Client_ID;
}
@Override
public String login(int AD_Org_ID, int AD_Role_ID, int AD_User_ID)
{
return null;
}
@Override
public String modelChange(PO po, int type) throws Exception
{
if (po instanceof MRequest )
{ {
MRequest r = (MRequest) po; RequestSendEMailEventData eventData = (RequestSendEMailEventData) event.getProperty(EventManager.EVENT_DATA);
if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) if (!eventData.getClient().sendEMail(eventData.getFrom(), eventData.getTo(), eventData.getSubject(), eventData.getMessage(), eventData.getAttachment()))
beforeSaveRequest(r, type == TYPE_BEFORE_NEW); {
else if (type == TYPE_AFTER_NEW || type == TYPE_AFTER_CHANGE) int AD_Message_ID = MESSAGE_REQUESTUPDATE;
afterSaveRequest(r, type == TYPE_AFTER_NEW); MNote note = new MNote(Env.getCtx(), AD_Message_ID, eventData.getTo().getAD_User_ID(),
X_R_Request.Table_ID, eventData.getRequestID(),
eventData.getSubject(), eventData.getMessage(), null);
note.save();
}
}
else if (topic.equals(IEventTopics.PO_BEFORE_NEW) || topic.equals(IEventTopics.PO_BEFORE_CHANGE)
|| topic.equals(IEventTopics.PO_AFTER_NEW) || topic.equals(IEventTopics.PO_AFTER_CHANGE))
{
PO po = getPO(event);
if (po.get_TableName().equals(I_R_Request.Table_Name))
{
MRequest r = (MRequest) po;
MRequestType rt = r.getRequestType();
if (ignoreRequestTypes.contains(rt.getName()))
return;
if (topic.equals(IEventTopics.PO_BEFORE_NEW) || topic.equals(IEventTopics.PO_BEFORE_CHANGE))
beforeSaveRequest(r, topic.equals(IEventTopics.PO_BEFORE_NEW));
else if (topic.equals(IEventTopics.PO_AFTER_NEW) || topic.equals(IEventTopics.PO_AFTER_CHANGE))
afterSaveRequest(r, topic.equals(IEventTopics.PO_AFTER_NEW));
}
} }
return null;
} }
@Override @Override
public String docValidate(PO po, int timing) protected void initialize()
{ {
return null; registerEvent(IEventTopics.REQUEST_SEND_EMAIL);
registerTableEvent(IEventTopics.PO_BEFORE_NEW, I_R_Request.Table_Name);
registerTableEvent(IEventTopics.PO_BEFORE_CHANGE, I_R_Request.Table_Name);
registerTableEvent(IEventTopics.PO_AFTER_NEW, I_R_Request.Table_Name);
registerTableEvent(IEventTopics.PO_AFTER_CHANGE, I_R_Request.Table_Name);
} }
public static String beforeSaveRequest(MRequest r, boolean newRecord) private String beforeSaveRequest(MRequest r, boolean newRecord)
{ {
// New // New
if (newRecord) if (newRecord)
@ -208,7 +219,7 @@ public class RequestValidator implements ModelValidator, EventHandler
return null; return null;
} }
public static String afterSaveRequest(MRequest r, boolean newRecord) private String afterSaveRequest(MRequest r, boolean newRecord)
{ {
// Initial Mail // Initial Mail
if (newRecord) if (newRecord)
@ -223,7 +234,7 @@ public class RequestValidator implements ModelValidator, EventHandler
* @param columnName column * @param columnName column
* @return true if changes * @return true if changes
*/ */
public static boolean checkChange (MRequest r, MRequestAction ra, String columnName) public boolean checkChange (MRequest r, MRequestAction ra, String columnName)
{ {
if (r.is_ValueChanged(columnName)) if (r.is_ValueChanged(columnName))
{ {
@ -237,12 +248,12 @@ public class RequestValidator implements ModelValidator, EventHandler
} }
return false; return false;
} // checkChange } // checkChange
/** /**
* Send Update EMail/Notices * Send Update EMail/Notices
* @param list list of changes * @param list list of changes
*/ */
public static void sendNotices(MRequest r, ArrayList<String> list) private void sendNotices(MRequest r, ArrayList<String> list)
{ {
// Subject // Subject
String subject = Msg.translate(r.getCtx(), "R_Request_ID") String subject = Msg.translate(r.getCtx(), "R_Request_ID")
@ -362,7 +373,7 @@ public class RequestValidator implements ModelValidator, EventHandler
|| X_AD_User.NOTIFICATIONTYPE_EMailPlusNotice.equals(NotificationType)) || X_AD_User.NOTIFICATIONTYPE_EMailPlusNotice.equals(NotificationType))
{ {
RequestSendEMailEventData eventData = new RequestSendEMailEventData(client, from, to, subject, message.toString(), pdf, r.getR_Request_ID()); RequestSendEMailEventData eventData = new RequestSendEMailEventData(client, from, to, subject, message.toString(), pdf, r.getR_Request_ID());
Event event = EventManager.newEvent(ON_REQUEST_SEND_EMAIL_TOPIC, eventData); Event event = EventManager.newEvent(IEventTopics.REQUEST_SEND_EMAIL, eventData);
EventManager.getInstance().postEvent(event); EventManager.getInstance().postEvent(event);
} }
// Send Note // Send Note
@ -393,30 +404,33 @@ public class RequestValidator implements ModelValidator, EventHandler
* @param serverAddress server address * @param serverAddress server address
* @return Mail Trailer * @return Mail Trailer
*/ */
public static String getMailTrailer(MRequest r, String serverAddress) private String getMailTrailer(MRequest r, String serverAddress)
{ {
StringBuffer sb = new StringBuffer("\n").append(MRequest.SEPARATOR) StringBuffer sb = new StringBuffer("\n").append(MRequest.SEPARATOR)
.append(Msg.translate(r.getCtx(), "R_Request_ID")) .append(Msg.translate(r.getCtx(), "R_Request_ID"))
.append(": ").append(r.getDocumentNo()) .append(": ").append(r.getDocumentNo())
.append(" ").append(r.getMailTag()) .append(" ").append(r.getMailTag())
.append("\nSent by AdempiereMail"); .append("\n")
.append(Msg.getMsg(r.getCtx(), "RequestSentBy"));
if (serverAddress != null) if (serverAddress != null)
sb.append(" from ").append(serverAddress); sb.append(" from ").append(serverAddress);
return sb.toString(); return sb.toString();
} // getMailTrailer } // getMailTrailer
public static final String IGNORE_REQUEST_TYPES = "ignoreRequestTypes";
private static ArrayList<String> ignoreRequestTypes = new ArrayList<String>();
@SuppressWarnings("rawtypes")
@Override @Override
public void handleEvent(Event event) { public void updated(Dictionary properties) throws ConfigurationException {
if (event.getTopic() == ON_REQUEST_SEND_EMAIL_TOPIC) if (properties != null) {
{ String p = (String) properties.get(IGNORE_REQUEST_TYPES);
RequestSendEMailEventData eventData = (RequestSendEMailEventData) event.getProperty(EventManager.EVENT_DATA); if (!Util.isEmpty(p)) {
if (!eventData.getClient().sendEMail(eventData.getFrom(), eventData.getTo(), eventData.getSubject(), eventData.getMessage(), eventData.getAttachment())) ignoreRequestTypes.clear();
{
int AD_Message_ID = MESSAGE_REQUESTUPDATE; StringTokenizer st = new StringTokenizer(p, ";");
MNote note = new MNote(Env.getCtx(), AD_Message_ID, eventData.getTo().getAD_User_ID(), while (st.hasMoreTokens())
X_R_Request.Table_ID, eventData.getRequestID(), ignoreRequestTypes.add(st.nextToken().trim());
eventData.getSubject(), eventData.getMessage(), null);
note.save();
} }
} }
} }

View File

@ -0,0 +1,95 @@
/******************************************************************************
* Copyright (C) 2013 Elaine *
* Copyright (C) 2013 Trek Global
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/
package org.adempiere.base.event;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.Properties;
import java.util.logging.Level;
import org.compiere.util.CLogger;
import org.compiere.util.Ini;
import org.compiere.util.Util;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
/**
* Request property service
* @author Elaine
*
*/
public class RequestPropertyService {
private static final String REQUESTEVENTHANDLER_PROPERTIES = "requesteventhandler.properties";
private static final CLogger logger = CLogger.getCLogger(RequestPropertyService.class);
public RequestPropertyService() {
}
public void bindConfigurationAdmin(ConfigurationAdmin configurationAdmin) {
readProperties(configurationAdmin);
}
public void unbindConfigurationAdmin(ConfigurationAdmin configurationAdmin) {
}
private void readProperties(ConfigurationAdmin service) {
File file = new File(Ini.getAdempiereHome(), REQUESTEVENTHANDLER_PROPERTIES);
if (file.exists()) {
Properties p = new Properties();
FileInputStream is = null;
try {
is = new FileInputStream(file);
p.load(is);
String ignoreRequesTypes = p.getProperty(RequestEventHandler.IGNORE_REQUEST_TYPES);
if (!Util.isEmpty(ignoreRequesTypes)) {
Configuration configuration = service.getConfiguration(RequestEventHandler.class.getName());
if (configuration.getProperties() == null) {
Dictionary<String, Object> map = new Hashtable<String, Object>();
map.put(RequestEventHandler.IGNORE_REQUEST_TYPES, ignoreRequesTypes);
configuration.update(map);
} else {
Bundle bundle = FrameworkUtil.getBundle(RequestEventHandler.class);
String bundleLocation = bundle.getLocation();
String configLocation = configuration.getBundleLocation();
if (!bundleLocation.equals(configLocation)) {
configuration.setBundleLocation(bundleLocation);
configuration.update();
}
}
}
} catch (FileNotFoundException e) {
logger.log(Level.WARNING, REQUESTEVENTHANDLER_PROPERTIES + " not found.", e);
} catch (IOException e) {
logger.log(Level.SEVERE, "Error reading " + REQUESTEVENTHANDLER_PROPERTIES, e);
} finally {
if (is != null) {
try {
is.close();
} catch (Exception ex) {}
}
}
}
}
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.pipo.dictionary.service"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.pipo.srv.PipoDictionaryService">
<implementation class="org.adempiere.pipo.srv.PipoDictionaryService"/> <implementation class="org.adempiere.pipo.srv.PipoDictionaryService"/>
<service> <service>
<provide interface="org.adempiere.base.IDictionaryService"/> <provide interface="org.adempiere.base.IDictionaryService"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.replication.server.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.server.rpl.imp.ReplicationServerFactory">
<implementation class="org.adempiere.server.rpl.imp.ReplicationServerFactory"/> <implementation class="org.adempiere.server.rpl.imp.ReplicationServerFactory"/>
<service> <service>
<provide interface="org.adempiere.server.IServerFactory"/> <provide interface="org.adempiere.server.IServerFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.report.jasper.swing.viewer.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.report.SwingJRViewerProvider">
<implementation class="org.compiere.report.SwingJRViewerProvider"/> <implementation class="org.compiere.report.SwingJRViewerProvider"/>
<service> <service>
<provide interface="org.compiere.report.JRViewerProvider"/> <provide interface="org.compiere.report.JRViewerProvider"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultacctprocessor"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultAcctProcessorFactory">
<implementation class="org.idempiere.server.factory.DefaultAcctProcessorFactory"/> <implementation class="org.idempiere.server.factory.DefaultAcctProcessorFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultalertprocessor"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultAlertProcessorFactory">
<implementation class="org.idempiere.server.factory.DefaultAlertProcessorFactory"/> <implementation class="org.idempiere.server.factory.DefaultAlertProcessorFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultldapprocessor"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultLDAPProcessorFactory">
<implementation class="org.idempiere.server.factory.DefaultLDAPProcessorFactory"/> <implementation class="org.idempiere.server.factory.DefaultLDAPProcessorFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultrequestprocessor"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultRequestProcessorFactory">
<implementation class="org.idempiere.server.factory.DefaultRequestProcessorFactory"/> <implementation class="org.idempiere.server.factory.DefaultRequestProcessorFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultscheduler"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultSchedulerFactory">
<implementation class="org.idempiere.server.factory.DefaultSchedulerFactory"/> <implementation class="org.idempiere.server.factory.DefaultSchedulerFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.defaultworkflowprocessor"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.server.factory.DefaultWorkflowProcessorFactory">
<implementation class="org.idempiere.server.factory.DefaultWorkflowProcessorFactory"/> <implementation class="org.idempiere.server.factory.DefaultWorkflowProcessorFactory"/>
<property name="service.ranking" type="Integer" value="0"/> <property name="service.ranking" type="Integer" value="0"/>
<service> <service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.createfrom.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.grid.DefaultCreateFromFactory">
<implementation class="org.compiere.grid.DefaultCreateFromFactory"/> <implementation class="org.compiere.grid.DefaultCreateFromFactory"/>
<service> <service>
<provide interface="org.compiere.grid.ICreateFromFactory"/> <provide interface="org.compiere.grid.ICreateFromFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.editor.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.factory.DefaultEditorFactory">
<implementation class="org.adempiere.ui.swing.factory.DefaultEditorFactory"/> <implementation class="org.adempiere.ui.swing.factory.DefaultEditorFactory"/>
<service> <service>
<provide interface="org.adempiere.ui.swing.factory.IEditorFactory"/> <provide interface="org.adempiere.ui.swing.factory.IEditorFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.form.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.factory.DefaultFormFactory">
<implementation class="org.adempiere.ui.swing.factory.DefaultFormFactory"/> <implementation class="org.adempiere.ui.swing.factory.DefaultFormFactory"/>
<service> <service>
<provide interface="org.adempiere.ui.swing.factory.IFormFactory"/> <provide interface="org.adempiere.ui.swing.factory.IFormFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.info.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.factory.DefaultInfoFactory">
<implementation class="org.adempiere.ui.swing.factory.DefaultInfoFactory"/> <implementation class="org.adempiere.ui.swing.factory.DefaultInfoFactory"/>
<service> <service>
<provide interface="org.adempiere.ui.swing.factory.IInfoFactory"/> <provide interface="org.adempiere.ui.swing.factory.IInfoFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.payment.form.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.grid.DefaultPaymentFormFactory">
<implementation class="org.compiere.grid.DefaultPaymentFormFactory"/> <implementation class="org.compiere.grid.DefaultPaymentFormFactory"/>
<service> <service>
<provide interface="org.compiere.grid.IPaymentFormFactory"/> <provide interface="org.compiere.grid.IPaymentFormFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.shipping.printlabel"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.process.DefaultPrintShippingLabel">
<implementation class="org.adempiere.process.DefaultPrintShippingLabel"/> <implementation class="org.adempiere.process.DefaultPrintShippingLabel"/>
<service> <service>
<provide interface="org.adempiere.process.IPrintShippingLabel"/> <provide interface="org.adempiere.process.IPrintShippingLabel"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.report.viewer.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.print.SwingViewerProvider">
<implementation class="org.compiere.print.SwingViewerProvider"/> <implementation class="org.compiere.print.SwingViewerProvider"/>
<service> <service>
<provide interface="org.compiere.print.ReportViewerProvider"/> <provide interface="org.compiere.print.ReportViewerProvider"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.resource.finder"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.util.ResourceFinder">
<implementation class="org.compiere.util.ResourceFinder"/> <implementation class="org.compiere.util.ResourceFinder"/>
<service> <service>
<provide interface="org.adempiere.base.IResourceFinder"/> <provide interface="org.adempiere.base.IResourceFinder"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.interfaces.server"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.client.ServerInterface">
<implementation class="org.adempiere.client.ServerInterface"/> <implementation class="org.adempiere.client.ServerInterface"/>
<service> <service>
<provide interface="org.compiere.interfaces.Server"/> <provide interface="org.compiere.interfaces.Server"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.swing.interfaces.status"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.client.StatusInterface">
<implementation class="org.adempiere.client.StatusInterface"/> <implementation class="org.adempiere.client.StatusInterface"/>
<service> <service>
<provide interface="org.compiere.interfaces.Status"/> <provide interface="org.compiere.interfaces.Status"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.createfrom.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.apps.form.DefaultCreateFromFactory">
<implementation class="org.adempiere.webui.apps.form.DefaultCreateFromFactory"/> <implementation class="org.adempiere.webui.apps.form.DefaultCreateFromFactory"/>
<service> <service>
<provide interface="org.compiere.grid.ICreateFromFactory"/> <provide interface="org.compiere.grid.ICreateFromFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.editor.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultEditorFactory">
<implementation class="org.adempiere.webui.factory.DefaultEditorFactory"/> <implementation class="org.adempiere.webui.factory.DefaultEditorFactory"/>
<service> <service>
<provide interface="org.adempiere.webui.factory.IEditorFactory"/> <provide interface="org.adempiere.webui.factory.IEditorFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.form.factory.default"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultFormFactory">
<implementation class="org.adempiere.webui.factory.DefaultFormFactory"/> <implementation class="org.adempiere.webui.factory.DefaultFormFactory"/>
<service> <service>
<provide interface="org.adempiere.webui.factory.IFormFactory"/> <provide interface="org.adempiere.webui.factory.IFormFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.info.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultInfoFactory">
<implementation class="org.adempiere.webui.factory.DefaultInfoFactory"/> <implementation class="org.adempiere.webui.factory.DefaultInfoFactory"/>
<service> <service>
<provide interface="org.adempiere.webui.factory.IInfoFactory"/> <provide interface="org.adempiere.webui.factory.IInfoFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.payment.form.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.apps.form.DefaultPaymentFormFactory">
<implementation class="org.adempiere.webui.apps.form.DefaultPaymentFormFactory"/> <implementation class="org.adempiere.webui.apps.form.DefaultPaymentFormFactory"/>
<service> <service>
<provide interface="org.compiere.grid.IPaymentFormFactory"/> <provide interface="org.compiere.grid.IPaymentFormFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.shipping.printlabel"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.process.DefaultPrintShippingLabel">
<implementation class="org.adempiere.webui.process.DefaultPrintShippingLabel"/> <implementation class="org.adempiere.webui.process.DefaultPrintShippingLabel"/>
<service> <service>
<provide interface="org.adempiere.process.IPrintShippingLabel"/> <provide interface="org.adempiere.process.IPrintShippingLabel"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultFeedbackService">
<implementation class="org.adempiere.webui.factory.DefaultFeedbackService"/> <implementation class="org.adempiere.webui.factory.DefaultFeedbackService"/>
<service> <service>
<provide interface="org.adempiere.webui.factory.IFeedbackService"/> <provide interface="org.adempiere.webui.factory.IFeedbackService"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.jrviewer.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.window.ZkJRViewerProvider">
<implementation class="org.adempiere.webui.window.ZkJRViewerProvider"/> <implementation class="org.adempiere.webui.window.ZkJRViewerProvider"/>
<service> <service>
<provide interface="org.compiere.report.JRViewerProvider"/> <provide interface="org.compiere.report.JRViewerProvider"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.process.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.util.ProcessFactoryImpl">
<implementation class="org.adempiere.webui.util.ProcessFactoryImpl"/> <implementation class="org.adempiere.webui.util.ProcessFactoryImpl"/>
<service> <service>
<provide interface="org.adempiere.base.IProcessFactory"/> <provide interface="org.adempiere.base.IProcessFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.reportviewer.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.window.ZkReportViewerProvider">
<implementation class="org.adempiere.webui.window.ZkReportViewerProvider"/> <implementation class="org.adempiere.webui.window.ZkReportViewerProvider"/>
<service> <service>
<provide interface="org.compiere.print.ReportViewerProvider"/> <provide interface="org.compiere.print.ReportViewerProvider"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.ui.zk.resource.finder"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.util.WebUIResourceFinder">
<implementation class="org.adempiere.webui.util.WebUIResourceFinder"/> <implementation class="org.adempiere.webui.util.WebUIResourceFinder"/>
<service> <service>
<provide interface="org.adempiere.base.IResourceFinder"/> <provide interface="org.adempiere.base.IResourceFinder"/>

View File

@ -509,7 +509,9 @@ public class ResetPasswordPanel extends Window implements EventListener<Event>
to.set_ValueOfColumn("Password", newPassword); // will be hashed and validate on saveEx to.set_ValueOfColumn("Password", newPassword); // will be hashed and validate on saveEx
mailText.setUser(to); mailText.setUser(to);
String message = mailText.getMailText(true); String message = mailText.getMailText(true);
Env.setContext(m_ctx, "#NewPassword", newPassword);
message = Env.parseVariable(message, to, to.get_TrxName(), true); message = Env.parseVariable(message, to, to.get_TrxName(), true);
Env.setContext(m_ctx, "#NewPassword", "");
EMail email = client.createEMail(to.getEMail(), mailText.getMailHeader(), message, mailText.isHtml()); EMail email = client.createEMail(to.getEMail(), mailText.getMailHeader(), message, mailText.isHtml());
if (mailText.isHtml()) if (mailText.isHtml())
email.setMessageHTML(mailText.getMailHeader(), message); email.setMessageHTML(mailText.getMailHeader(), message);

View File

@ -276,7 +276,7 @@ public class TreeSearchPanel extends Panel implements EventListener<Event>, Tree
protected boolean isFolder(Treeitem treeItem) { protected boolean isFolder(Treeitem treeItem) {
List<Component> list = treeItem.getChildren(); List<Component> list = treeItem.getChildren();
for (Component c : list) { for (Component c : list) {
if (c instanceof Treechildren && ((Treechildren)c).getChildren().size() > 1) { if (c instanceof Treechildren && ((Treechildren)c).getChildren().size() > 0) {
return true; return true;
} }
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.db.oracle.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.db.DB_Oracle">
<implementation class="org.compiere.db.DB_Oracle"/> <implementation class="org.compiere.db.DB_Oracle"/>
<service> <service>
<provide interface="org.compiere.db.AdempiereDatabase"/> <provide interface="org.compiere.db.AdempiereDatabase"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.db.postgresql.provider"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.compiere.db.DB_PostgreSQL">
<implementation class="org.compiere.db.DB_PostgreSQL"/> <implementation class="org.compiere.db.DB_PostgreSQL"/>
<service> <service>
<provide interface="org.compiere.db.AdempiereDatabase"/> <provide interface="org.compiere.db.AdempiereDatabase"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.fitnesse.fixture.fit.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.fitnesse.fixture.FitFixtureFactory">
<implementation class="org.idempiere.fitnesse.fixture.FitFixtureFactory"/> <implementation class="org.idempiere.fitnesse.fixture.FitFixtureFactory"/>
<service> <service>
<provide interface="org.idempiere.fitnesse.server.fit.IFitFixtureFactory"/> <provide interface="org.idempiere.fitnesse.server.fit.IFitFixtureFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.fitnesse.fixture.slim.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.fitnesse.fixture.SlimFixtureFactory">
<implementation class="org.idempiere.fitnesse.fixture.SlimFixtureFactory"/> <implementation class="org.idempiere.fitnesse.fixture.SlimFixtureFactory"/>
<service> <service>
<provide interface="org.idempiere.fitnesse.server.slim.ISlimFixtureFactory"/> <provide interface="org.idempiere.fitnesse.server.slim.ISlimFixtureFactory"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.cache"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.CacheServiceImpl">
<implementation class="org.idempiere.hazelcast.service.CacheServiceImpl"/> <implementation class="org.idempiere.hazelcast.service.CacheServiceImpl"/>
<service> <service>
<provide interface="org.idempiere.distributed.ICacheService"/> <provide interface="org.idempiere.distributed.ICacheService"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.cluster"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.ClusterServiceImpl">
<implementation class="org.idempiere.hazelcast.service.ClusterServiceImpl"/> <implementation class="org.idempiere.hazelcast.service.ClusterServiceImpl"/>
<service> <service>
<provide interface="org.idempiere.distributed.IClusterService"/> <provide interface="org.idempiere.distributed.IClusterService"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.message"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.hazelcast.service.MessageServiceImpl">
<implementation class="org.idempiere.hazelcast.service.MessageServiceImpl"/> <implementation class="org.idempiere.hazelcast.service.MessageServiceImpl"/>
<service> <service>
<provide interface="org.idempiere.distributed.IMessageService"/> <provide interface="org.idempiere.distributed.IMessageService"/>

View File

@ -15,7 +15,6 @@ package org.idempiere.hazelcast.service;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.text.DateFormat; import java.text.DateFormat;
import java.util.Date; import java.util.Date;
@ -75,20 +74,45 @@ public class Activator implements BundleActivator {
future = executor.submit(new Runnable() { future = executor.submit(new Runnable() {
@Override @Override
public void run() { public void run() {
String dataArea = System.getProperty("osgi.install.area"); File file = null;
//try idempiere home
String dataArea = System.getProperty("IDEMPIERE_HOME");
if (dataArea != null && dataArea.trim().length() > 0) { if (dataArea != null && dataArea.trim().length() > 0) {
try { try {
URL url = new URL(dataArea); file = new File(dataArea, "hazelcast.xml");
File file = new File(url.getPath(), "hazelcast.xml"); if (!file.exists())
if (file.exists()) { file = null;
try { } catch (Exception e) {}
Config config = new FileSystemXmlConfig(file); }
hazelcastInstance = Hazelcast.newHazelcastInstance(config); //try working directory
return; if (file == null) {
} catch (FileNotFoundException e) {} dataArea = System.getProperty("user.dir");
} if (dataArea != null && dataArea.trim().length() > 0) {
} catch (MalformedURLException e1) { try {
file = new File(dataArea, "hazelcast.xml");
if (!file.exists())
file = null;
} catch (Exception e) {}
} }
}
//try osgi install area
if (file == null) {
dataArea = System.getProperty("osgi.install.area");
if (dataArea != null && dataArea.trim().length() > 0) {
try {
URL url = new URL(dataArea);
file = new File(url.getPath(), "hazelcast.xml");
if (!file.exists())
file = null;
} catch (Exception e) {}
}
}
if (file != null && file.exists()) {
try {
Config config = new FileSystemXmlConfig(file);
hazelcastInstance = Hazelcast.newHazelcastInstance(config);
return;
} catch (FileNotFoundException e) {}
} }
hazelcastInstance = Hazelcast.newHazelcastInstance(null); hazelcastInstance = Hazelcast.newHazelcastInstance(null);
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.zk.selenium.fitnesse.fit.factory"> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.idempiere.ui.zk.selenium.fitnesse.FitFixtureFactory">
<implementation class="org.idempiere.ui.zk.selenium.fitnesse.FitFixtureFactory"/> <implementation class="org.idempiere.ui.zk.selenium.fitnesse.FitFixtureFactory"/>
<service> <service>
<provide interface="org.idempiere.fitnesse.server.fit.IFitFixtureFactory"/> <provide interface="org.idempiere.fitnesse.server.fit.IFitFixtureFactory"/>