小编gMa*_*ale的帖子

AspectJ:如何获得切入点来建议位于其他项目中的类

这应该很简单.

问题
如何在一个项目中获得切入点以建议另一个项目中的代码/类?


上下文
我正在使用两个项目在eclipse中工作.为了便于解释,让我们称之为一个科学项目和另一个数学项目,并说科学项目依赖于数学项目,我同时在两个项目中进行开发.数学项目是生产中的核心产品,如果我不修改代码,生活会更容易.

目前,我正在调试这两个项目之间的交互.为了帮助解决这个问题,我正在编写一个Aspect(在科学项目中)来记录关键信息,因为数学代码(和科学代码)会执行.


示例
我运行一个简单的示例方面:

package org.science.example;

public aspect ScientificLog {
    public pointcut testCut() : execution (public * *.*(..));
    before() : testCut() {
        //do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)


问题
问题是,无论我创建什么切入点,它只建议来自科学项目的代码.没有来自org.math.example横切的课程,全部!

我尝试添加的数学项目INPATH的的科学项目通过进入proect properties > AspectJ Build > Inpath并点击添加项目并选择数学项目.这没用,但似乎我需要按照这些方式做点什么.

在此先感谢您的任何建议...

-gMale


编辑1:
自写这篇文章以来,我注意到该项目出现以下错误:

Caused by: org.aspectj.weaver.BCException: Unable to continue, this version of AspectJ
supports classes built with weaver version 6.0 …

java eclipse aspectj pointcuts ajdt

6
推荐指数
1
解决办法
4149
查看次数

正则表达式以任何顺序匹配0个或更多关键字实例

我对正则表达式很体面,但在这里难倒.我在下面的第2组遇到了麻烦.但是,我认为对于正则表达式大师来说这应该相当容易......

问题

我想要匹配 zero or more instances of a set of keywords, in any order


[更新:供将来参考]
最简单的解决方案(源自黑熊猫的回应)是:

((keyword1 | keyword2 | keyword3 )*)

注意:每个单词后面的空格是必不可少的!

就我而言,这转化为:
((static |final )*)

这是简单的,最简单的答案.更好,更高效的方法是黑熊猫的反应,下面.它允许任何数量的空白,并且RE引擎处理速度更快.


输入

我需要将以下输入拆分为非常具体的组.

注意:数字不是输入的一部分.也就是说,每个输入行以字母p开头.

  1. public static final int ONE = 1;
  2. public final static int TWO = 2;
  3. public final int THREE = 3;
  4. public static int FOUR = 4;
  5. private int FIVE = 5;

我需要将输入分解为匹配组

第1组=公共或私人或受保护
组2 = 0或更多"静态"或"最终"实例      < - 组我正在与
第3 …

regex

6
推荐指数
1
解决办法
2万
查看次数

使数据库ID一致且"可读"的优缺点

数据库ID"无意义"是一个很好的经验法则吗?相反,以一种可以一目了然地识别ID的方式构建ID是否会带来显着的好处?优缺点都有什么?

背景

我和我的同事就我们数据库中ID的一致性进行了辩论.我们有一个利用spring的数据驱动应用程序,因此我们很少需要更改代码.这意味着,如果出现问题,数据更改通常就是解决方案.

我的论点是,通过使ID保持一致和可读,我们可以节省大量时间和长期头痛.一旦设置了ID,它们就不必经常更改,如果做得对,未来的更改也不会很困难.我的同事的立场是ID永远不会重要.将信息编码到ID中会违反数据库设计策略并使其有序保持需要额外的工作,"我们没有时间." 我在网上找不到任何支持这两个职位的东西.所以我转向SA的所有大师!

想象一下这个简化的数据库记录列表,表示杂货店中的食物,第一组表示具有ID编码含义的数据,而第二组不表示:


ID含义:

Type
1 Fruit
2 Veggie

Product
101 Apple
102 Banana
103 Orange
201 Lettuce
202 Onion
203 Carrot

Location
41 Aisle four top shelf
42 Aisle four bottom shelf
51 Aisle five top shelf
52 Aisle five bottom shelf

ProductLocation
10141 Apple on aisle four top shelf
10241 Banana on aisle four top shelf
//just by reading the ids, it's easy to recongnize that these are both Fruit on Aisle 4 …
Run Code Online (Sandbox Code Playgroud)

database database-design data-driven

5
推荐指数
3
解决办法
2404
查看次数

如何以编程方式检测操作系统(Windows)何时唤醒或进入睡眠状态

背景

我的儿子喜欢在他不应该使用他的笔记本电脑时,我只是觉得如果我能写一个应用程序,只要他打开/关闭他的笔记本电脑就会给我发电子邮件,这会很方便.

(我甚至会满足于在机器上有网络流量时通知我的事情)

如何以编程方式检测操作系统何时唤醒或进入睡眠状态?我发现这个链接这个相关的职位.但这涵盖了OS X.我正在为Windows 7寻找相同的东西.

(如果可能的话,我想用Java做这个,但我会选择C#/ C++)

c# java windows windows-7

4
推荐指数
3
解决办法
5349
查看次数

AspectJ'围绕'建议 - 您是否必须打电话'继续'?

这是一个简单的,当然有人知道这是他们的头顶...

当你在AspectJ中写下'around'建议时,你是否需要调用继续?让我们说你想让一个方法做一些完全不同的事情?你可以离开'继续'或者它会产生错误(强迫你打电话继续但忽略结果)?

你能做这样的事吗

String around() : generateCommand() {
    //never call proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}
Run Code Online (Sandbox Code Playgroud)

或者你必须这样做:

String around() : generateCommand() {
    String commandInvolvingInvalidDatabaseCall = proceed();
    //completely ignore results from proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}
Run Code Online (Sandbox Code Playgroud)

java aspectj

4
推荐指数
1
解决办法
4041
查看次数

当正则表达式被@符号包围时,它是什么意思?

当正则表达式被@符号包围时,它是什么意思?这是否意味着与斜线环绕不同?什么时候@x或@i到底是什么时候?现在我想一想,周围的斜线甚至意味着什么?


背景

我看到了由John Kugelman发布的StackOverflow答案,其中他展示了严肃的正则表达式技巧.

现在,我习惯于看到被斜线包围的正则表达式

/^abc/
Run Code Online (Sandbox Code Playgroud)

但是他使用了@符号包围的正则表达式:

'@
        ^%
        (.{2})          # State, 2 chars
        ([^^]{0,12}.)   # City, 13 chars, delimited by ^
        ([^^]{0,34}.)   # Name, 35 chars, delimited by ^
        ([^^]{0,28}.)   # Address, 29 chars, delimited by ^
        \?$
 @x'
Run Code Online (Sandbox Code Playgroud)

事实上,它似乎是这样的格式:

@^abc@x
Run Code Online (Sandbox Code Playgroud)

在试图谷歌这意味着什么(谷歌这是一个棘手的问题!),我也看到了格式:

@^abc@i
Run Code Online (Sandbox Code Playgroud)

很明显xi不是匹配的字符.

这一切意味着什么?

提前感谢任何和所有回复,

-gMale

php regex

3
推荐指数
1
解决办法
370
查看次数

Reddit API 的 redirect_uri 参数无效

我正在尝试使用 Devise 和omniauth-reddit gem 来通过Reddit 实现oAuth。

\n\n

它似乎可以很好地传递本地 url 和 api 密钥。

\n\n
https://ssl.reddit.com/api/v1/authorize?response_type=account&client_id=API_KEY&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fusers%2Fauth%2Freddit%2Fcallback&scope=identity\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而我得到的回应是:

\n\n
forbidden (reddit.com)\n\nyou are not allowed to do that\n\xe2\x80\x94 invalid redirect_uri parameter.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试将redirect_uri设置为127.0.0.1:3000以及托管url(heroku),但无济于事。

\n\n

所以现在我不明白我是否仍然只是给他们提供了错误的 URL 或者传递了不应该存在的参数。

\n\n

谢谢你的帮助!

\n

api ruby-on-rails reddit devise oauth-2.0

3
推荐指数
2
解决办法
4638
查看次数

在VMWare Fusion下的RedHat Linux中引导时出现内核严重错误:找不到文件系统

这应该很简单.然而,它给了我地狱.

问题
我编译了最新的内核,当我重启我的盒子时,它会产生与文件系统相关的内核恐慌.

问题
如何让新内核识别VMWare文件系统?某些地方必须有一些设置让Linux安装知道"硬盘驱动器"不是真正的驱动器,而是实际上代表虚拟机的文件.

背景
首先,我不是Linux大师.这是我第一次编译内核.我为解决这个问题做了什么:

  • 从kernel.org下载内核版本2.6.34
  • 将源解压缩到目录中
  • 按照安装说明进行操作:
  • http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
  • 基本上,运行:make menuconfig,make,make modules,make modules_install,make install,reboot
  • 我没有真正改变make menuconfig部分中的任何内容

重启后,它失败并出现以下错误:

No volume groups found
Volume group "VolGroup00" not found
Unable to access resume device (/dev/VolGroup00/LogVol01)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: …
Run Code Online (Sandbox Code Playgroud)

linux kernel redhat linux-kernel vmware-fusion

0
推荐指数
1
解决办法
2万
查看次数